This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 773d2a54a3 chore: Localization of superset pt. 3 (#22938)
773d2a54a3 is described below
commit 773d2a54a3fc50b26d55604076b70192607415b7
Author: Artem Shumeiko <[email protected]>
AuthorDate: Tue Feb 7 19:21:23 2023 +0300
chore: Localization of superset pt. 3 (#22938)
Co-authored-by: Evan Rusackas <[email protected]>
---
.../src/utils/D3Formatting.ts | 7 +++++++
.../legacy-preset-chart-nvd3/src/Pie/controlPanel.ts | 8 +++-----
.../plugin-chart-echarts/src/BoxPlot/controlPanel.ts | 5 ++---
.../plugin-chart-echarts/src/Funnel/controlPanel.tsx | 6 +++---
.../plugin-chart-echarts/src/Pie/controlPanel.tsx | 5 ++---
.../plugin-chart-echarts/src/Radar/controlPanel.tsx | 5 ++---
.../plugin-chart-echarts/src/Sunburst/controlPanel.tsx | 5 ++---
.../src/Timeseries/Area/controlPanel.tsx | 6 ++----
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 9 +++++----
.../src/Timeseries/Regular/Line/controlPanel.tsx | 9 +++++----
.../src/Timeseries/Regular/Scatter/controlPanel.tsx | 9 +++++----
.../src/Timeseries/Regular/SmoothLine/controlPanel.tsx | 9 +++++----
.../src/Timeseries/Step/controlPanel.tsx | 6 ++----
.../plugin-chart-echarts/src/Timeseries/constants.ts | 5 +++++
.../plugin-chart-echarts/src/Treemap/controlPanel.tsx | 5 ++---
.../src/SqlLab/components/QueryTable/index.tsx | 15 ++++++++++++++-
.../src/SqlLab/components/TableElement/index.tsx | 3 ++-
.../Chart/DrillDetail/DrillDetailMenuItems.tsx | 13 +++++++------
superset-frontend/src/components/Select/Select.tsx | 1 +
.../dashboard/components/gridComponents/Markdown.jsx | 1 +
.../src/dashboard/util/getSliceHeaderTooltip.tsx | 2 +-
.../src/explore/components/ControlHeader.tsx | 2 +-
superset-frontend/src/pages/ChartCreation/index.tsx | 9 +++++----
.../CRUD/data/database/DatabaseModal/ExtraOptions.tsx | 2 +-
.../src/views/CRUD/data/dataset/DatasetList.tsx | 2 +-
.../src/views/CRUD/welcome/EmptyState.tsx | 18 ++++++++++++++----
26 files changed, 100 insertions(+), 67 deletions(-)
diff --git
a/superset-frontend/packages/superset-ui-chart-controls/src/utils/D3Formatting.ts
b/superset-frontend/packages/superset-ui-chart-controls/src/utils/D3Formatting.ts
index 0e30f82d7b..be703f9734 100644
---
a/superset-frontend/packages/superset-ui-chart-controls/src/utils/D3Formatting.ts
+++
b/superset-frontend/packages/superset-ui-chart-controls/src/utils/D3Formatting.ts
@@ -23,6 +23,13 @@ export const D3_FORMAT_DOCS = t(
'D3 format syntax: https://github.com/d3/d3-format',
);
+export const D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT = t(
+ 'Only applies when "Label Type" is set to show values.',
+);
+export const D3_NUMBER_FORMAT_DESCRIPTION_PERCENTAGE_TEXT = t(
+ 'Only applies when "Label Type" is not set to a percentage.',
+);
+
// input choices & options
export const D3_FORMAT_OPTIONS: [string, string][] = [
[NumberFormats.SMART_NUMBER, t('Adaptive formatting')],
diff --git
a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Pie/controlPanel.ts
b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Pie/controlPanel.ts
index 4e174dfe08..ca4bf66062 100644
--- a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Pie/controlPanel.ts
+++ b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/Pie/controlPanel.ts
@@ -19,7 +19,9 @@
import { t } from '@superset-ui/core';
import {
ControlPanelConfig,
+ D3_FORMAT_DOCS,
D3_FORMAT_OPTIONS,
+ D3_NUMBER_FORMAT_DESCRIPTION_PERCENTAGE_TEXT,
} from '@superset-ui/chart-controls';
import { showLegend } from '../NVD3Controls';
@@ -67,11 +69,7 @@ const config: ControlPanelConfig = {
renderTrigger: true,
default: 'SMART_NUMBER',
choices: D3_FORMAT_OPTIONS,
- description: `${t(
- 'D3 format syntax: https://github.com/d3/d3-format',
- )} ${t(
- 'Only applies when the "Label Type" is not set to a
percentage.',
- )}`,
+ description: `${D3_FORMAT_DOCS}
${D3_NUMBER_FORMAT_DESCRIPTION_PERCENTAGE_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts
b/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts
index f1db7534d0..da21e3cfef 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts
@@ -25,6 +25,7 @@ import {
} from '@superset-ui/core';
import {
D3_FORMAT_DOCS,
+ D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT,
D3_FORMAT_OPTIONS,
D3_TIME_FORMAT_OPTIONS,
sections,
@@ -137,9 +138,7 @@ const config: ControlPanelConfig = {
renderTrigger: true,
default: 'SMART_NUMBER',
choices: D3_FORMAT_OPTIONS,
- description: `${t(
- 'D3 format syntax: https://github.com/d3/d3-format',
- )} ${t('Only applies when "Label Type" is set to show
values.')}`,
+ description: `${D3_FORMAT_DOCS}
${D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Funnel/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Funnel/controlPanel.tsx
index 929069b2ed..203b86e219 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Funnel/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Funnel/controlPanel.tsx
@@ -21,10 +21,12 @@ import { t } from '@superset-ui/core';
import {
ControlPanelConfig,
D3_FORMAT_OPTIONS,
+ D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT,
sections,
sharedControls,
ControlStateMapping,
getStandardizedControls,
+ D3_FORMAT_DOCS,
} from '@superset-ui/chart-controls';
import { DEFAULT_FORM_DATA, EchartsFunnelLabelTypeType } from './types';
import { legendSection } from '../controls';
@@ -112,9 +114,7 @@ const config: ControlPanelConfig = {
renderTrigger: true,
default: numberFormat,
choices: D3_FORMAT_OPTIONS,
- description: `${t(
- 'D3 format syntax: https://github.com/d3/d3-format',
- )} ${t('Only applies when "Label Type" is set to show
values.')}`,
+ description: `${D3_FORMAT_DOCS}
${D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Pie/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Pie/controlPanel.tsx
index 1a2d230b74..952419e83b 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Pie/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Pie/controlPanel.tsx
@@ -22,6 +22,7 @@ import {
ControlPanelConfig,
ControlPanelsContainerProps,
D3_FORMAT_DOCS,
+ D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT,
D3_FORMAT_OPTIONS,
D3_TIME_FORMAT_OPTIONS,
sections,
@@ -120,9 +121,7 @@ const config: ControlPanelConfig = {
renderTrigger: true,
default: numberFormat,
choices: D3_FORMAT_OPTIONS,
- description: `${t(
- 'D3 format syntax: https://github.com/d3/d3-format',
- )} ${t('Only applies when "Label Type" is set to show
values.')}`,
+ description: `${D3_FORMAT_DOCS}
${D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT}`,
tokenSeparators: ['\n', '\t', ';'],
},
},
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
index 68b9a17345..61ac18209a 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
@@ -27,6 +27,7 @@ import {
import {
ControlPanelConfig,
D3_FORMAT_DOCS,
+ D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT,
D3_FORMAT_OPTIONS,
D3_TIME_FORMAT_OPTIONS,
sections,
@@ -137,9 +138,7 @@ const config: ControlPanelConfig = {
renderTrigger: true,
default: numberFormat,
choices: D3_FORMAT_OPTIONS,
- description: `${t(
- 'D3 format syntax: https://github.com/d3/d3-format. ',
- )} ${t('Only applies when "Label Type" is set to show
values.')}`,
+ description: `${D3_FORMAT_DOCS}
${D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/controlPanel.tsx
index 2c90dff452..1187fee0a8 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/controlPanel.tsx
@@ -22,6 +22,7 @@ import {
ControlPanelConfig,
ControlPanelsContainerProps,
D3_FORMAT_DOCS,
+ D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT,
D3_FORMAT_OPTIONS,
D3_TIME_FORMAT_OPTIONS,
getStandardizedControls,
@@ -130,9 +131,7 @@ const config: ControlPanelConfig = {
renderTrigger: true,
default: numberFormat,
choices: D3_FORMAT_OPTIONS,
- description: `${t(
- 'D3 format syntax: https://github.com/d3/d3-format',
- )} ${t('Only applies when "Label Type" is set to show
values.')}`,
+ description: `${D3_FORMAT_DOCS}
${D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
index 2f52bcce59..82ca0b585d 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
@@ -28,7 +28,7 @@ import {
} from '@superset-ui/chart-controls';
import { EchartsTimeseriesSeriesType } from '../types';
-import { DEFAULT_FORM_DATA } from '../constants';
+import { DEFAULT_FORM_DATA, TIME_SERIES_DESCRIPTION_TEXT } from '../constants';
import {
legendSection,
onlyTotalControl,
@@ -182,9 +182,7 @@ const config: ControlPanelConfig = {
config: {
...sharedControls.x_axis_time_format,
default: 'smart_date',
- description: `${D3_TIME_FORMAT_DOCS}. ${t(
- 'When using other than adaptive formatting, labels may
overlap.',
- )}`,
+ description: `${D3_TIME_FORMAT_DOCS}.
${TIME_SERIES_DESCRIPTION_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
index ae0dd2409c..509dc6c815 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
@@ -31,7 +31,10 @@ import {
} from '@superset-ui/chart-controls';
import { OrientationType } from '../../types';
-import { DEFAULT_FORM_DATA } from '../../constants';
+import {
+ DEFAULT_FORM_DATA,
+ TIME_SERIES_DESCRIPTION_TEXT,
+} from '../../constants';
import {
legendSection,
richTooltipSection,
@@ -150,9 +153,7 @@ function createAxisControl(axis: 'x' | 'y'):
ControlSetRow[] {
config: {
...sharedControls.x_axis_time_format,
default: 'smart_date',
- description: `${D3_TIME_FORMAT_DOCS}. ${t(
- 'When using other than adaptive formatting, labels may overlap.',
- )}`,
+ description: `${D3_TIME_FORMAT_DOCS}.
${TIME_SERIES_DESCRIPTION_TEXT}`,
visibility: ({ controls }: ControlPanelsContainerProps) =>
isXAxis ? isVertical(controls) : isHorizontal(controls),
},
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
index 0fe9f6b5ac..0ceb518b88 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
@@ -28,7 +28,10 @@ import {
} from '@superset-ui/chart-controls';
import { EchartsTimeseriesSeriesType } from '../../types';
-import { DEFAULT_FORM_DATA } from '../../constants';
+import {
+ DEFAULT_FORM_DATA,
+ TIME_SERIES_DESCRIPTION_TEXT,
+} from '../../constants';
import {
legendSection,
richTooltipSection,
@@ -169,9 +172,7 @@ const config: ControlPanelConfig = {
config: {
...sharedControls.x_axis_time_format,
default: 'smart_date',
- description: `${D3_TIME_FORMAT_DOCS}. ${t(
- 'When using other than adaptive formatting, labels may
overlap.',
- )}`,
+ description: `${D3_TIME_FORMAT_DOCS}.
${TIME_SERIES_DESCRIPTION_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
index 379840ae3c..9e36db0d3b 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
@@ -27,7 +27,10 @@ import {
sharedControls,
} from '@superset-ui/chart-controls';
-import { DEFAULT_FORM_DATA } from '../../constants';
+import {
+ DEFAULT_FORM_DATA,
+ TIME_SERIES_DESCRIPTION_TEXT,
+} from '../../constants';
import {
legendSection,
richTooltipSection,
@@ -112,9 +115,7 @@ const config: ControlPanelConfig = {
config: {
...sharedControls.x_axis_time_format,
default: 'smart_date',
- description: `${D3_TIME_FORMAT_DOCS}. ${t(
- 'When using other than adaptive formatting, labels may
overlap.',
- )}`,
+ description: `${D3_TIME_FORMAT_DOCS}.
${TIME_SERIES_DESCRIPTION_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
index f758249572..bfb7671ddb 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
@@ -27,7 +27,10 @@ import {
sharedControls,
} from '@superset-ui/chart-controls';
-import { DEFAULT_FORM_DATA } from '../../constants';
+import {
+ DEFAULT_FORM_DATA,
+ TIME_SERIES_DESCRIPTION_TEXT,
+} from '../../constants';
import {
legendSection,
richTooltipSection,
@@ -111,9 +114,7 @@ const config: ControlPanelConfig = {
config: {
...sharedControls.x_axis_time_format,
default: 'smart_date',
- description: `${D3_TIME_FORMAT_DOCS}. ${t(
- 'When using other than adaptive formatting, labels may
overlap.',
- )}`,
+ description: `${D3_TIME_FORMAT_DOCS}.
${TIME_SERIES_DESCRIPTION_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
index e71e474335..6a8e6eef17 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
@@ -28,7 +28,7 @@ import {
} from '@superset-ui/chart-controls';
import { EchartsTimeseriesSeriesType } from '../../types';
-import { DEFAULT_FORM_DATA } from '../constants';
+import { DEFAULT_FORM_DATA, TIME_SERIES_DESCRIPTION_TEXT } from '../constants';
import {
legendSection,
richTooltipSection,
@@ -166,9 +166,7 @@ const config: ControlPanelConfig = {
config: {
...sharedControls.x_axis_time_format,
default: 'smart_date',
- description: `${D3_TIME_FORMAT_DOCS}. ${t(
- 'When using other than adaptive formatting, labels may
overlap.',
- )}`,
+ description: `${D3_TIME_FORMAT_DOCS}.
${TIME_SERIES_DESCRIPTION_TEXT}`,
},
},
],
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/constants.ts
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/constants.ts
index 67a3b23416..1d7b871944 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/constants.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/constants.ts
@@ -17,6 +17,7 @@
* under the License.
*/
import { sections } from '@superset-ui/chart-controls';
+import { t } from '@superset-ui/core';
import {
OrientationType,
EchartsTimeseriesSeriesType,
@@ -63,3 +64,7 @@ export const DEFAULT_FORM_DATA: EchartsTimeseriesFormData = {
percentageThreshold: 0,
orientation: OrientationType.vertical,
};
+
+export const TIME_SERIES_DESCRIPTION_TEXT: string = t(
+ 'When using other than adaptive formatting, labels may overlap',
+);
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx
index dbe2e97e6e..e5f4704701 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/Treemap/controlPanel.tsx
@@ -21,6 +21,7 @@ import { t } from '@superset-ui/core';
import {
ControlPanelConfig,
D3_FORMAT_DOCS,
+ D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT,
D3_FORMAT_OPTIONS,
D3_TIME_FORMAT_OPTIONS,
sections,
@@ -113,9 +114,7 @@ const config: ControlPanelConfig = {
renderTrigger: true,
default: numberFormat,
choices: D3_FORMAT_OPTIONS,
- description: `${t(
- 'D3 format syntax: https://github.com/d3/d3-format. ',
- )} ${t('Only applies when "Label Type" is set to show
values.')}`,
+ description: `${D3_FORMAT_DOCS}
${D3_NUMBER_FORMAT_DESCRIPTION_VALUES_TEXT}`,
},
},
],
diff --git a/superset-frontend/src/SqlLab/components/QueryTable/index.tsx
b/superset-frontend/src/SqlLab/components/QueryTable/index.tsx
index 26c395f26a..96e1f4568d 100644
--- a/superset-frontend/src/SqlLab/components/QueryTable/index.tsx
+++ b/superset-frontend/src/SqlLab/components/QueryTable/index.tsx
@@ -76,17 +76,30 @@ const QueryTable = ({
const theme = useTheme();
const dispatch = useDispatch();
+ const QUERY_HISTORY_TABLE_HEADERS_LOCALIZED = {
+ state: t('State'),
+ started: t('Started'),
+ duration: t('Duration'),
+ progress: t('Progress'),
+ rows: t('Rows'),
+ sql: t('SQL'),
+ results: t('Results'),
+ actions: t('Actions'),
+ };
+
const setHeaders = (column: string) => {
if (column === 'sql') {
return column.toUpperCase();
}
return column.charAt(0).toUpperCase().concat(column.slice(1));
};
+
const columnsOfTable = useMemo(
() =>
columns.map(column => ({
accessor: column,
- Header: () => setHeaders(column),
+ Header:
+ QUERY_HISTORY_TABLE_HEADERS_LOCALIZED[column] || setHeaders(column),
disableSortBy: true,
})),
[columns],
diff --git a/superset-frontend/src/SqlLab/components/TableElement/index.tsx
b/superset-frontend/src/SqlLab/components/TableElement/index.tsx
index 7d6e1ec6cd..0f1140f9e8 100644
--- a/superset-frontend/src/SqlLab/components/TableElement/index.tsx
+++ b/superset-frontend/src/SqlLab/components/TableElement/index.tsx
@@ -182,10 +182,11 @@ const TableElement = ({ table, ...props }:
TableElementProps) => {
const renderControls = () => {
let keyLink;
+ const KEYS_FOR_TABLE_TEXT = t('Keys for table');
if (table?.indexes?.length) {
keyLink = (
<ModalTrigger
- modalTitle={`${t('Keys for table')} ${table.name}`}
+ modalTitle={`${KEYS_FOR_TABLE_TEXT} ${table.name}`}
modalBody={table.indexes.map((ix, i) => (
<pre key={i}>{JSON.stringify(ix, null, ' ')}</pre>
))}
diff --git
a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailMenuItems.tsx
b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailMenuItems.tsx
index 30f27ed818..6159e212e3 100644
---
a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailMenuItems.tsx
+++
b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailMenuItems.tsx
@@ -37,6 +37,7 @@ import DrillDetailModal from './DrillDetailModal';
import { getMenuAdjustedY, MENU_ITEM_HEIGHT } from '../utils';
const MENU_PADDING = 4;
+const DRILL_TO_DETAIL_TEXT = t('Drill to detail by');
const DisabledMenuItemTooltip = ({ title }: { title: ReactNode }) => (
<Tooltip title={title} placement="top">
@@ -163,7 +164,7 @@ const DrillDetailMenuItems = ({
if (!handlesDimensionContextMenu) {
drillToDetailByMenuItem = (
<DisabledMenuItem {...props} key="drill-detail-by-chart-not-supported">
- {t('Drill to detail by')}
+ {DRILL_TO_DETAIL_TEXT}
<DisabledMenuItemTooltip
title={t(
'Drill to detail by value is not yet supported for this chart
type.',
@@ -176,7 +177,7 @@ const DrillDetailMenuItems = ({
if (handlesDimensionContextMenu && noAggregations) {
drillToDetailByMenuItem = (
<DisabledMenuItem {...props} key="drill-detail-by-no-aggregations">
- {t('Drill to detail by')}
+ {DRILL_TO_DETAIL_TEXT}
</DisabledMenuItem>
);
}
@@ -195,7 +196,7 @@ const DrillDetailMenuItems = ({
<Menu.SubMenu
{...props}
popupOffset={[0, submenuYOffset]}
- title={t('Drill to detail by')}
+ title={DRILL_TO_DETAIL_TEXT}
>
<div data-test="drill-to-detail-by-submenu">
{filters.map((filter, i) => (
@@ -204,7 +205,7 @@ const DrillDetailMenuItems = ({
key={`drill-detail-filter-${i}`}
onClick={openModal.bind(null, [filter])}
>
- {`${t('Drill to detail by')} `}
+ {`${DRILL_TO_DETAIL_TEXT} `}
<Filter>{filter.formattedVal}</Filter>
</Menu.Item>
))}
@@ -214,7 +215,7 @@ const DrillDetailMenuItems = ({
key="drill-detail-filter-all"
onClick={openModal.bind(null, filters)}
>
- {`${t('Drill to detail by')} `}
+ {`${DRILL_TO_DETAIL_TEXT} `}
<Filter>{t('all')}</Filter>
</Menu.Item>
)}
@@ -226,7 +227,7 @@ const DrillDetailMenuItems = ({
if (handlesDimensionContextMenu && !noAggregations && !filters?.length) {
drillToDetailByMenuItem = (
<DisabledMenuItem {...props} key="drill-detail-by-select-aggregation">
- {t('Drill to detail by')}
+ {DRILL_TO_DETAIL_TEXT}
<DisabledMenuItemTooltip
title={t(
'Right-click on a dimension value to drill to detail by that
value.',
diff --git a/superset-frontend/src/components/Select/Select.tsx
b/superset-frontend/src/components/Select/Select.tsx
index 68bc608719..9ab42fc20d 100644
--- a/superset-frontend/src/components/Select/Select.tsx
+++ b/superset-frontend/src/components/Select/Select.tsx
@@ -372,6 +372,7 @@ const Select = forwardRef(
const selectAllLabel = useMemo(
() => () =>
+ // TODO: localize
`${SELECT_ALL_VALUE} (${formatNumber(
NumberFormats.INTEGER,
fullSelectOptions.length,
diff --git
a/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx
b/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx
index 1d358529b5..9febfacf90 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx
@@ -73,6 +73,7 @@ const propTypes = {
const defaultProps = {};
+// TODO: localize
const MARKDOWN_PLACE_HOLDER = `# ✨Header 1
## ✨Header 2
### ✨Header 3
diff --git a/superset-frontend/src/dashboard/util/getSliceHeaderTooltip.tsx
b/superset-frontend/src/dashboard/util/getSliceHeaderTooltip.tsx
index a34ad61722..57def408b6 100644
--- a/superset-frontend/src/dashboard/util/getSliceHeaderTooltip.tsx
+++ b/superset-frontend/src/dashboard/util/getSliceHeaderTooltip.tsx
@@ -33,7 +33,7 @@ export const getSliceHeaderTooltip = (sliceName: string |
undefined) => {
: t('Click to edit chart.');
const secondLine = t(
'Use %s to open in a new tab.',
- isMac ? '⌘ + click' : 'ctrl + click',
+ isMac ? t('⌘ + click') : t('ctrl + click'),
);
return (
<>
diff --git a/superset-frontend/src/explore/components/ControlHeader.tsx
b/superset-frontend/src/explore/components/ControlHeader.tsx
index 71f0f4b838..3bc16d94a5 100644
--- a/superset-frontend/src/explore/components/ControlHeader.tsx
+++ b/superset-frontend/src/explore/components/ControlHeader.tsx
@@ -105,7 +105,7 @@ const ControlHeader: FC<ControlHeaderProps> = ({
{description && (
<span>
<Tooltip
- id={`${t('description')}-tooltip`}
+ id="description-tooltip"
title={description}
placement="top"
>
diff --git a/superset-frontend/src/pages/ChartCreation/index.tsx
b/superset-frontend/src/pages/ChartCreation/index.tsx
index bea530fd3a..2a01a9123a 100644
--- a/superset-frontend/src/pages/ChartCreation/index.tsx
+++ b/superset-frontend/src/pages/ChartCreation/index.tsx
@@ -335,19 +335,20 @@ export class ChartCreation extends React.PureComponent<
render() {
const isButtonDisabled = this.isBtnDisabled();
+ const VIEW_INSTRUCTIONS_TEXT = t('view instructions');
const datasetHelpText = this.state.canCreateDataset ? (
<span data-test="dataset-write">
<Link to="/dataset/add/" data-test="add-chart-new-dataset">
- {t('Add a dataset')}
+ {t('Add a dataset')}{' '}
</Link>
- {` ${t('or')} `}
+ {t('or')}{' '}
<a
href="https://superset.apache.org/docs/creating-charts-dashboards/creating-your-first-dashboard/#registering-a-new-table"
rel="noopener noreferrer"
target="_blank"
data-test="add-chart-new-dataset-instructions"
>
- {`${t('view instructions')} `}
+ {`${VIEW_INSTRUCTIONS_TEXT} `}
<i className="fa fa-external-link" />
</a>
.
@@ -359,7 +360,7 @@ export class ChartCreation extends React.PureComponent<
rel="noopener noreferrer"
target="_blank"
>
- {`${t('View instructions')} `}
+ {`${VIEW_INSTRUCTIONS_TEXT} `}
<i className="fa fa-external-link" />
</a>
.
diff --git
a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/ExtraOptions.tsx
b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/ExtraOptions.tsx
index 6077c288a5..f50d7597f2 100644
---
a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/ExtraOptions.tsx
+++
b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/ExtraOptions.tsx
@@ -218,7 +218,7 @@ const ExtraOptions = ({
<div>
<h4>{t('Performance')}</h4>
<p className="helper">
- Adjust performance settings of this database.
+ {t('Adjust performance settings of this database.')}
</p>
</div>
}
diff --git a/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx
b/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx
index 0906776506..594973389a 100644
--- a/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx
+++ b/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx
@@ -332,7 +332,7 @@ const DatasetList: FunctionComponent<DatasetListProps> = ({
row: {
original: { kind },
},
- }: any) => kind[0]?.toUpperCase() + kind.slice(1),
+ }: any) => (kind === 'physical' ? t('Physical') : t('Virtual')),
Header: t('Type'),
accessor: 'kind',
disableSortBy: true,
diff --git a/superset-frontend/src/views/CRUD/welcome/EmptyState.tsx
b/superset-frontend/src/views/CRUD/welcome/EmptyState.tsx
index 9427c537dd..47e7817ae3 100644
--- a/superset-frontend/src/views/CRUD/welcome/EmptyState.tsx
+++ b/superset-frontend/src/views/CRUD/welcome/EmptyState.tsx
@@ -37,6 +37,18 @@ const welcomeTableEmpty: Record<WelcomeTable, string> = {
[WelcomeTable.SavedQueries]: t('No saved queries yet'),
};
+const welcomeTableWillAppear: Record<WelcomeTable, (other: string) => string> =
+ {
+ [WelcomeTable.Charts]: (other: string) =>
+ t('%(other)s charts will appear here', { other }),
+ [WelcomeTable.Dashboards]: (other: string) =>
+ t('%(other)s dashboards will appear here', { other }),
+ [WelcomeTable.Recents]: (other: string) =>
+ t('%(other)s recents will appear here', { other }),
+ [WelcomeTable.SavedQueries]: (other: string) =>
+ t('%(other)s saved queries will appear here', { other }),
+ };
+
export interface EmptyStateProps {
tableName: WelcomeTable;
tab?: string;
@@ -97,10 +109,8 @@ export default function EmptyState({
);
}
if (tab === TableTab.Other) {
- return t('%(other)s %(tableName)s will appear here', {
- other: otherTabTitle || t('Other'),
- tableName: tableName.toLowerCase(),
- });
+ const other = otherTabTitle || t('Other');
+ return welcomeTableWillAppear[tableName](other);
}
if (tab === TableTab.Edited) {
return t(