You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by vi...@apache.org on 2021/11/27 12:52:34 UTC

[superset] branch master updated: chore(translations): Add missing i18n (#17525)

This is an automated email from the ASF dual-hosted git repository.

villebro 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 6604a6a  chore(translations): Add missing i18n (#17525)
6604a6a is described below

commit 6604a6ab28eb4818d973ae7e76d045fec132e403
Author: Holger Bruch <hb...@mfdz.de>
AuthorDate: Sat Nov 27 13:50:33 2021 +0100

    chore(translations): Add missing i18n (#17525)
    
    * Add *.ts to babel.cfg
    
    * Add missing i18n calls
    
    * Update pot file
    
    * Fix lint issues and review comment
    
    * Incorparate review feedback
    
    * Fix missing or non-extractable i18n calls
    
    * Update pot file
    
    * Fix syntax error in CommonParameters.tsx
    
    * Fix introduced issues
---
 superset-frontend/src/SqlLab/actions/sqlLab.js     |    4 +-
 .../SqlLab/components/TabbedSqlEditors/index.jsx   |    6 +-
 .../components/TemplateParamsEditor/index.tsx      |    2 +-
 .../ErrorMessage/DatabaseErrorMessage.tsx          |    9 +-
 .../ErrorMessage/TimeoutErrorMessage.tsx           |    7 +-
 .../src/components/Menu/MenuRight.tsx              |    5 +-
 .../src/dashboard/actions/dashboardState.js        |    4 +-
 .../src/dashboard/components/SliceAdder.jsx        |    2 +-
 .../components/SliceHeaderControls/index.tsx       |    2 +-
 .../FilterBar/FilterControls/FilterControls.tsx    |    4 +-
 .../controls/DateFilterControl/utils/constants.ts  |   16 +-
 .../controls/SelectAsyncControl/index.tsx          |    2 +-
 .../components/Select/SelectFilterPlugin.tsx       |    3 +-
 .../DatabaseConnectionForm/CommonParameters.tsx    |   22 +-
 .../CRUD/data/database/DatabaseModal/index.tsx     |   84 +-
 .../src/views/CRUD/welcome/ActivityTable.tsx       |   25 +-
 .../src/views/CRUD/welcome/ChartTable.tsx          |    2 +-
 .../src/views/CRUD/welcome/DashboardTable.tsx      |    4 +-
 .../src/views/CRUD/welcome/EmptyState.tsx          |   10 +-
 .../src/views/CRUD/welcome/SavedQueries.tsx        |    4 +-
 superset/translations/babel.cfg                    |    1 +
 superset/translations/messages.pot                 | 1514 ++++++++++++++------
 22 files changed, 1166 insertions(+), 566 deletions(-)

diff --git a/superset-frontend/src/SqlLab/actions/sqlLab.js b/superset-frontend/src/SqlLab/actions/sqlLab.js
index a7fa368..a4c0177 100644
--- a/superset-frontend/src/SqlLab/actions/sqlLab.js
+++ b/superset-frontend/src/SqlLab/actions/sqlLab.js
@@ -406,9 +406,7 @@ export function postStopQuery(query) {
       .then(() => dispatch(stopQuery(query)))
       .then(() => dispatch(addSuccessToast(t('Query was stopped.'))))
       .catch(() =>
-        dispatch(
-          addDangerToast(`${t('Failed at stopping query. ')}'${query.id}'`),
-        ),
+        dispatch(addDangerToast(t('Failed at stopping query. %s', query.id))),
       );
   };
 }
diff --git a/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx
index 090d4b7..ea400b8 100644
--- a/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx
+++ b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx
@@ -257,9 +257,9 @@ class TabbedSqlEditors extends React.PureComponent {
     );
     const warning = isFeatureEnabled(FeatureFlag.SQLLAB_BACKEND_PERSISTENCE)
       ? ''
-      : `${t(
-          '-- Note: Unless you save your query, these tabs will NOT persist if you clear your cookies or change browsers.',
-        )}\n\n`;
+      : t(
+          '-- Note: Unless you save your query, these tabs will NOT persist if you clear your cookies or change browsers.\n\n',
+        );
     const qe = {
       title: t('Untitled Query %s', queryCount),
       dbId:
diff --git a/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx b/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
index 1e18040..d0aa6bd 100644
--- a/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
+++ b/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
@@ -100,7 +100,7 @@ function TemplateParamsEditor({
           trigger={['hover']}
         >
           <div role="button">
-            {`${t('Parameters')} `}
+            {t('Parameters ')}
             <Badge count={paramCount} />
             {!isValid && (
               <InfoTooltipWithTrigger
diff --git a/superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx b/superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx
index 9a131f1..612abca 100644
--- a/superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx
+++ b/superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx
@@ -77,9 +77,12 @@ function DatabaseErrorMessage({
 
   const copyText =
     extra && extra.issue_codes
-      ? `${message}
-${t('This may be triggered by:')}
-${extra.issue_codes.map(issueCode => issueCode.message).join('\n')}`
+      ? t('%(message)s\nThis may be triggered by: \n%(issues)s', {
+          message,
+          issues: extra.issue_codes
+            .map(issueCode => issueCode.message)
+            .join('\n'),
+        })
       : message;
 
   return (
diff --git a/superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx b/superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx
index cda557b..221b783 100644
--- a/superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx
+++ b/superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx
@@ -88,9 +88,10 @@ function TimeoutErrorMessage({
     </>
   );
 
-  const copyText = `${subtitle}
-${t('This may be triggered by:')}
-${extra.issue_codes.map(issueCode => issueCode.message).join('\n')}`;
+  const copyText = t('%(subtitle)s\nThis may be triggered by:\n %(issue)s', {
+    subtitle,
+    issue: extra.issue_codes.map(issueCode => issueCode.message).join('\n'),
+  });
 
   return (
     <ErrorAlert
diff --git a/superset-frontend/src/components/Menu/MenuRight.tsx b/superset-frontend/src/components/Menu/MenuRight.tsx
index 42bf57e..0ece154 100644
--- a/superset-frontend/src/components/Menu/MenuRight.tsx
+++ b/superset-frontend/src/components/Menu/MenuRight.tsx
@@ -129,7 +129,10 @@ const RightMenu = ({
             )}
           </SubMenu>
         )}
-        <SubMenu title="Settings" icon={<Icons.TriangleDown iconSize="xl" />}>
+        <SubMenu
+          title={t('Settings')}
+          icon={<Icons.TriangleDown iconSize="xl" />}
+        >
           {settings.map((section, index) => [
             <Menu.ItemGroup key={`${section.label}`} title={section.label}>
               {section.childs?.map(child => {
diff --git a/superset-frontend/src/dashboard/actions/dashboardState.js b/superset-frontend/src/dashboard/actions/dashboardState.js
index 094e61a..fcd3934 100644
--- a/superset-frontend/src/dashboard/actions/dashboardState.js
+++ b/superset-frontend/src/dashboard/actions/dashboardState.js
@@ -235,9 +235,7 @@ export function saveDashboardRequest(data, id, saveType) {
         getClientErrorObject(response).then(({ error }) =>
           dispatch(
             addDangerToast(
-              `${t(
-                'Sorry, there was an error saving this dashboard: ',
-              )} ${error}`,
+              t('Sorry, there was an error saving this dashboard: %s', error),
             ),
           ),
         ),
diff --git a/superset-frontend/src/dashboard/components/SliceAdder.jsx b/superset-frontend/src/dashboard/components/SliceAdder.jsx
index c6d6ae6..d1caf98 100644
--- a/superset-frontend/src/dashboard/components/SliceAdder.jsx
+++ b/superset-frontend/src/dashboard/components/SliceAdder.jsx
@@ -253,7 +253,7 @@ class SliceAdder extends React.Component {
             value={this.state.sortBy}
             onChange={this.handleSelect}
             options={Object.entries(KEYS_TO_SORT).map(([key, label]) => ({
-              label: `${t('Sort by')} ${label}`,
+              label: t('Sort by %s', label),
               value: key,
             }))}
             placeholder={t('Sort by')}
diff --git a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx
index 5094412..6784eab 100644
--- a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx
+++ b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx
@@ -250,7 +250,7 @@ class SliceHeaderControls extends React.PureComponent<
     const refreshTooltip = refreshTooltipData.map((item, index) => (
       <div key={`tooltip-${index}`}>
         {refreshTooltipData.length > 1
-          ? `${t('Query')} ${index + 1}: ${item}`
+          ? t('Query %s: %s', index + 1, item)
           : item}
       </div>
     ));
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
index 19f18a1..f0c0a56 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
@@ -156,9 +156,7 @@ const FilterControls: FC<FilterControlsProps> = ({
           `}
         >
           <Collapse.Panel
-            header={`${t('Filters out of scope')} (${
-              filtersOutOfScope.length
-            })`}
+            header={t('Filters out of scope (%d)', filtersOutOfScope.length)}
             key="1"
           >
             {filtersOutOfScope.map(filter => {
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts b/superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts
index 7e2f34e..5df3d46 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts
@@ -60,14 +60,14 @@ export const CALENDAR_RANGE_VALUES_SET = new Set(
 );
 
 const GRAIN_OPTIONS = [
-  { value: 'second', label: (rel: string) => `${t('Seconds')} ${rel}` },
-  { value: 'minute', label: (rel: string) => `${t('Minutes')} ${rel}` },
-  { value: 'hour', label: (rel: string) => `${t('Hours')} ${rel}` },
-  { value: 'day', label: (rel: string) => `${t('Days')} ${rel}` },
-  { value: 'week', label: (rel: string) => `${t('Weeks')} ${rel}` },
-  { value: 'month', label: (rel: string) => `${t('Months')} ${rel}` },
-  { value: 'quarter', label: (rel: string) => `${t('Quarters')} ${rel}` },
-  { value: 'year', label: (rel: string) => `${t('Years')} ${rel}` },
+  { value: 'second', label: (rel: string) => t('Seconds %s', rel) },
+  { value: 'minute', label: (rel: string) => t('Minutes %s', rel) },
+  { value: 'hour', label: (rel: string) => t('Hours %s', rel) },
+  { value: 'day', label: (rel: string) => t('Days %s', rel) },
+  { value: 'week', label: (rel: string) => t('Weeks %s', rel) },
+  { value: 'month', label: (rel: string) => t('Months %s', rel) },
+  { value: 'quarter', label: (rel: string) => t('Quarters %s', rel) },
+  { value: 'year', label: (rel: string) => t('Years %s', rel) },
 ];
 
 export const SINCE_GRAIN_OPTIONS: SelectOptionType[] = GRAIN_OPTIONS.map(
diff --git a/superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx b/superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx
index ae65843..66d9fb1 100644
--- a/superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx
+++ b/superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx
@@ -86,7 +86,7 @@ const SelectAsyncControl = ({
     const onError = (response: Response) =>
       getClientErrorObject(response).then(e => {
         const { error } = e;
-        addDangerToast(`${t('Error while fetching data')}: ${error}`);
+        addDangerToast(t('Error while fetching data: %s', error));
       });
     const loadOptions = () =>
       SupersetClient.get({
diff --git a/superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx b/superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx
index e8a8481..15d85ee 100644
--- a/superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx
+++ b/superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx
@@ -119,8 +119,7 @@ export default function PluginFilterSelect(props: PluginFilterSelectProps) {
       const emptyFilter =
         enableEmptyFilter && !inverseSelection && !values?.length;
 
-      const suffix =
-        inverseSelection && values?.length ? ` (${t('excluded')})` : '';
+      const suffix = inverseSelection && values?.length ? t(' (excluded)') : '';
 
       dispatchDataMask({
         type: 'filterState',
diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx
index e1ea9fe..c38e0d5 100644
--- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx
+++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx
@@ -42,9 +42,9 @@ export const hostField = ({
     )}
     validationMethods={{ onBlur: getValidation }}
     errorMessage={validationErrors?.host}
-    placeholder="e.g. 127.0.0.1"
+    placeholder={t('e.g. 127.0.0.1')}
     className="form-group-w-50"
-    label="Host"
+    label={t('Host')}
     onChange={changeMethods.onParametersChange}
   />
 );
@@ -64,7 +64,7 @@ export const portField = ({
       value={db?.parameters?.port as number}
       validationMethods={{ onBlur: getValidation }}
       errorMessage={validationErrors?.port}
-      placeholder="e.g. 5432"
+      placeholder={t('e.g. 5432')}
       className="form-group-w-50"
       label="Port"
       onChange={changeMethods.onParametersChange}
@@ -85,8 +85,8 @@ export const databaseField = ({
     value={db?.parameters?.database}
     validationMethods={{ onBlur: getValidation }}
     errorMessage={validationErrors?.database}
-    placeholder="e.g. world_population"
-    label="Database name"
+    placeholder={t('e.g. world_population')}
+    label={t('Database name')}
     onChange={changeMethods.onParametersChange}
     helpText={t('Copy the name of the  database you are trying to connect to.')}
   />
@@ -105,8 +105,8 @@ export const usernameField = ({
     value={db?.parameters?.username}
     validationMethods={{ onBlur: getValidation }}
     errorMessage={validationErrors?.username}
-    placeholder="e.g. Analytics"
-    label="Username"
+    placeholder={t('e.g. Analytics')}
+    label={t('Username')}
     onChange={changeMethods.onParametersChange}
   />
 );
@@ -126,8 +126,8 @@ export const passwordField = ({
     value={db?.parameters?.password}
     validationMethods={{ onBlur: getValidation }}
     errorMessage={validationErrors?.password}
-    placeholder="e.g. ********"
-    label="Password"
+    placeholder={t('e.g. ********')}
+    label={t('Password')}
     onChange={changeMethods.onParametersChange}
   />
 );
@@ -169,8 +169,8 @@ export const queryField = ({
     value={db?.query_input || ''}
     validationMethods={{ onBlur: getValidation }}
     errorMessage={validationErrors?.query}
-    placeholder="e.g. param1=value1&param2=value2"
-    label="Additional Parameters"
+    placeholder={t('e.g. param1=value1&param2=value2')}
+    label={t('Additional Parameters')}
     onChange={changeMethods.onQueryChange}
     helpText={t('Add additional custom parameters')}
   />
diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx
index ccc70e1..86b2218 100644
--- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx
+++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx
@@ -90,38 +90,42 @@ const engineSpecificAlertMapping = {
 
 const errorAlertMapping = {
   CONNECTION_MISSING_PARAMETERS_ERROR: {
-    message: 'Missing Required Fields',
-    description: 'Please complete all required fields.',
+    message: t('Missing Required Fields'),
+    description: t('Please complete all required fields.'),
   },
   CONNECTION_INVALID_HOSTNAME_ERROR: {
-    message: 'Could not verify the host',
-    description:
+    message: t('Could not verify the host'),
+    description: t(
       'The host is invalid. Please verify that this field is entered correctly.',
+    ),
   },
   CONNECTION_PORT_CLOSED_ERROR: {
-    message: 'Port is closed',
-    description: 'Please verify that port is open to connect.',
+    message: t('Port is closed'),
+    description: t('Please verify that port is open to connect.'),
   },
   CONNECTION_INVALID_PORT_ERROR: {
-    message: 'Invalid Port Number',
-    description: 'The port must be a whole number less than or equal to 65535.',
+    message: t('Invalid Port Number'),
+    description: t(
+      'The port must be a whole number less than or equal to 65535.',
+    ),
   },
   CONNECTION_ACCESS_DENIED_ERROR: {
-    message: 'Invalid account information',
-    description: 'Either the username or password is incorrect.',
+    message: t('Invalid account information'),
+    description: t('Either the username or password is incorrect.'),
   },
   CONNECTION_INVALID_PASSWORD_ERROR: {
-    message: 'Invalid account information',
-    description: 'Either the username or password is incorrect.',
+    message: t('Invalid account information'),
+    description: t('Either the username or password is incorrect.'),
   },
   INVALID_PAYLOAD_SCHEMA_ERROR: {
-    message: 'Incorrect Fields',
-    description: 'Please make sure all fields are filled out correctly',
+    message: t('Incorrect Fields'),
+    description: t('Please make sure all fields are filled out correctly'),
   },
   TABLE_DOES_NOT_EXIST_ERROR: {
-    message: 'URL could not be identified',
-    description:
+    message: t('URL could not be identified'),
+    description: t(
       'The URL could not be identified. Please check for typos and make sure that "Type of google sheet allowed" selection matches the input',
+    ),
   },
 };
 interface DatabaseModalProps {
@@ -661,13 +665,13 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
   const renderAvailableSelector = () => (
     <div className="available">
       <h4 className="available-label">
-        Or choose from a list of other databases we support:
+        {t('Or choose from a list of other databases we support:')}
       </h4>
-      <div className="control-label">Supported databases</div>
+      <div className="control-label">{t('Supported databases')}</div>
       <Select
         className="available-select"
         onChange={setDatabaseModel}
-        placeholder="Choose a database..."
+        placeholder={t('Choose a database...')}
       >
         {[...(availableDbs?.databases || [])]
           ?.sort((a: DatabaseForm, b: DatabaseForm) =>
@@ -680,7 +684,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
           ))}
         {/* Allow users to connect to DB via legacy SQLA form */}
         <Select.Option value="Other" key="Other">
-          Other
+          {t('Other')}
         </Select.Option>
       </Select>
       <Alert
@@ -695,8 +699,9 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
         description={
           connectionAlert?.ADD_DATABASE ? (
             <>
-              Any databases that allow connections via SQL Alchemy URIs can be
-              added.{' '}
+              {t(
+                'Any databases that allow connections via SQL Alchemy URIs can be added. ',
+              )}
               <a
                 href={connectionAlert?.ADD_DATABASE.contact_link}
                 target="_blank"
@@ -708,14 +713,15 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
             </>
           ) : (
             <>
-              Any databases that allow connections via SQL Alchemy URIs can be
-              added. Learn about how to connect a database driver{' '}
+              {t(
+                'Any databases that allow connections via SQL Alchemy URIs can be added. Learn about how to connect a database driver ',
+              )}
               <a
                 href={DOCUMENTATION_LINK}
                 target="_blank"
                 rel="noopener noreferrer"
               >
-                here
+                {t('here')}
               </a>
               .
             </>
@@ -761,14 +767,14 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
         return (
           <>
             <StyledFooterButton key="back" onClick={handleBackButtonOnConnect}>
-              Back
+              {t('Back')}
             </StyledFooterButton>
             <StyledFooterButton
               key="submit"
               buttonStyle="primary"
               onClick={onSave}
             >
-              Connect
+              {t('Connect')}
             </StyledFooterButton>
           </>
         );
@@ -777,7 +783,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
       return (
         <>
           <StyledFooterButton key="back" onClick={handleBackButtonOnFinish}>
-            Back
+            {t('Back')}
           </StyledFooterButton>
           <StyledFooterButton
             key="submit"
@@ -785,7 +791,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
             onClick={onSave}
             data-test="modal-confirm-button"
           >
-            Finish
+            {t('Finish')}
           </StyledFooterButton>
         </>
       );
@@ -796,10 +802,10 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
   const renderEditModalFooter = () => (
     <>
       <StyledFooterButton key="close" onClick={onClose}>
-        Close
+        {t('Close')}
       </StyledFooterButton>
       <StyledFooterButton key="submit" buttonStyle="primary" onClick={onSave}>
-        Finish
+        {t('Finish')}
       </StyledFooterButton>
     </>
   );
@@ -901,7 +907,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
       <Alert
         type="error"
         css={(theme: SupersetTheme) => antDErrorAlertStyles(theme)}
-        message="Database Creation Error"
+        message={t('Database Creation Error')}
         description={message?.[0] || dbErrors}
       />
     );
@@ -1059,7 +1065,7 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
                     }
                     css={theme => alchemyButtonLinkStyles(theme)}
                   >
-                    Connect this database using the dynamic form instead
+                    {t('Connect this database using the dynamic form instead')}
                   </Button>
                   <InfoTooltip
                     tooltip={t(
@@ -1118,16 +1124,16 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
                 showIcon
                 description={
                   <>
-                    Select databases require additional fields to be completed
-                    in the Advanced tab to successfully connect the database.
-                    Learn what requirements your databases has{' '}
+                    {t(
+                      'Select databases require additional fields to be completed in the Advanced tab to successfully connect the database. Learn what requirements your databases has ',
+                    )}
                     <a
                       href={DOCUMENTATION_LINK}
                       target="_blank"
                       rel="noopener noreferrer"
                       className="additional-fields-alert-description"
                     >
-                      here
+                      {t('here')}
                     </a>
                     .
                   </>
@@ -1292,7 +1298,9 @@ const DatabaseModal: FunctionComponent<DatabaseModalProps> = ({
                     }
                     css={buttonLinkStyles}
                   >
-                    Connect this database with a SQLAlchemy URI string instead
+                    {t(
+                      'Connect this database with a SQLAlchemy URI string instead',
+                    )}
                   </Button>
                   <InfoTooltip
                     tooltip={t(
diff --git a/superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx b/superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx
index f9d026c..e4a6ff4 100644
--- a/superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx
+++ b/superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx
@@ -120,33 +120,14 @@ const getEntityUrl = (entity: ActivityObject) => {
 };
 
 const getEntityLastActionOn = (entity: ActivityObject) => {
-  // translation keys for last action on
-  const LAST_VIEWED = `Viewed %s`;
-  const LAST_MODIFIED = `Modified %s`;
-
-  // for Recent viewed items
-  if ('time_delta_humanized' in entity) {
-    return t(LAST_VIEWED, entity.time_delta_humanized);
-  }
-
-  if ('changed_on_delta_humanized' in entity) {
-    return t(LAST_MODIFIED, entity.changed_on_delta_humanized);
+  if ('time' in entity) {
+    return t('Viewed %s', moment(entity.time).fromNow());
   }
 
   let time: number | string | undefined | null;
-  let translationKey = LAST_MODIFIED;
-  if ('time' in entity) {
-    // eslint-disable-next-line prefer-destructuring
-    time = entity.time;
-    translationKey = LAST_VIEWED;
-  }
   if ('changed_on' in entity) time = entity.changed_on;
   if ('changed_on_utc' in entity) time = entity.changed_on_utc;
-
-  return t(
-    translationKey,
-    time == null ? UNKNOWN_TIME : moment(time).fromNow(),
-  );
+  return t('Modified %s', time == null ? UNKNOWN_TIME : moment(time).fromNow());
 };
 
 export default function ActivityTable({
diff --git a/superset-frontend/src/views/CRUD/welcome/ChartTable.tsx b/superset-frontend/src/views/CRUD/welcome/ChartTable.tsx
index 2a94053..f82cab4 100644
--- a/superset-frontend/src/views/CRUD/welcome/ChartTable.tsx
+++ b/superset-frontend/src/views/CRUD/welcome/ChartTable.tsx
@@ -214,7 +214,7 @@ function ChartTable({
             },
           },
           {
-            name: 'View All »',
+            name: t('View All »'),
             buttonStyle: 'link',
             onClick: () => {
               const target =
diff --git a/superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx b/superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx
index 6d1666e..759a073 100644
--- a/superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx
+++ b/superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx
@@ -207,7 +207,7 @@ function DashboardTable({
             name: (
               <>
                 <i className="fa fa-plus" />
-                Dashboard
+                {t('Dashboard')}
               </>
             ),
             buttonStyle: 'tertiary',
@@ -216,7 +216,7 @@ function DashboardTable({
             },
           },
           {
-            name: 'View All »',
+            name: t('View All »'),
             buttonStyle: 'link',
             onClick: () => {
               const target =
diff --git a/superset-frontend/src/views/CRUD/welcome/EmptyState.tsx b/superset-frontend/src/views/CRUD/welcome/EmptyState.tsx
index 15546ca..fc75433 100644
--- a/superset-frontend/src/views/CRUD/welcome/EmptyState.tsx
+++ b/superset-frontend/src/views/CRUD/welcome/EmptyState.tsx
@@ -151,10 +151,12 @@ export default function EmptyState({ tableName, tab }: EmptyStateProps) {
             window.location.href = favRedirects[tableName];
           }}
         >
-          See all{' '}
-          {tableName === 'SAVED_QUERIES'
-            ? t('SQL Lab queries')
-            : t(`${tableName}`)}
+          {t('See all %(tableName)s', {
+            tableName:
+              tableName === 'SAVED_QUERIES'
+                ? t('SQL Lab queries')
+                : welcomeTableLabels[tableName],
+          })}
         </Button>
       </Empty>
     </EmptyContainer>
diff --git a/superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx b/superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx
index a9505cf..b8eeab5 100644
--- a/superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx
+++ b/superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx
@@ -284,7 +284,7 @@ const SavedQueries = ({
             name: (
               <>
                 <i className="fa fa-plus" />
-                SQL Query
+                {t('SQL Query')}
               </>
             ),
             buttonStyle: 'tertiary',
@@ -293,7 +293,7 @@ const SavedQueries = ({
             },
           },
           {
-            name: 'View All »',
+            name: t('View All »'),
             buttonStyle: 'link',
             onClick: () => {
               window.location.href = '/savedqueryview/list';
diff --git a/superset/translations/babel.cfg b/superset/translations/babel.cfg
index b7f3d10..08516b8 100644
--- a/superset/translations/babel.cfg
+++ b/superset/translations/babel.cfg
@@ -19,6 +19,7 @@
 [jinja2: superset/**/templates/**.html]
 [javascript: superset-frontend/src/**.js]
 [javascript: superset-frontend/src/**.jsx]
+[javascript: superset-frontend/src/**.ts]
 [javascript: superset-frontend/src/**.tsx]
 
 encoding = utf-8
diff --git a/superset/translations/messages.pot b/superset/translations/messages.pot
index 2fea1f1..37ae084 100644
--- a/superset/translations/messages.pot
+++ b/superset/translations/messages.pot
@@ -20,7 +20,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-11-18 11:14+0100\n"
+"POT-Creation-Date: 2021-11-24 00:36+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EM...@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL...@li.org>\n"
@@ -219,7 +219,7 @@ msgid ""
 "complex, or the database might be under heavy load."
 msgstr ""
 
-#: superset/sql_lab.py:375 superset/views/core.py:2254
+#: superset/sql_lab.py:375 superset/views/core.py:2253
 msgid "Results backend is not configured."
 msgstr ""
 
@@ -237,321 +237,321 @@ msgid ""
 "statement. Then, try running your query again."
 msgstr ""
 
-#: superset/viz.py:130
+#: superset/viz.py:133
 msgid "Viz is missing a datasource"
 msgstr ""
 
-#: superset/viz.py:234
+#: superset/viz.py:237
 msgid ""
 "Applied rolling window did not return any data. Please make sure the "
 "source query satisfies the minimum periods defined in the rolling window."
 msgstr ""
 
-#: superset/utils/date_parser.py:264 superset/viz.py:367
+#: superset/utils/date_parser.py:264 superset/viz.py:370
 msgid "From date cannot be larger than to date"
 msgstr ""
 
-#: superset/viz.py:536
+#: superset/viz.py:539
 msgid "Cached value not found"
 msgstr ""
 
-#: superset/common/query_context.py:463 superset/viz.py:551
+#: superset/common/query_context_processor.py:114 superset/viz.py:554
 #, python-format
 msgid "Columns missing in datasource: %(invalid_columns)s"
 msgstr ""
 
-#: superset/viz.py:668
+#: superset/viz.py:671
 msgid "Table View"
 msgstr ""
 
-#: superset/viz.py:693
+#: superset/viz.py:696
 msgid ""
 "You cannot use [Columns] in combination with [Group "
 "By]/[Metrics]/[Percentage Metrics]. Please choose one or the other."
 msgstr ""
 
-#: superset/viz.py:739
+#: superset/viz.py:742
 msgid "Pick a granularity in the Time section or uncheck 'Include Time'"
 msgstr ""
 
-#: superset/viz.py:819
+#: superset/viz.py:822
 msgid "Time Table View"
 msgstr ""
 
-#: superset/viz.py:827 superset/viz.py:1778
+#: superset/viz.py:830 superset/viz.py:1781
 msgid "Pick at least one metric"
 msgstr ""
 
-#: superset/viz.py:831
+#: superset/viz.py:834
 msgid "When using 'Group By' you are limited to use a single metric"
 msgstr ""
 
-#: superset/viz.py:859
+#: superset/viz.py:862
 msgid "Pivot Table"
 msgstr ""
 
-#: superset/viz.py:876
+#: superset/viz.py:879
 msgid "Please choose at least one 'Group by' field "
 msgstr ""
 
-#: superset/viz.py:888
+#: superset/viz.py:891
 msgid "Please choose at least one metric"
 msgstr ""
 
-#: superset/viz.py:892
+#: superset/viz.py:895
 msgid "Group By' and 'Columns' can't overlap"
 msgstr ""
 
-#: superset/viz.py:1000
+#: superset/viz.py:1003
 msgid "Treemap"
 msgstr ""
 
-#: superset/viz.py:1045
+#: superset/viz.py:1048
 msgid "Calendar Heatmap"
 msgstr ""
 
-#: superset/viz.py:1136
+#: superset/viz.py:1139
 msgid "Bubble Chart"
 msgstr ""
 
-#: superset/viz.py:1158
+#: superset/viz.py:1161
 msgid "Please use 3 different metric labels"
 msgstr ""
 
-#: superset/viz.py:1160
+#: superset/viz.py:1163
 msgid "Pick a metric for x, y and size"
 msgstr ""
 
-#: superset/viz.py:1187
+#: superset/viz.py:1190
 msgid "Bullet Chart"
 msgstr ""
 
-#: superset/viz.py:1199
+#: superset/viz.py:1202
 msgid "Pick a metric to display"
 msgstr ""
 
-#: superset/viz.py:1217
+#: superset/viz.py:1220
 msgid "Big Number with Trendline"
 msgstr ""
 
-#: superset/viz.py:1225 superset/viz.py:1259
+#: superset/viz.py:1228 superset/viz.py:1262
 msgid "Pick a metric!"
 msgstr ""
 
-#: superset/viz.py:1251
+#: superset/viz.py:1254
 msgid "Big Number"
 msgstr ""
 
-#: superset/viz.py:1273
+#: superset/viz.py:1276
 msgid "Time Series - Line Chart"
 msgstr ""
 
-#: superset/viz.py:1355 superset/viz.py:1618
+#: superset/viz.py:1358 superset/viz.py:1621
 msgid "Pick a time granularity for your time series"
 msgstr ""
 
-#: superset/common/query_context.py:151 superset/viz.py:1412
+#: superset/common/query_context_processor.py:257 superset/viz.py:1415
 msgid ""
 "An enclosed time range (both start and end) must be specified when using "
 "a Time Comparison."
 msgstr ""
 
-#: superset/viz.py:1483
+#: superset/viz.py:1486
 msgid "Time Series - Multiple Line Charts"
 msgstr ""
 
-#: superset/viz.py:1561
+#: superset/viz.py:1564
 msgid "Time Series - Dual Axis Line Chart"
 msgstr ""
 
-#: superset/viz.py:1570
+#: superset/viz.py:1573
 msgid "Pick a metric for left axis!"
 msgstr ""
 
-#: superset/viz.py:1572
+#: superset/viz.py:1575
 msgid "Pick a metric for right axis!"
 msgstr ""
 
-#: superset/viz.py:1575
+#: superset/viz.py:1578
 msgid "Please choose different metrics on left and right axis"
 msgstr ""
 
-#: superset/viz.py:1635
+#: superset/viz.py:1638
 msgid "Time Series - Bar Chart"
 msgstr ""
 
-#: superset/viz.py:1644
+#: superset/viz.py:1647
 msgid "Time Series - Period Pivot"
 msgstr ""
 
-#: superset/viz.py:1690
+#: superset/viz.py:1693
 msgid "Time Series - Percent Change"
 msgstr ""
 
-#: superset/viz.py:1698
+#: superset/viz.py:1701
 msgid "Time Series - Stacked"
 msgstr ""
 
-#: superset/viz.py:1708
+#: superset/viz.py:1711
 msgid "Histogram"
 msgstr ""
 
-#: superset/viz.py:1717
+#: superset/viz.py:1720
 msgid "Must have at least one numeric column specified"
 msgstr ""
 
-#: superset/viz.py:1766
+#: superset/viz.py:1769
 msgid "Distribution - Bar Chart"
 msgstr ""
 
-#: superset/viz.py:1775
+#: superset/viz.py:1778
 msgid "Can't have overlap between Series and Breakdowns"
 msgstr ""
 
-#: superset/viz.py:1780
+#: superset/viz.py:1783
 msgid "Pick at least one field for [Series]"
 msgstr ""
 
-#: superset/viz.py:1853
+#: superset/viz.py:1856
 msgid "Sunburst"
 msgstr ""
 
-#: superset/viz.py:1900
+#: superset/viz.py:1903
 msgid "Sankey"
 msgstr ""
 
-#: superset/viz.py:1908
+#: superset/viz.py:1911
 msgid "Pick exactly 2 columns as [Source / Target]"
 msgstr ""
 
-#: superset/viz.py:1952
+#: superset/viz.py:1955
 msgid ""
 "There's a loop in your Sankey, please provide a tree. Here's a faulty "
 "link: {}"
 msgstr ""
 
-#: superset/viz.py:1965
+#: superset/viz.py:1968
 msgid "Directed Force Layout"
 msgstr ""
 
-#: superset/viz.py:2004
+#: superset/viz.py:2007
 msgid "Country Map"
 msgstr ""
 
-#: superset/viz.py:2039
+#: superset/viz.py:2042
 msgid "World Map"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx:103
-#: superset-frontend/src/explore/controls.jsx:466 superset/viz.py:2101
+#: superset-frontend/src/explore/controls.jsx:466 superset/viz.py:2105
 msgid "Filters"
 msgstr ""
 
-#: superset/viz.py:2122
+#: superset/viz.py:2123
 msgid "Invalid filter configuration, please select a column"
 msgstr ""
 
-#: superset/viz.py:2173
+#: superset/viz.py:2182
 msgid "Parallel Coordinates"
 msgstr ""
 
-#: superset/viz.py:2203
+#: superset/viz.py:2212
 msgid "Heatmap"
 msgstr ""
 
-#: superset/viz.py:2264
+#: superset/viz.py:2273
 msgid "Horizon Charts"
 msgstr ""
 
-#: superset/viz.py:2276
+#: superset/viz.py:2285
 msgid "Mapbox"
 msgstr ""
 
-#: superset/viz.py:2290
+#: superset/viz.py:2299
 msgid "[Longitude] and [Latitude] must be set"
 msgstr ""
 
-#: superset/viz.py:2300
+#: superset/viz.py:2309
 msgid "Must have a [Group By] column to have 'count' as the [Label]"
 msgstr ""
 
-#: superset/viz.py:2324
+#: superset/viz.py:2333
 msgid "Choice of [Label] must be present in [Group By]"
 msgstr ""
 
-#: superset/viz.py:2332
+#: superset/viz.py:2341
 msgid "Choice of [Point Radius] must be present in [Group By]"
 msgstr ""
 
-#: superset/viz.py:2340
+#: superset/viz.py:2349
 msgid "[Longitude] and [Latitude] columns must be present in [Group By]"
 msgstr ""
 
-#: superset/viz.py:2422
+#: superset/viz.py:2431
 msgid "Deck.gl - Multiple Layers"
 msgstr ""
 
-#: superset/viz.py:2463 superset/viz.py:2499
+#: superset/viz.py:2472 superset/viz.py:2508
 msgid "Bad spatial key"
 msgstr ""
 
-#: superset/viz.py:2484
+#: superset/viz.py:2493
 #, python-format
 msgid "Invalid spatial point encountered: %s"
 msgstr ""
 
-#: superset/viz.py:2521
+#: superset/viz.py:2530
 msgid ""
 "Encountered invalid NULL spatial entry,"
 "                                        please consider filtering those "
 "out"
 msgstr ""
 
-#: superset/viz.py:2616
+#: superset/viz.py:2625
 msgid "Deck.gl - Scatter plot"
 msgstr ""
 
-#: superset/viz.py:2668
+#: superset/viz.py:2677
 msgid "Deck.gl - Screen Grid"
 msgstr ""
 
-#: superset/viz.py:2697
+#: superset/viz.py:2706
 msgid "Deck.gl - 3D Grid"
 msgstr ""
 
-#: superset/viz.py:2729
+#: superset/viz.py:2738
 msgid "Deck.gl - Paths"
 msgstr ""
 
-#: superset/viz.py:2780
+#: superset/viz.py:2789
 msgid "Deck.gl - Polygon"
 msgstr ""
 
-#: superset/viz.py:2813
+#: superset/viz.py:2822
 msgid "Deck.gl - 3D HEX"
 msgstr ""
 
-#: superset/viz.py:2834
+#: superset/viz.py:2843
 msgid "Deck.gl - GeoJSON"
 msgstr ""
 
-#: superset/viz.py:2853
+#: superset/viz.py:2862
 msgid "Deck.gl - Arc"
 msgstr ""
 
-#: superset/viz.py:2887
+#: superset/viz.py:2896
 msgid "Event flow"
 msgstr ""
 
-#: superset/viz.py:2919
+#: superset/viz.py:2928
 msgid "Time Series - Paired t-test"
 msgstr ""
 
-#: superset/viz.py:2991
+#: superset/viz.py:3000
 msgid "Time Series - Nightingale Rose Chart"
 msgstr ""
 
-#: superset/viz.py:3026
+#: superset/viz.py:3035
 msgid "Partition Diagram"
 msgstr ""
 
@@ -649,35 +649,35 @@ msgid_plural "Deleted %(num)d charts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: superset/charts/schemas.py:540
+#: superset/charts/schemas.py:545
 msgid "`confidence_interval` must be between 0 and 1 (exclusive)"
 msgstr ""
 
-#: superset/charts/schemas.py:607
+#: superset/charts/schemas.py:612
 msgid ""
 "lower percentile must be greater than 0 and less than 100. Must be lower "
 "than upper percentile."
 msgstr ""
 
-#: superset/charts/schemas.py:622
+#: superset/charts/schemas.py:627
 msgid ""
 "upper percentile must be greater than 0 and less than 100. Must be higher"
 " than lower percentile."
 msgstr ""
 
-#: superset/charts/schemas.py:912
+#: superset/charts/schemas.py:917
 msgid "`width` must be greater or equal to 0"
 msgstr ""
 
-#: superset/charts/schemas.py:1050
+#: superset/charts/schemas.py:1055
 msgid "`row_limit` must be greater than or equal to 0"
 msgstr ""
 
-#: superset/charts/schemas.py:1057
+#: superset/charts/schemas.py:1062
 msgid "`row_offset` must be greater than or equal to 0"
 msgstr ""
 
-#: superset/charts/schemas.py:1078
+#: superset/charts/schemas.py:1083
 msgid "orderby column must be populated"
 msgstr ""
 
@@ -759,17 +759,17 @@ msgstr ""
 msgid "Import chart failed for an unknown reason"
 msgstr ""
 
-#: superset/charts/data/api.py:124
+#: superset/charts/data/api.py:125
 msgid "Chart has no query context saved. Please save the chart again."
 msgstr ""
 
-#: superset/charts/data/api.py:144 superset/charts/data/api.py:230
-#: superset/charts/data/api.py:293
+#: superset/charts/data/api.py:145 superset/charts/data/api.py:233
+#: superset/charts/data/api.py:296
 #, python-format
 msgid "Request is incorrect: %(error)s"
 msgstr ""
 
-#: superset/charts/data/api.py:219
+#: superset/charts/data/api.py:222
 msgid "Request is not JSON"
 msgstr ""
 
@@ -792,29 +792,29 @@ msgstr ""
 msgid "Invalid result type: %(result_type)s"
 msgstr ""
 
-#: superset/common/query_context.py:413
+#: superset/common/query_context_processor.py:449
 msgid "The chart does not exist"
 msgstr ""
 
-#: superset/common/query_object.py:295
+#: superset/common/query_object.py:284
 #, python-format
 msgid ""
 "Duplicate column/metric labels: %(labels)s. Please make sure all columns "
 "and metrics have a unique label."
 msgstr ""
 
-#: superset/common/query_object.py:306
+#: superset/common/query_object.py:295
 #, python-format
 msgid ""
 "The following entries in `series_columns` are missing in `columns`: "
 "%(columns)s. "
 msgstr ""
 
-#: superset/common/query_object.py:399
+#: superset/common/query_object.py:388
 msgid "`operation` property of post processing object undefined"
 msgstr ""
 
-#: superset/common/query_object.py:403
+#: superset/common/query_object.py:392
 #, python-format
 msgid "Unsupported post processing operation: %(operation)s"
 msgstr ""
@@ -927,7 +927,7 @@ msgid "Metric"
 msgstr ""
 
 #: superset-frontend/src/SqlLab/components/SaveQuery/index.tsx:131
-#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:158
+#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:163
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:202
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:206
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:692
@@ -935,8 +935,8 @@ msgstr ""
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:1054
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:971
 #: superset-frontend/src/explore/components/PropertiesModal/index.tsx:211
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1096
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1102
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1100
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1106
 #: superset-frontend/src/views/CRUD/annotation/AnnotationList.tsx:147
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:157
 #: superset/connectors/druid/views.py:188
@@ -1109,9 +1109,9 @@ msgstr ""
 #: superset-frontend/src/dashboard/components/PropertiesModal/index.jsx:389
 #: superset-frontend/src/dashboard/components/PropertiesModal/index.jsx:392
 #: superset-frontend/src/explore/components/PropertiesModal/index.tsx:150
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:268
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1075
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1080
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:276
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1079
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1084
 #: superset-frontend/src/views/CRUD/dashboard/DashboardList.tsx:312
 #: superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx:334
 #: superset/connectors/druid/views.py:346 superset/connectors/sqla/views.py:500
@@ -1464,8 +1464,8 @@ msgid ""
 msgstr ""
 
 #: superset-frontend/src/components/DatabaseSelector/index.tsx:271
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1123
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1128
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1127
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1132
 #: superset-frontend/src/views/CRUD/data/database/DatabaseList.tsx:179
 #: superset-frontend/src/views/CRUD/data/database/DatabaseList.tsx:223
 #: superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx:294
@@ -1686,7 +1686,8 @@ msgid "Field is required"
 msgstr ""
 
 #: superset/databases/commands/exceptions.py:62
-msgid "Field cannot be decoded by JSON.  %{json_error}s"
+#, python-format
+msgid "Field cannot be decoded by JSON. %(json_error)s"
 msgstr ""
 
 #: superset/databases/commands/exceptions.py:79
@@ -1709,7 +1710,7 @@ msgid "Database could not be updated."
 msgstr ""
 
 #: superset/databases/commands/exceptions.py:105
-#: superset/databases/commands/exceptions.py:122 superset/views/core.py:1386
+#: superset/databases/commands/exceptions.py:122 superset/views/core.py:1385
 msgid "Connection failed, please check your connection settings"
 msgstr ""
 
@@ -1729,7 +1730,7 @@ msgstr ""
 msgid "Could not load database driver"
 msgstr ""
 
-#: superset/databases/commands/exceptions.py:135 superset/views/core.py:1394
+#: superset/databases/commands/exceptions.py:135 superset/views/core.py:1393
 msgid "Unexpected error occurred, please check your logs for details"
 msgstr ""
 
@@ -1941,10 +1942,12 @@ msgstr ""
 msgid "Week_ending Sunday"
 msgstr ""
 
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:109
 #: superset/db_engine_specs/base.py:1374
 msgid "Username"
 msgstr ""
 
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:130
 #: superset/db_engine_specs/base.py:1375
 msgid "Password"
 msgstr ""
@@ -1957,6 +1960,7 @@ msgstr ""
 msgid "Database port"
 msgstr ""
 
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:89
 #: superset/db_engine_specs/base.py:1382
 msgid "Database name"
 msgstr ""
@@ -2097,7 +2101,7 @@ msgstr ""
 msgid "Unable to connect to catalog named \"%(catalog_name)s\"."
 msgstr ""
 
-#: superset/db_engine_specs/presto.py:1005
+#: superset/db_engine_specs/presto.py:1006
 msgid "Unknown Presto Error"
 msgstr ""
 
@@ -2196,12 +2200,14 @@ msgid "Query History"
 msgstr ""
 
 #: superset-frontend/src/profile/components/Security.tsx:46
+#: superset-frontend/src/views/CRUD/data/common.ts:26
 #: superset/initialization/__init__.py:349 superset/views/database/mixins.py:33
 msgid "Databases"
 msgstr ""
 
 #: superset-frontend/src/explore/components/ControlPanelsContainer.tsx:401
 #: superset-frontend/src/explore/components/DataTablesPane/index.tsx:388
+#: superset-frontend/src/views/CRUD/data/common.ts:22
 #: superset/initialization/__init__.py:352
 #: superset/initialization/__init__.py:361
 #: superset/initialization/__init__.py:371
@@ -2215,6 +2221,7 @@ msgid "Data"
 msgstr ""
 
 #: superset-frontend/src/profile/components/Security.tsx:60
+#: superset-frontend/src/views/CRUD/data/common.ts:32
 #: superset/initialization/__init__.py:357
 msgid "Datasets"
 msgstr ""
@@ -2243,7 +2250,7 @@ msgstr ""
 msgid "Chart Email Schedules"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:422
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:436
 #: superset/initialization/__init__.py:466
 msgid "Alerts"
 msgstr ""
@@ -2580,18 +2587,19 @@ msgstr ""
 msgid "New"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1146
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1150
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:287
 #: superset/templates/appbuilder/navbar_right.html:38
 msgid "SQL Query"
 msgstr ""
 
 #: superset-frontend/src/components/Menu/MenuRight.tsx:39
 #: superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx:382
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1293
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1296
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1297
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1300
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:247
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:581
-#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:207
+#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:208
 #: superset/templates/appbuilder/navbar_right.html:39
 #: superset/views/chart/mixin.py:85 superset/views/chart/views.py:108
 #: superset/views/schedules.py:316
@@ -2599,31 +2607,32 @@ msgid "Chart"
 msgstr ""
 
 #: superset-frontend/src/components/Menu/MenuRight.tsx:46
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1292
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1313
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1296
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1317
 #: superset-frontend/src/views/CRUD/dashboard/DashboardList.tsx:548
+#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:210
 #: superset/templates/appbuilder/navbar_right.html:40
 #: superset/views/dashboard/mixin.py:78 superset/views/dashboard/views.py:155
 #: superset/views/schedules.py:236
 msgid "Dashboard"
 msgstr ""
 
-#: superset-frontend/src/components/Menu/MenuRight.tsx:158
+#: superset-frontend/src/components/Menu/MenuRight.tsx:161
 #: superset/templates/appbuilder/navbar_right.html:109
 msgid "Profile"
 msgstr ""
 
-#: superset-frontend/src/components/Menu/MenuRight.tsx:163
+#: superset-frontend/src/components/Menu/MenuRight.tsx:166
 #: superset/templates/appbuilder/navbar_right.html:110
 msgid "Info"
 msgstr ""
 
-#: superset-frontend/src/components/Menu/MenuRight.tsx:167
+#: superset-frontend/src/components/Menu/MenuRight.tsx:170
 #: superset/templates/appbuilder/navbar_right.html:111
 msgid "Logout"
 msgstr ""
 
-#: superset-frontend/src/components/Menu/MenuRight.tsx:230
+#: superset-frontend/src/components/Menu/MenuRight.tsx:233
 #: superset/templates/appbuilder/navbar_right.html:126
 msgid "Login"
 msgstr ""
@@ -2642,7 +2651,7 @@ msgstr ""
 
 #: superset-frontend/src/SqlLab/components/QuerySearch/index.tsx:256
 #: superset-frontend/src/explore/components/DataTableControl/index.tsx:77
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:405
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:419
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:305
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:516
 #: superset-frontend/src/views/CRUD/csstemplates/CssTemplatesList.tsx:292
@@ -2854,7 +2863,7 @@ msgid ""
 " first is lower than the second value"
 msgstr ""
 
-#: superset-frontend/src/components/Menu/MenuRight.tsx:155
+#: superset-frontend/src/components/Menu/MenuRight.tsx:158
 #: superset-frontend/src/views/CRUD/data/query/QueryList.tsx:275
 #: superset-frontend/src/views/CRUD/data/query/QueryList.tsx:365
 #: superset/views/access_requests.py:41 superset/views/log/__init__.py:30
@@ -2953,7 +2962,7 @@ msgstr ""
 msgid "Layer"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:144
+#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:149
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:192
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:196
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:1037
@@ -2995,7 +3004,7 @@ msgstr ""
 #: superset-frontend/src/explore/components/PropertiesModal/index.tsx:199
 #: superset-frontend/src/explore/components/PropertiesModal/index.tsx:201
 #: superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx:716
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:225
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:233
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:131
 #: superset-frontend/src/views/CRUD/csstemplates/CssTemplatesList.tsx:131
 #: superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx:279
@@ -3004,27 +3013,27 @@ msgstr ""
 msgid "Name"
 msgstr ""
 
-#: superset/views/base.py:250
+#: superset/views/base.py:251
 msgid ""
 "Table [%{table}s] could not be found, please double check your database "
 "connection, schema, and table name, error: {}"
 msgstr ""
 
-#: superset/views/base.py:526
+#: superset/views/base.py:527
 msgid "json isn't valid"
 msgstr ""
 
-#: superset/views/base.py:537
+#: superset/views/base.py:538
 msgid "Export to YAML"
 msgstr ""
 
-#: superset/views/base.py:537
+#: superset/views/base.py:538
 msgid "Export to YAML?"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FilterSetUnit.tsx:82
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:317
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:483
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:325
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:497
 #: superset-frontend/src/views/CRUD/annotation/AnnotationList.tsx:310
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:374
 #: superset-frontend/src/views/CRUD/chart/ChartCard.tsx:103
@@ -3037,12 +3046,12 @@ msgstr ""
 #: superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx:357
 #: superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx:628
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:508
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:237
-#: superset/views/base.py:594
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:238
+#: superset/views/base.py:595
 msgid "Delete"
 msgstr ""
 
-#: superset/views/base.py:594
+#: superset/views/base.py:595
 msgid "Delete all Really?"
 msgstr ""
 
@@ -3050,201 +3059,201 @@ msgstr ""
 msgid "Is favorite"
 msgstr ""
 
-#: superset/views/core.py:182
+#: superset/views/core.py:181
 msgid "The data source seems to have been deleted"
 msgstr ""
 
-#: superset/views/core.py:183
+#: superset/views/core.py:182
 msgid "The user seems to have been deleted"
 msgstr ""
 
-#: superset/views/core.py:300
+#: superset/views/core.py:299
 msgid "Access was requested"
 msgstr ""
 
-#: superset/views/core.py:354
+#: superset/views/core.py:353
 msgid "The access requests seem to have been deleted"
 msgstr ""
 
-#: superset/views/core.py:366
+#: superset/views/core.py:365
 #, python-format
 msgid ""
 "%(user)s was granted the role %(role)s that gives access to the "
 "%(datasource)s"
 msgstr ""
 
-#: superset/views/core.py:389
+#: superset/views/core.py:388
 #, python-format
 msgid "Role %(r)s was extended to provide the access to the datasource %(ds)s"
 msgstr ""
 
-#: superset/views/core.py:406
+#: superset/views/core.py:405
 msgid "You have no permission to approve this request"
 msgstr ""
 
-#: superset/views/core.py:618 superset/views/core.py:823
-#: superset/views/core.py:829 superset/views/core.py:1002
-#: superset/views/core.py:1020
+#: superset/views/core.py:617 superset/views/core.py:822
+#: superset/views/core.py:828 superset/views/core.py:1001
+#: superset/views/core.py:1019
 msgid "You don't have the rights to "
 msgstr ""
 
-#: superset/views/core.py:618
+#: superset/views/core.py:617
 msgid "download as csv"
 msgstr ""
 
-#: superset/views/core.py:700
+#: superset/views/core.py:699
 #, python-format
 msgid ""
 "Cannot import dashboard: %(db_error)s.\n"
 "Make sure to create the database before importing the dashboard."
 msgstr ""
 
-#: superset/views/core.py:711
+#: superset/views/core.py:710
 msgid "An unknown error occurred. Please contact your Superset administrator"
 msgstr ""
 
-#: superset/views/core.py:783
+#: superset/views/core.py:782
 msgid "[Missing Dataset]"
 msgstr ""
 
-#: superset/views/core.py:823 superset/views/core.py:1003
+#: superset/views/core.py:822 superset/views/core.py:1002
 msgid "alter this "
 msgstr ""
 
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:145
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:673
-#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:80
-#: superset/views/core.py:823 superset/views/core.py:829
+#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:81
+#: superset/views/core.py:822 superset/views/core.py:828
 msgid "chart"
 msgstr ""
 
-#: superset/views/core.py:829 superset/views/core.py:1021
+#: superset/views/core.py:828 superset/views/core.py:1020
 msgid "create a "
 msgstr ""
 
-#: superset/views/core.py:884
+#: superset/views/core.py:883
 #, python-format
 msgid "Explore - %(table)s"
 msgstr ""
 
 #: superset-frontend/src/SqlLab/components/ExploreCtasResultsButton/index.jsx:98
 #: superset-frontend/src/SqlLab/components/ExploreResultsButton/index.jsx:168
-#: superset/views/core.py:886
+#: superset/views/core.py:885
 msgid "Explore"
 msgstr ""
 
-#: superset/views/core.py:978
+#: superset/views/core.py:977
 msgid "Chart [{}] has been saved"
 msgstr ""
 
-#: superset/views/core.py:982
+#: superset/views/core.py:981
 msgid "Chart [{}] has been overwritten"
 msgstr ""
 
 #: superset-frontend/src/views/CRUD/dashboard/DashboardList.tsx:114
 #: superset-frontend/src/views/CRUD/dashboard/DashboardList.tsx:644
-#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:76
-#: superset/views/core.py:1004 superset/views/core.py:1022
+#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:77
+#: superset/views/core.py:1003 superset/views/core.py:1021
 msgid "dashboard"
 msgstr ""
 
-#: superset/views/core.py:1009
+#: superset/views/core.py:1008
 msgid "Chart [{}] was added to dashboard [{}]"
 msgstr ""
 
-#: superset/views/core.py:1031
+#: superset/views/core.py:1030
 msgid "Dashboard [{}] just got created and chart [{}] was added to it"
 msgstr ""
 
-#: superset/views/core.py:1276
+#: superset/views/core.py:1275
 msgid ""
 "This dashboard was changed recently. Please reload dashboard to get "
 "latest version."
 msgstr ""
 
-#: superset/views/core.py:1369
+#: superset/views/core.py:1368
 #, python-format
 msgid "Could not load database driver: %(driver_name)s"
 msgstr ""
 
-#: superset/views/core.py:1378
+#: superset/views/core.py:1377
 msgid ""
 "Invalid connection string, a valid string usually follows:\n"
 "'DRIVER://USER:PASSWORD@DB-HOST/DATABASE-NAME'"
 msgstr ""
 
-#: superset/views/core.py:1741
+#: superset/views/core.py:1740
 msgid ""
 "Malformed request. slice_id or table_name and db_name arguments are "
 "expected"
 msgstr ""
 
-#: superset/views/core.py:1751
+#: superset/views/core.py:1750
 #, python-format
 msgid "Chart %(id)s not found"
 msgstr ""
 
-#: superset/views/core.py:1764
+#: superset/views/core.py:1763
 #, python-format
 msgid "Table %(table)s wasn't found in the database %(db)s"
 msgstr ""
 
-#: superset/views/core.py:2001
+#: superset/views/core.py:2000
 #, python-format
 msgid "Can't find User '%(name)s', please ask your admin to create one."
 msgstr ""
 
-#: superset/views/core.py:2013
+#: superset/views/core.py:2012
 #, python-format
 msgid "Can't find DruidCluster with cluster_name = '%(name)s'"
 msgstr ""
 
-#: superset/views/core.py:2078
+#: superset/views/core.py:2077
 msgid ""
 "One or more required fields are missing in the request. Please try again,"
 " and if the problem persists conctact your administrator."
 msgstr ""
 
-#: superset/views/core.py:2088 superset/views/core.py:2158
+#: superset/views/core.py:2087 superset/views/core.py:2157
 msgid "The database was not found."
 msgstr ""
 
-#: superset/views/core.py:2178
+#: superset/views/core.py:2177
 msgid ""
 "You are not authorized to fetch samples from this table. If you think "
 "this is an error, please reach out to your administrator."
 msgstr ""
 
-#: superset/views/core.py:2269
+#: superset/views/core.py:2268
 msgid ""
 "Data could not be retrieved from the results backend. You need to re-run "
 "the original query."
 msgstr ""
 
-#: superset/views/core.py:2283
+#: superset/views/core.py:2282
 msgid ""
 "The query associated with these results could not be find. You need to "
 "re-run the original query."
 msgstr ""
 
-#: superset/views/core.py:2298
+#: superset/views/core.py:2297
 msgid ""
 "You are not authorized to see this query. If you think this is an error, "
 "please reach out to your administrator."
 msgstr ""
 
-#: superset/views/core.py:2316
+#: superset/views/core.py:2315
 msgid ""
 "Data could not be deserialized from the results backend. The storage "
 "format might have changed, rendering the old data stake. You need to re-"
 "run the original query."
 msgstr ""
 
-#: superset/views/core.py:2333
+#: superset/views/core.py:2332
 msgid "The provided `rows` argument is not a valid integer."
 msgstr ""
 
-#: superset/views/core.py:2445
+#: superset/views/core.py:2444
 #, python-format
 msgid ""
 "%(validator)s was unable to check your query.\n"
@@ -3252,7 +3261,7 @@ msgid ""
 "Exception: %(ex)s"
 msgstr ""
 
-#: superset/views/core.py:2776
+#: superset/views/core.py:2775
 #, python-format
 msgid "%(user)s's profile"
 msgstr ""
@@ -3317,7 +3326,7 @@ msgstr ""
 msgid "Changed On"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:282
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:290
 #: superset/views/schedules.py:240 superset/views/schedules.py:320
 msgid "Active"
 msgstr ""
@@ -4073,168 +4082,173 @@ msgstr ""
 msgid "Query was stopped."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:436
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:409
+#, python-format
+msgid "Failed at stopping query. %s"
+msgstr ""
+
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:434
 msgid ""
 "Unable to migrate table schema state to backend. Superset will retry "
 "later. Please contact your administrator if this problem persists."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:454
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:452
 msgid ""
 "Unable to migrate query state to backend. Superset will retry later. "
 "Please contact your administrator if this problem persists."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:500
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:498
 msgid ""
 "Unable to migrate query editor state to backend. Superset will retry "
 "later. Please contact your administrator if this problem persists."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:533
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:531
 msgid "Unable to add a new tab to the backend. Please contact your administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:550
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:548
 #: superset-frontend/src/SqlLab/reducers/sqlLab.js:74
 #, python-format
 msgid "Copy of %s"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:577
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:575
 msgid ""
 "An error occurred while setting the active tab. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:664
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:662
 msgid "An error occurred while fetching tab state"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:700
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:698
 msgid ""
 "An error occurred while hiding the left bar. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:722
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:720
 msgid "An error occurred while removing tab. Please contact your administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:746
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:744
 msgid "An error occurred while removing query. Please contact your administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:769
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:767
 msgid ""
 "An error occurred while setting the tab database ID. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:794
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:792
 msgid ""
 "An error occurred while setting the tab schema. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:827
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:825
 msgid ""
 "An error occurred while setting the tab autorun. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:852
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:943
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:850
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:941
 msgid ""
 "An error occurred while setting the tab title. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:874
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:872
 msgid "Your query was saved"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:878
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:876
 msgid "Your query could not be saved"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:890
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:888
 msgid "Your query was updated"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:894
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:892
 msgid "Your query could not be updated"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:910
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:908
 msgid ""
 "An error occurred while storing your query in the backend. To avoid "
 "losing your changes, please save your query using the \"Save Query\" "
 "button."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:969
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:967
 msgid ""
 "An error occurred while setting the tab template parameters. Please "
 "contact your administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1029
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1054
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1027
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1052
 msgid "An error occurred while fetching table metadata"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1095
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1093
 msgid ""
 "An error occurred while fetching table metadata. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1143
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1141
 msgid ""
 "An error occurred while expanding the table schema. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1167
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1165
 msgid ""
 "An error occurred while collapsing the table schema. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1190
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1188
 msgid ""
 "An error occurred while removing the table schema. Please contact your "
 "administrator."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1223
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1221
 msgid "Shared query"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1285
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1283
 msgid "The datasource couldn't be loaded"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1315
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1337
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1313
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1335
 msgid "An error occurred while creating the data source"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/actions/sqlLab.js:1358
+#: superset-frontend/src/SqlLab/actions/sqlLab.js:1356
 msgid "An error occurred while fetching function names."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/App/index.jsx:84
+#: superset-frontend/src/SqlLab/components/App/index.jsx:91
+#, python-format
 msgid ""
 "SQL Lab uses your browser's local storage to store queries and results.\n"
-" Currently, you are using ${currentUsage.toFixed(\n"
-"            2,\n"
-"          )} KB out of ${LOCALSTORAGE_MAX_USAGE_KB} KB. storage space.\n"
-" To keep SQL Lab from crashing, please delete some query tabs.\n"
-" You can re-access these queries by using the Save feature before you "
-"delete the tab. Note that you will need to close other SQL Lab windows "
-"before you do this."
+"Currently, you are using %(currentUsage)s KB out of %(maxStorage)d KB "
+"storage space.\n"
+"To keep SQL Lab from crashing, please delete some query tabs.\n"
+"You can re-access these queries by using the Save feature before you "
+"delete the tab.\n"
+"Note that you will need to close other SQL Lab windows before you do this."
 msgstr ""
 
 #: superset-frontend/src/SqlLab/components/EstimateQueryCostButton/index.jsx:86
@@ -4255,6 +4269,7 @@ msgstr ""
 
 #: superset-frontend/src/SqlLab/components/ExploreCtasResultsButton/index.jsx:80
 #: superset-frontend/src/components/TableLoader/index.tsx:48
+#: superset-frontend/src/utils/getClientErrorObject.ts:135
 msgid "An error occurred"
 msgstr ""
 
@@ -4358,6 +4373,7 @@ msgid "Filter by status"
 msgstr ""
 
 #: superset-frontend/src/SqlLab/components/QueryTable/index.jsx:63
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:54
 #: superset-frontend/src/views/CRUD/data/query/QueryList.tsx:142
 msgid "Success"
 msgstr ""
@@ -4396,14 +4412,14 @@ msgstr ""
 #: superset-frontend/src/dashboard/components/menu/MarkdownModeDropdown.tsx:35
 #: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/FilterSetUnit.tsx:75
 #: superset-frontend/src/explore/components/controls/TextAreaControl.jsx:121
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:308
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:316
 #: superset-frontend/src/views/CRUD/chart/ChartCard.tsx:128
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:390
 #: superset-frontend/src/views/CRUD/dashboard/DashboardCard.tsx:85
 #: superset-frontend/src/views/CRUD/dashboard/DashboardList.tsx:379
 #: superset-frontend/src/views/CRUD/data/database/DatabaseList.tsx:358
 #: superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx:389
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:218
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:219
 msgid "Edit"
 msgstr ""
 
@@ -4448,94 +4464,76 @@ msgstr ""
 #, python-format
 msgid ""
 "The number of results displayed is limited to %(rows)d by the "
-"configuration DISPLAY_MAX_ROWS. "
-msgstr ""
-
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:587
-msgid ""
-"Please add additional limits/filters or download to csv to see more rows "
-"up to "
+"configuration DISPLAY_MAX_ROWS. Please add additional limits/filters or "
+"download to csv to see more rows up to the %(limit)d limit."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:590
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:589
 #, python-format
-msgid "the %(limit)d limit."
-msgstr ""
-
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:592
-#, python-format
-msgid "The number of results displayed is limited to %(rows)d. "
-msgstr ""
-
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:596
 msgid ""
-"Please add additional limits/filters, download to csv, or contact an "
-"admin "
+"The number of results displayed is limited to %(rows)d. Please add "
+"additional limits/filters, download to csv, or contact an admin to see "
+"more rows up to the %(limit)d limit."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:599
-#, python-format
-msgid "to see more rows up to the %(limit)d limit."
-msgstr ""
-
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:611
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:603
 #, python-format
 msgid "The number of rows displayed is limited to %(rows)d by the query"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:623
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:615
 #, python-format
 msgid "The number of rows displayed is limited to %(rows)d by the limit dropdown."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:632
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:624
 #, python-format
 msgid ""
 "The number of rows displayed is limited to %(rows)d by the query and "
 "limit dropdown."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:643
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:650
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:664
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:635
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:642
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:656
 #, python-format
 msgid "%(rows)d rows returned"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:652
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:644
 #, python-format
 msgid "The number of rows displayed is limited to %s by the dropdown."
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:690
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:682
 msgid "Query was stopped"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:696
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:688
 msgid "Database error"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:723
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:715
 msgid "was created"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:730
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:722
 msgid "Query in a new tab"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:779
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:771
 msgid "The query returned no data"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:796
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:788
 msgid "Fetch data preview"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:807
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:799
 msgid "Refetch results"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:828
+#: superset-frontend/src/SqlLab/components/ResultSet/index.tsx:820
 msgid "Track job"
 msgstr ""
 
@@ -4570,7 +4568,7 @@ msgid "Overwrite & Explore"
 msgstr ""
 
 #: superset-frontend/src/SqlLab/components/SaveQuery/index.tsx:75
-#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:109
+#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:114
 msgid "Undefined"
 msgstr ""
 
@@ -4598,7 +4596,7 @@ msgstr ""
 #: superset-frontend/src/views/CRUD/annotation/AnnotationModal.tsx:273
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayerModal.tsx:226
 #: superset-frontend/src/views/CRUD/csstemplates/CssTemplateModal.tsx:220
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1000
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1006
 msgid "Save"
 msgstr ""
 
@@ -4620,21 +4618,21 @@ msgstr ""
 msgid "Update"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:147
+#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:152
 msgid "Label for your query"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:161
+#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:166
 msgid "Write a description for your query"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:206
+#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:211
 msgid "Schedule query"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:216
+#: superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx:221
 #: superset-frontend/src/components/ReportModal/index.tsx:357
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:229
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:237
 msgid "Schedule"
 msgstr ""
 
@@ -4676,58 +4674,63 @@ msgid "Results"
 msgstr ""
 
 #: superset-frontend/src/SqlLab/components/SouthPane/index.tsx:197
+#: superset-frontend/src/views/CRUD/data/common.ts:44
 #: superset-frontend/src/views/CRUD/data/query/QueryList.tsx:89
 msgid "Query history"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:299
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:309
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:307
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:317
 #: superset-frontend/src/chart/Chart.jsx:280
 msgid "Run query"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:319
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:327
 msgid "New tab"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:323
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:331
 #: superset-frontend/src/SqlLab/reducers/getInitialState.js:44
 msgid "Untitled query"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:331
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:339
 msgid "Stop query"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:510
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:517
 msgid "Schedule the query periodically"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:511
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:518
 msgid "You must run the query successfully first"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:516
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:523
 msgid "Autocomplete"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:594
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:601
 msgid "CREATE TABLE AS"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:607
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:614
 msgid "CREATE VIEW AS"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:641
+#: superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:648
 msgid "Estimate the cost before running a query"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx:151
-msgid "${isActive ? 'Collapse' : 'Expand'} table preview"
+#: superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx:152
+msgid "Collapse table preview"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx:229
+#: superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx:152
+msgid "Expand table preview"
+msgstr ""
+
+#: superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx:231
 msgid "Reset state"
 msgstr ""
 
@@ -4735,6 +4738,13 @@ msgstr ""
 msgid "Enter a new title for the tab"
 msgstr ""
 
+#: superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx:260
+msgid ""
+"-- Note: Unless you save your query, these tabs will NOT persist if you "
+"clear your cookies or change browsers.\n"
+"\n"
+msgstr ""
+
 #: superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx:264
 #, python-format
 msgid "Untitled Query %s"
@@ -4772,44 +4782,44 @@ msgstr ""
 msgid "New tab (Ctrl + t)"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:102
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:103
 msgid "Copy partition query to clipboard"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:119
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:120
 msgid "latest partition:"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:156
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:157
 msgid "Keys for table"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:165
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:166
 #, python-format
 msgid "View keys & indexes (%s)"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:182
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:183
 msgid "Original table column order"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:183
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:184
 msgid "Sort columns alphabetically"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:191
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:192
 msgid "Copy SELECT statement to the clipboard"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:203
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:204
 msgid "Show CREATE VIEW statement"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:204
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:205
 msgid "CREATE VIEW statement"
 msgstr ""
 
-#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:210
+#: superset-frontend/src/SqlLab/components/TableElement/index.tsx:211
 msgid "Remove table preview"
 msgstr ""
 
@@ -4817,6 +4827,10 @@ msgstr ""
 msgid "Edit template parameters"
 msgstr ""
 
+#: superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx:103
+msgid "Parameters "
+msgstr ""
+
 #: superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx:109
 msgid "Invalid JSON"
 msgstr ""
@@ -4862,6 +4876,20 @@ msgstr ""
 msgid "An error occurred while loading the SQL"
 msgstr ""
 
+#: superset-frontend/src/chart/chartReducer.ts:82
+msgid "Updating chart was stopped"
+msgstr ""
+
+#: superset-frontend/src/chart/chartReducer.ts:94
+#, python-format
+msgid "An error occurred while rendering the visualization: %s"
+msgstr ""
+
+#: superset-frontend/src/chart/chartReducer.ts:106
+#: superset-frontend/src/chart/chartReducer.ts:170
+msgid "Network error."
+msgstr ""
+
 #: superset-frontend/src/components/AlteredSliceTag/index.jsx:177
 msgid "Click to see difference"
 msgstr ""
@@ -5374,7 +5402,7 @@ msgstr ""
 
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:686
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:261
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1028
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1034
 msgid "Basic"
 msgstr ""
 
@@ -5418,7 +5446,8 @@ msgstr ""
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:765
 #: superset-frontend/src/dashboard/components/PropertiesModal/index.jsx:528
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:265
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1140
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:34
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1146
 msgid "Advanced"
 msgstr ""
 
@@ -5519,6 +5548,7 @@ msgid "Calculated columns"
 msgstr ""
 
 #: superset-frontend/src/components/Datasource/DatasourceEditor.jsx:1264
+#: superset-frontend/src/components/Menu/MenuRight.tsx:133
 msgid "Settings"
 msgstr ""
 
@@ -5595,7 +5625,15 @@ msgstr ""
 msgid "Chart Owner: %s"
 msgstr ""
 
-#: superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx:87
+#: superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx:83
+#, python-format
+msgid ""
+"%(message)s\n"
+"This may be triggered by: \n"
+"%(issues)s"
+msgstr ""
+
+#: superset-frontend/src/components/ErrorMessage/DatabaseErrorMessage.tsx:89
 #, python-format
 msgid "%s Error"
 msgstr ""
@@ -5624,6 +5662,7 @@ msgstr ""
 #: superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.jsx:247
 #: superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx:476
 #: superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/index.jsx:337
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:805
 msgid "Close"
 msgstr ""
 
@@ -5658,7 +5697,15 @@ msgid ""
 "after %s second."
 msgstr ""
 
-#: superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx:97
+#: superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx:94
+#, python-format
+msgid ""
+"%(subtitle)s\n"
+"This may be triggered by:\n"
+" %(issues)s"
+msgstr ""
+
+#: superset-frontend/src/components/ErrorMessage/TimeoutErrorMessage.tsx:99
 msgid "Timeout error"
 msgstr ""
 
@@ -5733,23 +5780,23 @@ msgid "Select or type a value"
 msgstr ""
 
 #: superset-frontend/src/components/Menu/MenuRight.tsx:32
-#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:111
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:124
 msgid "SQL query"
 msgstr ""
 
-#: superset-frontend/src/components/Menu/MenuRight.tsx:173
+#: superset-frontend/src/components/Menu/MenuRight.tsx:176
 msgid "About"
 msgstr ""
 
-#: superset-frontend/src/components/Menu/MenuRight.tsx:177
+#: superset-frontend/src/components/Menu/MenuRight.tsx:180
 msgid "Powered by Apache Superset"
 msgstr ""
 
-#: superset-frontend/src/components/Menu/MenuRight.tsx:211
+#: superset-frontend/src/components/Menu/MenuRight.tsx:214
 msgid "Documentation"
 msgstr ""
 
-#: superset-frontend/src/components/Menu/MenuRight.tsx:222
+#: superset-frontend/src/components/Menu/MenuRight.tsx:225
 msgid "Report a bug"
 msgstr ""
 
@@ -5758,6 +5805,10 @@ msgstr ""
 msgid "OK"
 msgstr ""
 
+#: superset-frontend/src/components/OmniContainer/getDashboards.ts:48
+msgid "An error occurred while fetching dashboards"
+msgstr ""
+
 #: superset-frontend/src/components/OmniContainer/index.tsx:102
 msgid "Search all dashboards"
 msgstr ""
@@ -5808,7 +5859,7 @@ msgid "Scheduled reports will be sent to your email as a PNG"
 msgstr ""
 
 #: superset-frontend/src/components/ReportModal/index.tsx:378
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1219
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1223
 msgid "Timezone"
 msgstr ""
 
@@ -5825,7 +5876,7 @@ msgid "Delete email report"
 msgstr ""
 
 #: superset-frontend/src/components/ReportModal/HeaderReportActionsDropdown/index.tsx:99
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:456
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:470
 #, python-format
 msgid "This action will permanently delete %s."
 msgstr ""
@@ -5889,18 +5940,27 @@ msgstr ""
 msgid "There was an issue favoriting this dashboard."
 msgstr ""
 
-#: superset-frontend/src/dashboard/actions/dashboardState.js:122
-msgid "This dashboard is now ${nowPublished}"
+#: superset-frontend/src/dashboard/actions/dashboardState.js:124
+msgid "This dashboard is now published"
+msgstr ""
+
+#: superset-frontend/src/dashboard/actions/dashboardState.js:125
+msgid "This dashboard is now hidden"
 msgstr ""
 
-#: superset-frontend/src/dashboard/actions/dashboardState.js:128
+#: superset-frontend/src/dashboard/actions/dashboardState.js:133
 msgid "You do not have permissions to edit this dashboard."
 msgstr ""
 
-#: superset-frontend/src/dashboard/actions/dashboardState.js:226
+#: superset-frontend/src/dashboard/actions/dashboardState.js:231
 msgid "This dashboard was saved successfully."
 msgstr ""
 
+#: superset-frontend/src/dashboard/actions/dashboardState.js:238
+#, python-format
+msgid "Sorry, there was an error saving this dashboard: %s"
+msgstr ""
+
 #: superset-frontend/src/dashboard/actions/sliceEntities.js:116
 #: superset-frontend/src/dashboard/reducers/sliceEntities.js:65
 msgid "Could not fetch all saved charts"
@@ -6051,6 +6111,11 @@ msgstr ""
 msgid "Filter your charts"
 msgstr ""
 
+#: superset-frontend/src/dashboard/components/SliceAdder.jsx:256
+#, python-format
+msgid "Sort by %s"
+msgstr ""
+
 #: superset-frontend/src/dashboard/components/SliceAdder.jsx:259
 #: superset-frontend/src/explore/controls.jsx:384
 msgid "Sort by"
@@ -6287,6 +6352,11 @@ msgstr ""
 msgid "Fetched %s"
 msgstr ""
 
+#: superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx:253
+#, python-format
+msgid "Query %s: %s"
+msgstr ""
+
 #: superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx:257
 msgid "Minimize chart"
 msgstr ""
@@ -6408,6 +6478,7 @@ msgstr ""
 #: superset-frontend/src/explore/components/ExploreActionButtons.tsx:103
 #: superset-frontend/src/views/CRUD/data/components/SyntaxHighlighterCopy/index.tsx:76
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:219
+#: superset-frontend/src/views/CRUD/hooks.ts:602
 msgid "Sorry, your browser does not support copying."
 msgstr ""
 
@@ -6417,17 +6488,24 @@ msgid "Sorry, something went wrong. Try again later."
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx:323
-msgid "All Filters (${filterValues.length})"
+#, python-format
+msgid "All Filters (%(filterCount)d)"
 msgstr ""
 
-#: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx:343
-msgid "Filter Sets (${filterSetFilterValues.length})"
+#: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx:345
+#, python-format
+msgid "Filter Sets (%(filterSetCount)d)"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CascadeFilters/CascadePopover/index.tsx:177
 msgid "Select parent filters"
 msgstr ""
 
+#: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx:145
+#, python-format
+msgid "Filters out of scope (%d)"
+msgstr ""
+
 #: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.tsx:162
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:486
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:503
@@ -6500,6 +6578,14 @@ msgstr ""
 msgid "New filter set"
 msgstr ""
 
+#: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/index.ts:28
+msgid "Please apply filter changes"
+msgstr ""
+
+#: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterSets/utils/index.ts:45
+msgid "Unknown value"
+msgstr ""
+
 #: superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx:132
 msgid "Clear all"
 msgstr ""
@@ -6525,6 +6611,10 @@ msgstr ""
 msgid "Filters configuration and scoping"
 msgstr ""
 
+#: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/utils.ts:76
+msgid "Cannot create cyclic hierarchy"
+msgstr ""
+
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/ColumnSelect.tsx:130
 msgid "Column select"
 msgstr ""
@@ -6551,17 +6641,19 @@ msgid "Scoping"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:292
+#: superset-frontend/src/filters/components/Select/index.ts:28
 msgid "Select filter"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:292
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1182
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1198
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1186
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1202
 #: superset-frontend/src/views/CRUD/alert/ExecutionLog.tsx:140
 msgid "Value"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:293
+#: superset-frontend/src/filters/components/Range/index.ts:28
 msgid "Range filter"
 msgstr ""
 
@@ -6570,25 +6662,32 @@ msgid "Numerical range"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:294
+#: superset-frontend/src/filters/components/Time/index.ts:27
 msgid "Time filter"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:294
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:1082
+#: superset-frontend/src/explore/constants.ts:113
 #: superset-frontend/src/views/CRUD/data/query/QueryList.tsx:382
 msgid "Time range"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:295
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:1109
+#: superset-frontend/src/explore/constants.ts:114
+#: superset-frontend/src/filters/components/TimeColumn/index.ts:28
 msgid "Time column"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:296
+#: superset-frontend/src/explore/constants.ts:115
+#: superset-frontend/src/filters/components/TimeGrain/index.ts:28
 msgid "Time grain"
 msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:297
+#: superset-frontend/src/filters/components/GroupBy/index.ts:28
 msgid "Group By"
 msgstr ""
 
@@ -6688,6 +6787,7 @@ msgstr ""
 
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:1165
 #: superset-frontend/src/explore/components/controls/FilterBoxItemControl/index.jsx:205
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:66
 msgid "Sort ascending"
 msgstr ""
 
@@ -6718,10 +6818,6 @@ msgstr ""
 msgid "Restore Filter"
 msgstr ""
 
-#: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx:109
-msgid "${mainControlItem.config?.label}"
-msgstr ""
-
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx:115
 msgid "Column is required"
 msgstr ""
@@ -6730,6 +6826,18 @@ msgstr ""
 msgid "Populate \"Default value\" to enable this control"
 msgstr ""
 
+#: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/state.ts:89
+msgid "Default value set automatically when \"Default to first item\" is checked"
+msgstr ""
+
+#: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/state.ts:93
+msgid "Default value must be set when \"Required\" is checked"
+msgstr ""
+
+#: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/state.ts:95
+msgid "Default value must be set when \"Filter has default value\" is checked"
+msgstr ""
+
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope.tsx:123
 msgid "Apply to all panels"
 msgstr ""
@@ -6746,6 +6854,14 @@ msgstr ""
 msgid "All panels with this column will be affected by this filter"
 msgstr ""
 
+#: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/state.ts:49
+msgid "All panels"
+msgstr ""
+
+#: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/utils.ts:56
+msgid "This chart might be incompatible with the filter (datasets don't match)"
+msgstr ""
+
 #: superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/Footer/CancelConfirmationAlert.tsx:56
 msgid "Keep editing"
 msgstr ""
@@ -6766,6 +6882,14 @@ msgstr ""
 msgid "Error loading chart datasources. Filters may not work correctly."
 msgstr ""
 
+#: superset-frontend/src/dashboard/util/backgroundStyleOptions.ts:25
+msgid "Transparent"
+msgstr ""
+
+#: superset-frontend/src/dashboard/util/backgroundStyleOptions.ts:30
+msgid "White"
+msgstr ""
+
 #: superset-frontend/src/dashboard/util/getFilterFieldNodesTree.js:44
 msgid "All filters"
 msgstr ""
@@ -6775,11 +6899,31 @@ msgstr ""
 msgid "All charts"
 msgstr ""
 
+#: superset-frontend/src/dashboard/util/headerStyleOptions.ts:25
+msgid "Small"
+msgstr ""
+
+#: superset-frontend/src/dashboard/util/headerStyleOptions.ts:30
+msgid "Medium"
+msgstr ""
+
+#: superset-frontend/src/dashboard/util/headerStyleOptions.ts:35
+msgid "Large"
+msgstr ""
+
 #: superset-frontend/src/dashboard/util/newComponentFactory.js:56
 #: superset-frontend/src/dashboard/util/newComponentFactory.js:57
 msgid "Tab title"
 msgstr ""
 
+#: superset-frontend/src/explore/constants.ts:116
+msgid "Origin"
+msgstr ""
+
+#: superset-frontend/src/explore/constants.ts:117
+msgid "Time granularity"
+msgstr ""
+
 #: superset-frontend/src/explore/controls.jsx:113
 msgid "A reference to the [Time] configuration, taking granularity into account"
 msgstr ""
@@ -6863,6 +7007,7 @@ msgid ""
 "in the Superset source code."
 msgstr ""
 
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:35
 #: superset-frontend/src/explore/controls.jsx:342
 msgid "No filter"
 msgstr ""
@@ -6966,6 +7111,10 @@ msgstr ""
 msgid "The color scheme for rendering chart"
 msgstr ""
 
+#: superset-frontend/src/explore/actions/exploreActions.ts:95
+msgid "An error occurred while starring this chart"
+msgstr ""
+
 #: superset-frontend/src/explore/components/ControlHeader.jsx:66
 #: superset-frontend/src/views/CRUD/annotation/AnnotationModal.tsx:327
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayerModal.tsx:258
@@ -7077,7 +7226,7 @@ msgid "rows retrieved"
 msgstr ""
 
 #: superset-frontend/src/explore/components/DataTablesPane/index.tsx:146
-#: superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx:256
+#: superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx:255
 #: superset-frontend/src/filters/components/TimeGrain/TimeGrainFilterPlugin.tsx:91
 msgid "No data"
 msgstr ""
@@ -7424,6 +7573,12 @@ msgstr ""
 #: superset-frontend/src/explore/components/controls/ConditionalFormattingControl/FormattingPopoverContent.tsx:97
 #: superset-frontend/src/explore/components/controls/ConditionalFormattingControl/FormattingPopoverContent.tsx:104
 #: superset-frontend/src/explore/components/controls/FilterBoxItemControl/index.jsx:252
+#: superset-frontend/src/filters/components/GroupBy/controlPanel.ts:73
+#: superset-frontend/src/filters/components/Range/controlPanel.ts:54
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:91
+#: superset-frontend/src/filters/components/Time/controlPanel.ts:53
+#: superset-frontend/src/filters/components/TimeColumn/controlPanel.ts:33
+#: superset-frontend/src/filters/components/TimeGrain/controlPanel.ts:33
 msgid "Required"
 msgstr ""
 
@@ -7583,6 +7738,116 @@ msgstr ""
 msgid "Get the specify date for the holiday"
 msgstr ""
 
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:31
+msgid "Last"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:32
+#: superset-frontend/src/views/CRUD/data/query/QueryPreviewModal.tsx:125
+#: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryPreviewModal.tsx:105
+msgid "Previous"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:33
+msgid "Custom"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:39
+msgid "last day"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:40
+msgid "last week"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:41
+msgid "last month"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:42
+msgid "last quarter"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:43
+msgid "last year"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:50
+msgid "previous calendar week"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:53
+msgid "previous calendar month"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:56
+msgid "previous calendar year"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:63
+#, python-format
+msgid "Seconds %s"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:64
+#, python-format
+msgid "Minutes %s"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:65
+#, python-format
+msgid "Hours %s"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:66
+#, python-format
+msgid "Days %s"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:67
+#, python-format
+msgid "Weeks %s"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:68
+#, python-format
+msgid "Months %s"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:69
+#, python-format
+msgid "Quarters %s"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:70
+#, python-format
+msgid "Years %s"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:76
+msgid "Before"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:84
+msgid "After"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:90
+msgid "Specific Date/Time"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:91
+msgid "Relative Date/Time"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:92
+msgid "Now"
+msgstr ""
+
+#: superset-frontend/src/explore/components/controls/DateFilterControl/utils/constants.ts:93
+msgid "Midnight"
+msgstr ""
+
 #: superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx:226
 msgid "Saved expressions"
 msgstr ""
@@ -7676,6 +7941,7 @@ msgid "Metric to sort the results by"
 msgstr ""
 
 #: superset-frontend/src/explore/components/controls/FilterBoxItemControl/index.jsx:206
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:68
 msgid "Check for sorting ascending"
 msgstr ""
 
@@ -7688,10 +7954,12 @@ msgid "Multiple selections allowed, otherwise filter is limited to a single valu
 msgstr ""
 
 #: superset-frontend/src/explore/components/controls/FilterBoxItemControl/index.jsx:232
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:137
 msgid "Search all filter options"
 msgstr ""
 
 #: superset-frontend/src/explore/components/controls/FilterBoxItemControl/index.jsx:233
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:139
 msgid ""
 "By default, each filter loads at most 1000 choices at the initial page "
 "load. Check this box if you have more than 1000 filter values and want to"
@@ -7824,12 +8092,18 @@ msgstr ""
 msgid "Custom SQL ad-hoc metrics are not enabled for this dataset"
 msgstr ""
 
+#: superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx:89
+#, python-format
+msgid "Error while fetching data: %s"
+msgstr ""
+
 #: superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/index.jsx:48
 #: superset-frontend/src/explore/controlPanels/TimeTable.js:38
 msgid "Time series columns"
 msgstr ""
 
 #: superset-frontend/src/explore/components/controls/VizTypeControl/VizTypeGallery.tsx:120
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:687
 msgid "Other"
 msgstr ""
 
@@ -7866,8 +8140,8 @@ msgid "No description available."
 msgstr ""
 
 #: superset-frontend/src/explore/components/controls/VizTypeControl/VizTypeGallery.tsx:759
-#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:179
-#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:177
+#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:180
+#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:178
 msgid "Examples"
 msgstr ""
 
@@ -7910,6 +8184,10 @@ msgstr ""
 
 #: superset-frontend/src/explore/controlPanels/TimeTable.js:26
 #: superset-frontend/src/explore/controlPanels/sections.tsx:113
+#: superset-frontend/src/filters/components/GroupBy/controlPanel.ts:34
+#: superset-frontend/src/filters/components/Range/controlPanel.ts:30
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:41
+#: superset-frontend/src/filters/components/Time/controlPanel.ts:29
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:178
 msgid "Query"
 msgstr ""
@@ -8085,21 +8363,107 @@ msgid "No columns"
 msgstr ""
 
 #: superset-frontend/src/filters/components/GroupBy/GroupByFilterPlugin.tsx:83
-#: superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx:257
+#: superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx:256
 #: superset-frontend/src/filters/components/TimeColumn/TimeColumnFilterPlugin.tsx:82
 #: superset-frontend/src/filters/components/TimeGrain/TimeGrainFilterPlugin.tsx:92
 #, python-format
 msgid "%s option"
 msgstr ""
 
+#: superset-frontend/src/filters/components/GroupBy/controlPanel.ts:51
+#: superset-frontend/src/filters/components/Range/controlPanel.ts:46
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:57
+#: superset-frontend/src/filters/components/Time/controlPanel.ts:45
+#: superset-frontend/src/filters/components/TimeColumn/controlPanel.ts:25
+#: superset-frontend/src/filters/components/TimeGrain/controlPanel.ts:25
+msgid "UI Configuration"
+msgstr ""
+
+#: superset-frontend/src/filters/components/GroupBy/controlPanel.ts:59
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:77
+msgid "Multiple select"
+msgstr ""
+
+#: superset-frontend/src/filters/components/GroupBy/controlPanel.ts:64
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:82
+msgid "Allow selecting multiple values"
+msgstr ""
+
+#: superset-frontend/src/filters/components/GroupBy/controlPanel.ts:76
+#: superset-frontend/src/filters/components/Range/controlPanel.ts:57
+#: superset-frontend/src/filters/components/Time/controlPanel.ts:56
+#: superset-frontend/src/filters/components/TimeColumn/controlPanel.ts:36
+#: superset-frontend/src/filters/components/TimeGrain/controlPanel.ts:36
+msgid "User must select a value for this filter."
+msgstr ""
+
+#: superset-frontend/src/filters/components/GroupBy/index.ts:29
+msgid "Group By filter plugin"
+msgstr ""
+
+#: superset-frontend/src/filters/components/GroupBy/index.ts:31
+#: superset-frontend/src/filters/components/Range/index.ts:31
+#: superset-frontend/src/filters/components/Select/index.ts:32
+#: superset-frontend/src/filters/components/Time/index.ts:31
+#: superset-frontend/src/filters/components/TimeColumn/index.ts:31
+#: superset-frontend/src/filters/components/TimeGrain/index.ts:31
+msgid "Experimental"
+msgstr ""
+
 #: superset-frontend/src/filters/components/Range/RangeFilterPlugin.tsx:188
 msgid "Chosen non-numeric column"
 msgstr ""
 
+#: superset-frontend/src/filters/components/Range/index.ts:29
+msgid "Range filter plugin using AntD"
+msgstr ""
+
+#: superset-frontend/src/filters/components/Select/SelectFilterPlugin.tsx:122
+msgid " (excluded)"
+msgstr ""
+
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:94
+msgid "User must select a value before applying the filter"
+msgstr ""
+
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:105
+msgid "Default to first item"
+msgstr ""
+
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:111
+msgid ""
+"Select first item by default (when using this option, default value can’t"
+" be set)"
+msgstr ""
+
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:124
+msgid "Inverse selection"
+msgstr ""
+
+#: superset-frontend/src/filters/components/Select/controlPanel.ts:126
+msgid "Exclude selected values"
+msgstr ""
+
+#: superset-frontend/src/filters/components/Select/index.ts:29
+msgid "Select filter plugin using AntD"
+msgstr ""
+
+#: superset-frontend/src/filters/components/Time/index.ts:28
+msgid "Custom time filter plugin"
+msgstr ""
+
 #: superset-frontend/src/filters/components/TimeColumn/TimeColumnFilterPlugin.tsx:81
 msgid "No time columns"
 msgstr ""
 
+#: superset-frontend/src/filters/components/TimeColumn/index.ts:29
+msgid "Time column filter plugin"
+msgstr ""
+
+#: superset-frontend/src/filters/components/TimeGrain/index.ts:29
+msgid "Time grain filter plugin"
+msgstr ""
+
 #: superset-frontend/src/profile/components/App.tsx:52
 msgid "Favorites"
 msgstr ""
@@ -8170,7 +8534,7 @@ msgid "Your report could not be deleted"
 msgstr ""
 
 #: superset-frontend/src/reports/actions/reports.js:176
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:154
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:162
 #: superset-frontend/src/views/CRUD/annotation/AnnotationList.tsx:103
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:91
 #: superset-frontend/src/views/CRUD/csstemplates/CssTemplatesList.tsx:93
@@ -8179,11 +8543,78 @@ msgstr ""
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:232
 #: superset-frontend/src/views/CRUD/utils.tsx:246
 #: superset-frontend/src/views/CRUD/utils.tsx:285
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:171
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:172
 #, python-format
 msgid "Deleted: %s"
 msgstr ""
 
+#: superset-frontend/src/utils/downloadAsImage.ts:63
+msgid "Image download failed, please refresh and try again."
+msgstr ""
+
+#: superset-frontend/src/utils/getClientErrorObject.ts:55
+msgid "Unexpected error: "
+msgstr ""
+
+#: superset-frontend/src/utils/getClientErrorObject.ts:56
+msgid "(no description, click to see stack trace)"
+msgstr ""
+
+#: superset-frontend/src/utils/getClientErrorObject.ts:112
+msgid "Issue 1000 - The dataset is too large to query."
+msgstr ""
+
+#: superset-frontend/src/utils/getClientErrorObject.ts:118
+msgid "Issue 1001 - The database is under an unusual load."
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/hooks.ts:103
+#, python-format
+msgid "An error occurred while fetching %s info: %s"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/hooks.ts:171
+#: superset-frontend/src/views/CRUD/hooks.ts:258
+#: superset-frontend/src/views/CRUD/hooks.ts:344
+#, python-format
+msgid "An error occurred while fetching %ss: %s"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/hooks.ts:301
+#, python-format
+msgid "An error occurred while creating %ss: %s"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/hooks.ts:438
+#: superset-frontend/src/views/CRUD/hooks.ts:451
+#, python-format
+msgid "An error occurred while importing %s: %s"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/hooks.ts:522
+#, python-format
+msgid "There was an error fetching the favorite status: %s"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/hooks.ts:543
+#, python-format
+msgid "There was an error saving the favorite status: %s"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:216
+#: superset-frontend/src/views/CRUD/hooks.ts:599
+msgid "Link Copied!"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/hooks.ts:623
+msgid "Connection looks good!"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/hooks.ts:626
+#, python-format
+msgid "ERROR: %s"
+msgstr ""
+
 #: superset-frontend/src/views/CRUD/utils.tsx:181
 msgid "There was an error fetching your recent activity:"
 msgstr ""
@@ -8193,7 +8624,7 @@ msgstr ""
 msgid "There was an issue deleting: %s"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:157
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:165
 #: superset-frontend/src/views/CRUD/annotation/AnnotationList.tsx:107
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:94
 #: superset-frontend/src/views/CRUD/csstemplates/CssTemplatesList.tsx:97
@@ -8201,50 +8632,66 @@ msgstr ""
 #: superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx:550
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:235
 #: superset-frontend/src/views/CRUD/utils.tsx:289
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:174
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:175
 #, python-format
 msgid "There was an issue deleting %s: %s"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:82
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:55
+msgid "Working"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:56
+msgid "Error"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:57
+msgid "Not triggered"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:58
+msgid "On Grace"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:90
 #: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:484
 msgid "report"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:82
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:90
 msgid "alert"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:83
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:109
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:118
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:91
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:117
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:126
 #: superset-frontend/src/views/CRUD/alert/ExecutionLog.tsx:72
 msgid "reports"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:83
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:91
 msgid "alerts"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:172
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:180
 #, python-format
 msgid "There was an issue deleting the selected %s: %s"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:220
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:228
 msgid "Last run"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:252
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1344
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:260
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1348
 msgid "Notification method"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:299
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:307
 msgid "Execution log"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:327
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:335
 #: superset-frontend/src/views/CRUD/annotation/AnnotationList.tsx:189
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:249
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:406
@@ -8257,7 +8704,7 @@ msgstr ""
 msgid "Actions"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:354
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:362
 #: superset-frontend/src/views/CRUD/annotation/AnnotationList.tsx:212
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:277
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:571
@@ -8268,12 +8715,12 @@ msgstr ""
 msgid "Bulk select"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:368
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:376
 #, python-format
 msgid "No %s yet"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:375
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:383
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:212
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:286
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:319
@@ -8286,51 +8733,31 @@ msgstr ""
 msgid "Created by"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:384
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:392
 #, python-format
 msgid "An error occurred while fetching created by values: %s"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:391
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:399
 #: superset-frontend/src/views/CRUD/dashboard/DashboardList.tsx:280
 #: superset-frontend/src/views/CRUD/dashboard/DashboardList.tsx:470
 msgid "Status"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:397
-msgid "${AlertState.success}"
-msgstr ""
-
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:398
-msgid "${AlertState.working}"
-msgstr ""
-
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:399
-msgid "${AlertState.error}"
-msgstr ""
-
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:400
-msgid "${AlertState.noop}"
-msgstr ""
-
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:401
-msgid "${AlertState.grace}"
-msgstr ""
-
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:418
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:432
 msgid "Alerts & reports"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:429
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:443
 msgid "Reports"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:467
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:481
 #, python-format
 msgid "Delete %s?"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:471
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:485
 #: superset-frontend/src/views/CRUD/annotation/AnnotationList.tsx:300
 #: superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.tsx:365
 #: superset-frontend/src/views/CRUD/chart/ChartCard.tsx:77
@@ -8345,7 +8772,7 @@ msgstr ""
 msgid "Please confirm"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:472
+#: superset-frontend/src/views/CRUD/alert/AlertList.tsx:486
 #, python-format
 msgid "Are you sure you want to delete the selected %s?"
 msgstr ""
@@ -8399,79 +8826,87 @@ msgid "Add delivery method"
 msgstr ""
 
 #: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1051
-msgid "Edit ${isReport ? 'Report' : 'Alert'}"
+msgid "Edit Report"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1052
-msgid "Add ${isReport ? 'Report' : 'Alert'}"
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1053
+msgid "Edit Alert"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1060
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1068
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1055
+msgid "Add Report"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1056
+msgid "Add Alert"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1064
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1072
 msgid "Report name"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1060
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1068
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1064
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1072
 msgid "Alert name"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1119
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1123
 msgid "Alert condition"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1164
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1168
 msgid "Trigger Alert If..."
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1169
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1173
 msgid "Condition"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1210
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1214
 msgid "Report schedule"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1211
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1215
 msgid "Alert condition schedule"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1230
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1234
 msgid "Schedule settings"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1234
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1239
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1240
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1238
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1243
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1244
 msgid "Log retention"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1254
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1258
 msgid "Working timeout"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1263
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1278
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1267
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1282
 msgid "Time in seconds"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1271
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1275
 msgid "Grace period"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1288
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1292
 msgid "Message content"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1335
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1339
 msgid "Send as PNG"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1336
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1340
 msgid "Send as CSV"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1338
+#: superset-frontend/src/views/CRUD/alert/AlertReportModal.tsx:1342
 msgid "Send as text"
 msgstr ""
 
@@ -8504,10 +8939,6 @@ msgstr ""
 msgid "Error message"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/ExecutionLog.tsx:156
-msgid "${alertResource?.type}"
-msgstr ""
-
 #: superset-frontend/src/views/CRUD/alert/components/AlertReportCronScheduler.tsx:75
 msgid "CRON expression"
 msgstr ""
@@ -8557,14 +8988,6 @@ msgstr ""
 msgid "Recipients are separated by \",\" or \";\""
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/alert/components/RecipientIcon.tsx:38
-msgid "${RecipientIconName.email}"
-msgstr ""
-
-#: superset-frontend/src/views/CRUD/alert/components/RecipientIcon.tsx:42
-msgid "${RecipientIconName.slack}"
-msgstr ""
-
 #: superset-frontend/src/views/CRUD/annotation/AnnotationList.tsx:64
 #: superset-frontend/src/views/CRUD/annotation/AnnotationModal.tsx:106
 msgid "annotation"
@@ -8722,6 +9145,7 @@ msgstr ""
 
 #: superset-frontend/src/views/CRUD/chart/ChartCard.tsx:153
 #: superset-frontend/src/views/CRUD/dashboard/DashboardCard.tsx:162
+#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:130
 #, python-format
 msgid "Modified %s"
 msgstr ""
@@ -8755,8 +9179,8 @@ msgstr ""
 
 #: superset-frontend/src/views/CRUD/chart/ChartList.tsx:422
 #: superset-frontend/src/views/CRUD/dashboard/DashboardList.tsx:411
-#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:161
-#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:158
+#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:162
+#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:159
 msgid "Favorite"
 msgstr ""
 
@@ -8904,7 +9328,7 @@ msgid ""
 msgstr ""
 
 #: superset-frontend/src/views/CRUD/dashboard/DashboardList.tsx:195
-#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:126
+#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:127
 #, python-format
 msgid "An error occurred while fetching dashboards: %s"
 msgstr ""
@@ -8927,6 +9351,12 @@ msgstr ""
 msgid "Are you sure you want to delete the selected dashboards?"
 msgstr ""
 
+#: superset-frontend/src/views/CRUD/data/common.ts:38
+#: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:108
+#: superset-frontend/src/views/CRUD/welcome/Welcome.tsx:318
+msgid "Saved queries"
+msgstr ""
+
 #: superset-frontend/src/views/CRUD/data/components/SyntaxHighlighterCopy/index.tsx:71
 msgid "SQL Copied!"
 msgstr ""
@@ -8948,7 +9378,7 @@ msgstr ""
 
 #: superset-frontend/src/views/CRUD/data/database/DatabaseList.tsx:89
 #: superset-frontend/src/views/CRUD/data/database/DatabaseList.tsx:471
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:460
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:464
 msgid "database"
 msgstr ""
 
@@ -9220,44 +9650,158 @@ msgstr ""
 msgid "Test connection"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:481
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:93
+msgid "Missing Required Fields"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:94
+msgid "Please complete all required fields."
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:97
+msgid "Could not verify the host"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:98
+msgid "The host is invalid. Please verify that this field is entered correctly."
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:103
+msgid "Port is closed"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:104
+msgid "Please verify that port is open to connect."
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:107
+msgid "Invalid Port Number"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:108
+msgid "The port must be a whole number less than or equal to 65535."
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:113
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:117
+msgid "Invalid account information"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:114
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:118
+msgid "Either the username or password is incorrect."
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:121
+msgid "Incorrect Fields"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:122
+msgid "Please make sure all fields are filled out correctly"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:125
+msgid "URL could not be identified"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:126
+msgid ""
+"The URL could not be identified. Please check for typos and make sure "
+"that \"Type of google sheet allowed\" selection matches the input"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:485
 msgid "Please enter a SQLAlchemy URI to test"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:619
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:623
 #, python-format
 msgid "Sorry there was an error fetching database information: %s"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:693
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:668
+msgid "Or choose from a list of other databases we support:"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:670
+msgid "Supported databases"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:674
+msgid "Choose a database..."
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:697
 msgid "Want to add a new database?"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1000
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1187
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:702
+msgid "Any databases that allow connections via SQL Alchemy URIs can be added. "
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:716
+msgid ""
+"Any databases that allow connections via SQL Alchemy URIs can be added. "
+"Learn about how to connect a database driver "
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:724
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1136
+msgid "here"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:770
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:786
+msgid "Back"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:777
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1006
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1193
 msgid "Connect"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1005
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:794
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:808
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1193
+msgid "Finish"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:910
+msgid "Database Creation Error"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1011
 msgid "Edit database"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1005
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1191
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1011
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1197
 msgid "Connect a database"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1065
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1068
+msgid "Connect this database using the dynamic form instead"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1071
 msgid ""
 "Click this link to switch to an alternate form that exposes only the "
 "required fields needed to connect this database."
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1187
-msgid "Finish"
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1127
+msgid ""
+"Select databases require additional fields to be completed in the "
+"Advanced tab to successfully connect the database. Learn what "
+"requirements your databases has "
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1301
+msgid "Connect this database with a SQLAlchemy URI string instead"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1298
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx:1306
 msgid ""
 "Click this link to switch to an alternate form that allows you to input "
 "the SQLAlchemy URL for this database manually."
@@ -9269,14 +9813,46 @@ msgid ""
 "mydatabase.com)."
 msgstr ""
 
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:45
+msgid "e.g. 127.0.0.1"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:47
+msgid "Host"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:67
+msgid "e.g. 5432"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:88
+msgid "e.g. world_population"
+msgstr ""
+
 #: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:91
 msgid "Copy the name of the  database you are trying to connect to."
 msgstr ""
 
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:108
+msgid "e.g. Analytics"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:129
+msgid "e.g. ********"
+msgstr ""
+
 #: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:151
 msgid "Pick a nickname for this database to display as in Superset."
 msgstr ""
 
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:172
+msgid "e.g. param1=value1&param2=value2"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:173
+msgid "Additional Parameters"
+msgstr ""
+
 #: superset-frontend/src/views/CRUD/data/database/DatabaseModal/DatabaseConnectionForm/CommonParameters.tsx:175
 msgid "Add additional custom parameters"
 msgstr ""
@@ -9433,6 +10009,22 @@ msgstr ""
 msgid "%s Selected (%s Physical, %s Virtual)"
 msgstr ""
 
+#: superset-frontend/src/views/CRUD/data/dataset/constants.ts:23
+msgid ""
+"The passwords for the databases below are needed in order to import them "
+"together with the datasets. Please note that the \"Secure Extra\" and "
+"\"Certificate\" sections of the database configuration are not present in"
+" export files, and should be added manually after the import if they are "
+"needed."
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/data/dataset/constants.ts:30
+msgid ""
+"You are importing one or more datasets that already exist. Overwriting "
+"might cause you to lose some of your work. Are you sure you want to "
+"overwrite?"
+msgstr ""
+
 #: superset-frontend/src/views/CRUD/data/query/QueryList.tsx:109
 #, python-format
 msgid "There was an issue previewing the selected query. %s"
@@ -9481,11 +10073,6 @@ msgstr ""
 msgid "Query preview"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/query/QueryPreviewModal.tsx:125
-#: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryPreviewModal.tsx:105
-msgid "Previous"
-msgstr ""
-
 #: superset-frontend/src/views/CRUD/data/query/QueryPreviewModal.tsx:133
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryPreviewModal.tsx:113
 msgid "Next"
@@ -9520,11 +10107,6 @@ msgid ""
 "want to overwrite?"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:108
-#: superset-frontend/src/views/CRUD/welcome/Welcome.tsx:318
-msgid "Saved queries"
-msgstr ""
-
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:152
 #, python-format
 msgid "There was an issue previewing the selected query %s"
@@ -9534,10 +10116,6 @@ msgstr ""
 msgid "Import queries"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:216
-msgid "Link Copied!"
-msgstr ""
-
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:262
 #, python-format
 msgid "There was an issue deleting the selected queries: %s"
@@ -9560,12 +10138,12 @@ msgid "Delete query"
 msgstr ""
 
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:475
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:248
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:249
 msgid "This action will permanently delete the saved query."
 msgstr ""
 
 #: superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.tsx:485
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:260
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:261
 msgid "Delete Query?"
 msgstr ""
 
@@ -9581,49 +10159,82 @@ msgstr ""
 msgid "Query name"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:93
+#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:94
 msgid "[Untitled]"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:94
+#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:95
 msgid "Unknown"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:179
+#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:124
+#, python-format
+msgid "Viewed %s"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:161
 msgid "Edited"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:187
+#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:169
 msgid "Created"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:198
+#: superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx:180
 msgid "Viewed"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:169
-#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:166
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:277
+#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:170
+#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:167
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:278
 msgid "Mine"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:70
+#: superset-frontend/src/views/CRUD/welcome/ChartTable.tsx:217
+#: superset-frontend/src/views/CRUD/welcome/DashboardTable.tsx:219
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:296
+msgid "View All »"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:26
+msgid "charts"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:27
+msgid "dashboards"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:28
+msgid "recents"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:29
+msgid "saved queries"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:74
+#, python-format
+msgid "No %(tableName)s yet"
+msgstr ""
+
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:81
 msgid "Recently viewed charts, dashboards, and saved queries will appear here"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:75
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:86
 msgid "Recently created charts, dashboards, and saved queries will appear here"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:80
-msgid "Example ${tableName.toLowerCase()} will appear here"
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:92
+#, python-format
+msgid "Example %(tableName)s will appear here"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:83
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:96
 msgid "Recently edited charts, dashboards, and saved queries will appear here"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:112
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:125
 msgid ""
 "${tableName\n"
 "                      .split('')\n"
@@ -9632,27 +10243,24 @@ msgid ""
 "                    "
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:131
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:144
 msgid "You don't have any favorites yet!"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:143
-msgid "SQL Lab queries"
-msgstr ""
-
-#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:144
-msgid "${tableName}"
+#: superset-frontend/src/views/CRUD/welcome/EmptyState.tsx:157
+#, python-format
+msgid "See all %(tableName)s"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:128
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:129
 msgid "query"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:228
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:229
 msgid "Share"
 msgstr ""
 
-#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:317
+#: superset-frontend/src/views/CRUD/welcome/SavedQueries.tsx:318
 #, python-format
 msgid "Ran %s"
 msgstr ""