diff --git a/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.component.tsx index b608dbe0993..70dd8677129 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.component.tsx @@ -52,7 +52,6 @@ import { SsoClientConfig, SsoServiceType, } from '../../generated/entity/teams/user'; -import jsonData from '../../jsons/en'; import { getJWTOption, getJWTTokenExpiryOptions } from '../../utils/BotsUtils'; import SVGIcons, { Icons } from '../../utils/SvgUtils'; import { showErrorToast } from '../../utils/ToastUtils'; @@ -724,7 +723,9 @@ const CreateUser = ({ pattern: validEmailRegEx, required: true, type: 'email', - message: jsonData['form-error-messages']['invalid-email'], + message: t('server.field-text-is-invalid', { + fieldText: t('label.email'), + }), }, { type: 'email', @@ -734,7 +735,9 @@ const CreateUser = ({ const isEmailAlreadyExists = await checkEmailInUse(value); if (isEmailAlreadyExists) { return Promise.reject( - jsonData['form-error-messages']['email-is-in-use'] + t('server.entity-already-exists', { + entity: value, + }) ); } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/EntityLineage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/EntityLineage.component.tsx index 5158942670c..5ee05d35430 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/EntityLineage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/EntityLineage.component.tsx @@ -15,7 +15,6 @@ import { Modal, Space } from 'antd'; import AppState from 'AppState'; import { AxiosError } from 'axios'; import { mockDatasetData } from 'constants/mockTourData.constants'; -import jsonData from 'jsons/en'; import { debounce, isEmpty, @@ -244,13 +243,17 @@ const EntityLineageComponent: FunctionComponent = ({ setUpdatedLineageData(res); } else { showErrorToast( - jsonData['api-error-messages']['fetch-lineage-error'] + t('server.entity-fetch-error', { + entity: t('label.lineage-data-lowercase'), + }) ); } } catch (err) { showErrorToast( err as AxiosError, - jsonData['api-error-messages']['fetch-lineage-error'] + t('server.entity-fetch-error', { + entity: t('label.lineage-data-lowercase'), + }) ); } finally { setIsLineageLoading(false); @@ -277,7 +280,9 @@ const EntityLineageComponent: FunctionComponent = ({ setNodeLoading((prev) => ({ ...prev, id: node.id, state: false })); showErrorToast( err as AxiosError, - jsonData['api-error-messages']['fetch-lineage-node-error'] + t('server.entity-fetch-error', { + entity: t('label.lineage-node-lowercase'), + }) ); } }, diff --git a/openmetadata-ui/src/main/resources/ui/src/components/NotificationBox/NotificationBox.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/NotificationBox/NotificationBox.component.tsx index 4fc25b4f460..567930dfd13 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/NotificationBox/NotificationBox.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/NotificationBox/NotificationBox.component.tsx @@ -27,7 +27,6 @@ import { FeedFilter } from '../../enums/mydata.enum'; import { NotificationTabsKey } from '../../enums/notification.enum'; import { ThreadType } from '../../generated/api/feed/createThread'; import { Post, Thread } from '../../generated/entity/feed/thread'; -import jsonData from '../../jsons/en'; import { getEntityFQN, getEntityType } from '../../utils/FeedUtils'; import SVGIcons, { Icons } from '../../utils/SvgUtils'; import { showErrorToast } from '../../utils/ToastUtils'; @@ -96,7 +95,9 @@ const NotificationBox = ({ .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['fetch-notifications-error'] + t('server.entity-fetch-error', { + entity: t('label.notification'), + }) ); }) .finally(() => { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ProfilerDashboard/ProfilerDashboard.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ProfilerDashboard/ProfilerDashboard.tsx index d0922f1a73d..60ffc23e797 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ProfilerDashboard/ProfilerDashboard.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/ProfilerDashboard/ProfilerDashboard.tsx @@ -52,7 +52,6 @@ import { Column, Table } from '../../generated/entity/data/table'; import { TestCaseStatus } from '../../generated/tests/testCase'; import { EntityReference } from '../../generated/type/entityReference'; import { LabelType, State } from '../../generated/type/tagLabel'; -import jsonData from '../../jsons/en'; import { getCurrentUserId, getEntityPlaceHolder, @@ -324,7 +323,9 @@ const ProfilerDashboard: React.FC = ({ } catch (error) { showErrorToast( error as AxiosError, - jsonData['api-error-messages']['update-entity-unfollow-error'] + t('server.entity-unfollow-error', { + entity: table.name, + }) ); } }; @@ -337,7 +338,9 @@ const ProfilerDashboard: React.FC = ({ } catch (error) { showErrorToast( error as AxiosError, - jsonData['api-error-messages']['update-entity-follow-error'] + t('server.entity-follow-error', { + entity: table.name, + }) ); } }; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/TableProfiler/Component/ProfilerSettingsModal.tsx b/openmetadata-ui/src/main/resources/ui/src/components/TableProfiler/Component/ProfilerSettingsModal.tsx index e9b29ef4459..5340f8eff95 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/TableProfiler/Component/ProfilerSettingsModal.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/TableProfiler/Component/ProfilerSettingsModal.tsx @@ -56,7 +56,6 @@ import { ProfileSampleType, TableProfilerConfig, } from '../../../generated/entity/data/table'; -import jsonData from '../../../jsons/en'; import { reducerWithoutAction } from '../../../utils/CommonUtils'; import SVGIcons, { Icons } from '../../../utils/SvgUtils'; import { showErrorToast, showSuccessToast } from '../../../utils/ToastUtils'; @@ -218,14 +217,12 @@ const ProfilerSettingsModal: React.FC = ({ updateInitialConfig(tableProfilerConfig); } } else { - throw jsonData['api-error-messages'][ - 'fetch-table-profiler-config-error' - ]; + throw t('server.fetch-table-profiler-config-error'); } } catch (error) { showErrorToast( error as AxiosError, - jsonData['api-error-messages']['fetch-table-profiler-config-error'] + t('server.fetch-table-profiler-config-error') ); } }; @@ -292,16 +289,22 @@ const ProfilerSettingsModal: React.FC = ({ const data = await putTableProfileConfig(tableId, profileConfig); if (data) { showSuccessToast( - jsonData['api-success-messages']['update-profile-congif-success'] + t('server.update-entity-success', { + entity: t('label.profile-config'), + }) ); onVisibilityChange(false); } else { - throw jsonData['api-error-messages']['update-profiler-config-error']; + throw t('server.entity-updating-error', { + entity: t('label.profile-config'), + }); } } catch (error) { showErrorToast( error as AxiosError, - jsonData['api-error-messages']['update-profiler-config-error'] + t('server.entity-updating-error', { + entity: t('label.profile-config'), + }) ); } finally { setIsLoading(false); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx index 455a4efb379..dd2f1c97303 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx @@ -63,7 +63,6 @@ import { Role } from '../../generated/entity/teams/role'; import { EntityReference } from '../../generated/entity/teams/user'; import { Paging } from '../../generated/type/paging'; import { useInfiniteScroll } from '../../hooks/useInfiniteScroll'; -import jsonData from '../../jsons/en'; import { getNonDeletedTeams } from '../../utils/CommonUtils'; import { getImageWithResolutionAndFallback, @@ -809,7 +808,9 @@ const Users = ({ setRoles([]); showErrorToast( err as AxiosError, - jsonData['api-error-messages']['fetch-roles-error'] + t('server.entity-fetch-error', { + entity: t('label.role-plural'), + }) ); } finally { setIsRolesLoading(false); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/app-bar/Suggestions.tsx b/openmetadata-ui/src/main/resources/ui/src/components/app-bar/Suggestions.tsx index 895e87c5844..f509dd91a39 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/app-bar/Suggestions.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/app-bar/Suggestions.tsx @@ -14,6 +14,7 @@ import { AxiosError } from 'axios'; import { ContainerSearchSource } from 'interface/search.interface'; import React, { useEffect, useRef, useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { getSuggestions } from 'rest/miscAPI'; import { filterOptionsByIndex, @@ -21,7 +22,6 @@ import { getSuggestionElement, } from 'utils/SearchUtils'; import { SearchIndex } from '../../enums/search.enum'; -import jsonData from '../../jsons/en'; import { showErrorToast } from '../../utils/ToastUtils'; import { DashboardSource, @@ -48,6 +48,7 @@ const Suggestions = ({ setIsOpen, searchCriteria, }: SuggestionProp) => { + const { t } = useTranslation(); const [options, setOptions] = useState>([]); const [tableSuggestions, setTableSuggestions] = useState([]); const [topicSuggestions, setTopicSuggestions] = useState([]); @@ -150,13 +151,15 @@ const Suggestions = ({ .options as unknown as Option[] ); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } }) .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['fetch-suggestions-error'] + t('server.entity-fetch-error', { + entity: t('label.suggestion-lowercase-plural'), + }) ); }); } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/authentication/callbacks/Auth0Callback/Auth0Callback.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/authentication/callbacks/Auth0Callback/Auth0Callback.test.tsx index 04fcf8e6a4d..343233d6276 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/authentication/callbacks/Auth0Callback/Auth0Callback.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/authentication/callbacks/Auth0Callback/Auth0Callback.test.tsx @@ -13,10 +13,10 @@ import { useAuth0 } from '@auth0/auth0-react'; import { render, screen } from '@testing-library/react'; +import { t } from 'i18next'; import React from 'react'; import { MemoryRouter } from 'react-router-dom'; import { oidcTokenKey } from '../../../../constants/constants'; -import jsonData from '../../../../jsons/en'; import Auth0Callback from './Auth0Callback'; const localStorageMock = (() => { @@ -81,9 +81,7 @@ describe('Test Auth0Callback component', () => { }); const error = screen.getByTestId('auth0-error'); - expect(error).toHaveTextContent( - jsonData['api-error-messages']['unexpected-error'] - ); + expect(error).toHaveTextContent(t('server.unexpected-error')); expect(error).toHaveTextContent('unknown error'); }); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/authentication/callbacks/Auth0Callback/Auth0Callback.tsx b/openmetadata-ui/src/main/resources/ui/src/components/authentication/callbacks/Auth0Callback/Auth0Callback.tsx index 65f50323227..c4edfe1894a 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/authentication/callbacks/Auth0Callback/Auth0Callback.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/authentication/callbacks/Auth0Callback/Auth0Callback.tsx @@ -14,7 +14,6 @@ import { useAuth0 } from '@auth0/auth0-react'; import { t } from 'i18next'; import React, { VFC } from 'react'; -import jsonData from '../../../../jsons/en'; import localState from '../../../../utils/LocalStorageUtils'; import { useAuthContext } from '../../auth-provider/AuthProvider'; import { OidcUser } from '../../auth-provider/AuthProvider.interface'; @@ -52,7 +51,7 @@ const Auth0Callback: VFC = () => { if (error) { return (
- {jsonData['api-error-messages']['unexpected-error']} {error.message} + {t('server.unexpected-error')} {error.message}
); } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTGCSConfig.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTGCSConfig.tsx index cadbd124b10..f9b83e4eb8d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTGCSConfig.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTGCSConfig.tsx @@ -27,7 +27,6 @@ import { GCSCredentialsValues, SCredentials, } from '../../../generated/metadataIngestion/dbtPipeline'; -import jsonData from '../../../jsons/en'; import { errorMsg, getSeparator } from '../../../utils/CommonUtils'; import { Field } from '../../Field/Field'; import DBTCommonFields from './DBTCommonFields.component'; @@ -110,7 +109,9 @@ export const DBTGCSConfig: FunctionComponent = ({ if (gcsType !== GCS_CONFIG.GCSValues) { if (isEmpty(gcsConfig)) { setErrors({ - gcsConfig: `GCS Config ${jsonData['form-error-messages']['is-required']}`, + gcsConfig: t('message.field-text-is-required', { + fieldText: t('label.gcs-config'), + }), } as ErrorDbtGCS); valid = false; } else { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DeleteWidget/DeleteWidgetModal.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/DeleteWidget/DeleteWidgetModal.tsx index a49bdb02536..59192f3f8d4 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DeleteWidget/DeleteWidgetModal.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DeleteWidget/DeleteWidgetModal.tsx @@ -20,7 +20,6 @@ import { useHistory } from 'react-router-dom'; import { deleteEntity } from 'rest/miscAPI'; import { ENTITY_DELETE_STATE } from '../../../constants/entity.constants'; import { EntityType } from '../../../enums/entity.enum'; -import jsonData from '../../../jsons/en'; import { getEntityDeleteMessage, Transi18next, @@ -144,7 +143,9 @@ const DeleteWidgetModal = ({ handleOnEntityDeleteCancel(); showSuccessToast( getMessage( - jsonData['api-success-messages']['delete-entity-success'] + t('server.entity-deleted-successfully', { + entity: entityName, + }) ) ); @@ -157,15 +158,15 @@ const DeleteWidgetModal = ({ } }, 1000); } else { - showErrorToast( - jsonData['api-error-messages']['unexpected-server-response'] - ); + showErrorToast(t('server.unexpected-response')); } }) .catch((error: AxiosError) => { showErrorToast( error, - jsonData['api-error-messages']['delete-entity-error'] + t('server.delete-entity-error', { + entity: entityName, + }) ); }) .finally(() => { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/TierCard/TierCard.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/TierCard/TierCard.tsx index 725b286b15f..e7f72cb7033 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/TierCard/TierCard.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/TierCard/TierCard.tsx @@ -21,7 +21,6 @@ import React, { ReactNode, useEffect, useState } from 'react'; import { getTags } from 'rest/tagAPI'; import { FQN_SEPARATOR_CHAR } from '../../../constants/char.constants'; import { EntityReference } from '../../../generated/type/entityReference'; -import jsonData from '../../../jsons/en'; import { showErrorToast } from '../../../utils/ToastUtils'; import CardListItem from '../../cardlist/CardListItem/CardWithListItem'; import { CardWithListItems } from '../../cardlist/CardListItem/CardWithListItem.interface'; @@ -85,7 +84,9 @@ const TierCard = ({ .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['fetch-tiers-error'] + t('server.entity-fetch-error', { + entity: t('label.tier-plural-lowercase'), + }) ); }) .finally(() => { diff --git a/openmetadata-ui/src/main/resources/ui/src/jsons/en.ts b/openmetadata-ui/src/main/resources/ui/src/jsons/en.ts deleted file mode 100644 index 5a5fec37bd7..00000000000 --- a/openmetadata-ui/src/main/resources/ui/src/jsons/en.ts +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Copyright 2022 Collate. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const jsonData = { - 'api-error-messages': { - 'add-glossary-error': 'Error while adding glossary!', - 'add-glossary-term-error': 'Error while adding glossary term!', - 'add-lineage-error': 'Error while adding lineage!', - 'add-feed-error': 'Error while adding feed!', - 'add-table-test-error': 'Error while adding table test!', - 'add-column-test-error': 'Error while adding column test!', - 'add-ingestion-error': 'Error while adding ingestion workflow!', - 'add-service-error': 'Error while adding service!', - 'add-settings-error': 'Error while adding settings', - - 'check-status-airflow': 'Error while connecting to Airflow instance!', - 'create-user-error': 'Error while creating user!', - 'create-bot-error': 'Error while creating bot!', - 'create-conversation-error': 'Error while creating conversation!', - 'create-message-error': 'Error while creating message!', - 'create-role-error': 'Error While creating role!', - 'create-rule-error': 'Error while creating rule!', - 'create-tag-category-error': 'Error while creating tag category!', - 'create-tag-error': 'Error while creating tag!', - 'create-team-error': 'Error while creating team!', - 'create-ingestion-error': 'Error while creating ingestion workflow!', - 'create-service-error': 'Error while creating service!', - - 'delete-entity-error': 'Error while deleting entity!', - 'delete-glossary-error': 'Error while deleting glossary!', - 'delete-glossary-term-error': 'Error while deleting glossary term!', - 'delete-ingestion-error': 'Error while deleting ingestion workflow', - 'delete-lineage-error': 'Error while deleting edge!', - 'delete-message-error': 'Error while deleting message!', - 'delete-rule-error': 'Error while deleting rule!', - 'delete-service-error': 'Error while deleting service!', - 'delete-team-error': 'Error while deleting team!', - 'delete-test-error': 'Error while deleting test!', - 'delete-user-error': 'Error while deleting user!', - 'delete-tag-category-error': 'Error while deleting tag category!', - 'delete-tag-error': 'Error while deleting tag!', - - 'email-verification-err': - 'An email could not be sent for verification. Please contact your Administrator.', - - 'forgot-password-email-err': - 'There is some issue in sending the mail. Please contact your Administrator.', - - 'unexpected-error': 'Oops! An unexpected error occurred.', - - 'forbidden-error': 'You do not have permissions to perform this action!', - - 'elastic-search-error': 'Error while fetching data from Elasticsearch!', - - 'triggering-ingestion-error': 'Error while triggering ingestion workflow', - - 'deploy-ingestion-error': 'Error while deploying ingestion workflow!', - - 'entity-already-exist-error': 'Entity already exists!', - - 'fetch-airflow-config-error': - 'Error occurred while fetching airflow configs!', - 'fetch-auth-config-error': 'Error occurred while fetching auth configs!', - 'fetch-chart-error': 'Error while fetching charts!', - 'fetch-dashboard-details-error': 'Error while fetching dashboard details!', - 'fetch-data-error': 'Error while fetching data!', - 'fetch-database-details-error': 'Error while fetching database details!', - 'fetch-database-tables-error': 'Error while fetching database tables!', - 'fetch-database-schemas-error': 'Error while fetching database schemas!', - 'fetch-databaseSchema-details-error': - 'Error while fetching database schema details!', - 'fetch-activity-feed-error': 'Error while fetching activity feeds!', - 'fetch-entity-feed-error': 'Error while fetching entity feeds!', - 'fetch-entity-feed-count-error': 'Error while fetching entity feed count!', - 'fetch-entity-count-error': 'Error while fetching entity count!', - 'fetch-feed-error': 'Error while fetching messages', - 'fetch-glossary-error': 'Error while fetching glossary!', - 'fetch-glossary-list-error': 'Error while fetching glossaries!', - 'fetch-glossary-term-error': 'Error while fetching glossary term!', - 'fetch-glossary-terms-error': 'Error while fetching glossary terms!', - 'fetch-ingestion-error': 'Error while fetching ingestion workflow!', - 'fetch-lineage-error': 'Error while fetching lineage data!', - 'fetch-lineage-node-error': 'Error while fetching lineage node!', - 'fetch-logged-in-user-error': 'Error while fetching logged-in user!', - 'fetch-notifications-error': 'Error occurred while fetching notifications', - 'fetch-pipeline-details-error': 'Error while fetching pipeline details!', - 'fetch-pipeline-status-error': 'Error while fetching pipeline status!', - 'fetch-policy-error': 'Error while fetching policy details!', - 'fetch-roles-error': 'Error while fetching roles!', - 'fetch-sample-data-error': 'Error while fetching sample data!', - 'fetch-table-details-error': 'Error while fetching table details!', - 'fetch-table-queries-error': 'Error while fetching table queries!', - 'fetch-tags-error': 'Error while fetching tags!', - 'fetch-tiers-error': 'Error while fetching tiers!', - 'fetch-tags-category-error': 'Error while fetching tags category!', - 'fetch-topic-details-error': 'Error while fetching topic details!', - 'fetch-thread-error': 'Error while fetching threads!', - 'fetch-updated-conversation-error': - 'Error while fetching updated conversation!', - 'fetch-user-details-error': 'Error while fetching user details!', - 'fetch-user-permission-error': 'Error while fetching user permissions!', - 'fetch-service-error': 'Error while fetching service details!', - 'fetch-services-error': 'Error while fetching services!', - 'fetch-suggestions-error': 'Error while fetching suggestions!', - 'fetch-teams-error': 'Error while fetching teams!', - 'fetch-version-error': 'Error while fetching version!', - 'fetch-webhook-error': 'Error while fetching webhooks!', - 'fetch-user-count-error': 'Error while getting users count!', - 'fetch-users-error': 'Error while fetching users!', - 'fetch-table-profiler-config-error': - 'Error while fetching table profiler config!', - 'fetch-column-test-error': 'Error while fetching column test case!', - 'fetch-entity-permissions-error': 'Unable to get permission for entity.', - 'fetch-test-suite-error': 'Error while fetching test suite', - 'fetch-test-cases-error': 'Error while fetching test cases', - 'fetch-entity-details-error': 'Error while fetching entity.', - - 'test-connection-error': 'Error while testing connection!', - - 'unexpected-server-response': 'Unexpected response from server!', - - 'update-chart-error': 'Error while updating charts!', - 'update-description-error': 'Error while updating description!', - 'update-database-error': 'Error while updating database!', - 'update-databaseSchema-error': 'Error while updating database schema!', - 'update-entity-error': 'Error while updating entity!', - 'update-entity-follow-error': 'Error while following entity!', - 'update-entity-unfollow-error': 'Error while unfollowing entity!', - 'update-glossary-term-error': 'Error while updating glossary term!', - 'update-ingestion-error': 'Error while updating ingestion workflow', - 'update-owner-error': 'Error while updating owner', - 'remove-owner-error': 'Error while removing owner', - 'update-role-error': 'Error while updating role!', - 'update-service-config-error': 'Error while updating ingestion workflow', - 'update-tags-error': 'Error while updating tags!', - 'update-tag-category-error': 'Error while updating tag category!', - 'update-task-error': 'Error while updating tasks!', - 'update-team-error': 'Error while updating team!', - 'update-user-error': 'Error while updating user!', - 'update-admin-profile-error': - 'Error while updating the admin user profile!', - 'update-service-error': 'Error while updating service!', - 'update-reviewer-error': 'Error while updating reviewer!', - 'update-profiler-config-error': 'Error while updating profiler config!', - - 'feed-post-error': 'Error while posting the message!', - - 'join-team-error': 'Error while joining the team!', - 'leave-team-error': 'Error while leaving the team!', - 'update-test-suite-error': 'Error while updating test suite', - - 'fetch-settings': 'Error while fetching settings', - 'email-not-found': 'User with the given email address does not exist!', - 'email-found': 'User with the given email address already exists!', - 'unauthorized-user': 'UnAuthorized user! please check email or password', - 'fetch-re-index-all': 'Error while fetching re index data!', - 'update-re-index-all': 'Error while re indexing!', - }, - 'api-success-messages': { - 'create-conversation': 'Conversation created successfully!', - 'add-settings-success': 'Settings added successfully!', - 'join-team-success': 'Team joined successfully!', - 'leave-team-success': 'Left the team successfully!', - - 'delete-test': 'Test deleted successfully!', - 'delete-message': 'Message deleted successfully!', - 'delete-entity-success': 'Entity deleted successfully!', - 'delete-glossary-success': 'Glossary deleted successfully!', - 'delete-glossary-term-success': 'Glossary term deleted successfully!', - 'test-connection-success': 'Connection tested successfully!', - - 'user-restored-success': 'User restored successfully!', - - 'update-profile-congif-success': 'Profile config updated successfully!', - 'update-test-case-success': 'Test case updated successfully!', - 'update-webhook-success': 'Webhook updated successfully!', - 'create-user-account': 'User account created successfully!', - 'reset-password-success': 'Password reset successfully!', - 'account-verify-success': 'Email verified successfully!', - 'update-password-success': 'Password updated successfully!', - 'fetch-re-index-all': 'Re-index started', - 'stop-re-index': 'Re-indexing Stopped', - }, - 'form-error-messages': { - 'empty-email': 'Email is required.', - 'invalid-email': 'Email is invalid.', - 'invalid-url': 'Url is invalid.', - 'is-required': 'is required', - 'email-is-in-use': 'Email is already in use!', - }, - label: { - 'delete-entity-text': - 'Once you delete this entity, it will be removed permanently.', - 'email-confirmation': - 'Please confirm your email, confirmation has been sent to your email', - 'special-character-error': 'Special character is not allowed!', - }, - message: { - 'no-services': 'No services', - 'fail-to-deploy-pipeline': 'Failed to deploy Ingestion Pipeline!', - 'no-custom-entity': 'No custom entity data available', - }, -}; - -export default jsonData; diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json index 80aa90017d1..d8c95ace2c1 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json @@ -153,6 +153,7 @@ "credentials-type": "Credentials Type", "criteria": "Criteria", "custom-attribute-plural": "Custom Attributes", + "custom-entity": "Custom entity", "custom-oidc": "CustomOidc", "custom-property": "Custom property", "custom-property-plural": "Custom Properties", @@ -346,6 +347,7 @@ "full-screen": "Full screen", "function": "Function", "g-chat": "G Chat", + "gcs-config": "GCS Config", "gcs-config-source": "GCS Config Source", "gcs-credential-path": "GCS Credentials Path", "gcs-credential-value": "GCS Credentials Values", @@ -441,8 +443,10 @@ "line": "Line", "lineage": "Lineage", "lineage-config": "Lineage Config", + "lineage-data-lowercase": "lineage data", "lineage-ingestion": "Lineage Ingestion", "lineage-lowercase": "lineage", + "lineage-node-lowercase": "lineage node", "list": "List", "list-entity": "List {{entity}}", "live": "Live", @@ -530,6 +534,7 @@ "not-found-lowercase": "not found", "not-null": "Not Null", "not-used": "Not Used", + "notification": "Notification", "notification-plural": "Notifications", "november": "November", "null": "Null", @@ -611,6 +616,7 @@ "private-key": "PrivateKey", "private-key-id": "Private Key ID", "profile": "Profile", + "profile-config": "Profile config", "profile-lowercase": "profile", "profile-sample-type": "Profile Sample {{type}}", "profiler": "Profiler", @@ -842,6 +848,7 @@ "thursday": "Thursday", "tier": "Tier", "tier-number": "Tier{{tier}}", + "tier-plural-lowercase": "tiers", "time": "Time", "timeout": "Timeout", "title": "Title", @@ -1284,6 +1291,7 @@ "add-entity-error": "Error while adding {{entity}}!", "auth-provider-not-supported-renewing": "Auth Provider {{provider}} not supported for renewing tokens.", "can-not-renew-token-authentication-not-present": "Cannot renew id token. Authentication Provider is not present.", + "column-fetch-error": "Error while fetching column test case!", "connection-tested-successfully": "Connection tested successfully", "create-entity-error": "Error while creating {{entity}}!", "create-entity-success": "{{entity}} created successfully.", @@ -1310,6 +1318,7 @@ "feed-post-error": "Error while posting the message!", "fetch-entity-permissions-error": "Unable to get permission for {{entity}}.", "fetch-re-index-data-error": "Error while fetching re index data!", + "fetch-table-profiler-config-error": "Error while fetching table profiler config!", "fetch-updated-conversation-error": "Error while fetching updated conversation!", "forgot-password-email-error": "There is some issue in sending the mail. Please contact your Administrator.", "ingestion-workflow-operation-error": "Error while {{operation}} ingestion workflow {{displayName}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json index 4c11a1d6025..075e8bad0d9 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json @@ -153,6 +153,7 @@ "credentials-type": "Tipo de credenciales", "criteria": "Criterio", "custom-attribute-plural": "Atributos personalizados", + "custom-entity": "Custom entity", "custom-oidc": "OIDC personalizado", "custom-property": "Propiedad personalizada", "custom-property-plural": "Propiedades personalizadas", @@ -346,6 +347,7 @@ "full-screen": "Pantalla completa", "function": "Función", "g-chat": "Chat de Google", + "gcs-config": "GCS Config", "gcs-config-source": "Origen de configuración de GCS", "gcs-credential-path": "Ruta de credenciales de GCS", "gcs-credential-value": "Valores de credenciales de GCS", @@ -441,8 +443,10 @@ "line": "Línea", "lineage": "Linage", "lineage-config": "Configuración del linaje", + "lineage-data-lowercase": "lineage data", "lineage-ingestion": "Ingesta de lineaje", "lineage-lowercase": "lineaje", + "lineage-node-lowercase": "lineage node", "list": "Lista", "list-entity": "Lista de {{entity}}", "live": "Live", @@ -530,6 +534,7 @@ "not-found-lowercase": "no encontrado", "not-null": "No nulo", "not-used": "No utilizado", + "notification": "Notification", "notification-plural": "Notificaciones", "november": "Noviembre", "null": "Nulo", @@ -611,6 +616,7 @@ "private-key": "Llave privada", "private-key-id": "ID de la llave privada", "profile": "Perfil", + "profile-config": "Profile config", "profile-lowercase": "perfil", "profile-sample-type": "Muestra de perfil {{type}}", "profiler": "Perfilador", @@ -842,6 +848,7 @@ "thursday": "Jueves", "tier": "Nivel", "tier-number": "Nivel {{tier}}", + "tier-plural-lowercase": "tiers", "time": "Tiempo", "timeout": "Tiempo de espera", "title": "Título", @@ -1284,6 +1291,7 @@ "add-entity-error": "¡Error al agregar {{entity}}!", "auth-provider-not-supported-renewing": "Proveedor de autenticación {{provider}} no soportado para renovar tokens.", "can-not-renew-token-authentication-not-present": "No se puede renovar el token de identificación. El proveedor de autenticación no está presente.", + "column-fetch-error": "Error while fetching column test case!", "connection-tested-successfully": "El test de conexión ha sido un éxito", "create-entity-error": "¡Error al crear {{entity}}!", "create-entity-success": "{{entity}} creado exitosamente.", @@ -1310,6 +1318,7 @@ "feed-post-error": "¡Error al publicar el mensaje!", "fetch-entity-permissions-error": "No se puede obtener permiso para {{entity}}.", "fetch-re-index-data-error": "Error while fetching re index data!", + "fetch-table-profiler-config-error": "Error while fetching table profiler config!", "fetch-updated-conversation-error": "Error al recuperar conversación actualizada!", "forgot-password-email-error": "Hay algún problema para enviar el correo. Por favor contacta a tu administrador.", "ingestion-workflow-operation-error": "Error al {{operation}} del flujo de trabajo de ingesta {{displayName}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json index d8376f8b677..15a7bafa4ad 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json @@ -153,6 +153,7 @@ "credentials-type": "Credentials Type", "criteria": "Critères", "custom-attribute-plural": "Custom Attributes", + "custom-entity": "Custom entity", "custom-oidc": "CustomOidc", "custom-property": "Custom property", "custom-property-plural": "Propriétés Personalisées", @@ -346,6 +347,7 @@ "full-screen": "Full screen", "function": "Fonction", "g-chat": "G Chat", + "gcs-config": "GCS Config", "gcs-config-source": "GCS Config Source", "gcs-credential-path": "GCS Credentials Path", "gcs-credential-value": "GCS Credentials Values", @@ -441,8 +443,10 @@ "line": "Line", "lineage": "Traçabilité", "lineage-config": "Lineage Config", + "lineage-data-lowercase": "lineage data", "lineage-ingestion": "Lineage Ingestion", "lineage-lowercase": "lineage", + "lineage-node-lowercase": "lineage node", "list": "List", "list-entity": "List {{entity}}", "live": "Live", @@ -530,6 +534,7 @@ "not-found-lowercase": "not found", "not-null": "Not Null", "not-used": "Not Used", + "notification": "Notification", "notification-plural": "Notifications", "november": "November", "null": "Null", @@ -611,6 +616,7 @@ "private-key": "PrivateKey", "private-key-id": "Private Key ID", "profile": "Profile", + "profile-config": "Profile config", "profile-lowercase": "profile", "profile-sample-type": "Profile Sample {{type}}", "profiler": "Profiler", @@ -842,6 +848,7 @@ "thursday": "Thursday", "tier": "Rang", "tier-number": "Rang{{tier}}", + "tier-plural-lowercase": "tiers", "time": "Time", "timeout": "Timeout", "title": "Title", @@ -1284,6 +1291,7 @@ "add-entity-error": "Error while adding {{entity}}!", "auth-provider-not-supported-renewing": "Auth Provider {{provider}} not supported for renewing tokens.", "can-not-renew-token-authentication-not-present": "Cannot renew id token. Authentication Provider is not present.", + "column-fetch-error": "Error while fetching column test case!", "connection-tested-successfully": "Connection tested successfully", "create-entity-error": "Error while creating {{entity}}!", "create-entity-success": "{{entity}} created successfully.", @@ -1310,6 +1318,7 @@ "feed-post-error": "Une erreur est survenue lors de la publication du message !", "fetch-entity-permissions-error": "Unable to get permission for {{entity}}.", "fetch-re-index-data-error": "Error while fetching re index data!", + "fetch-table-profiler-config-error": "Error while fetching table profiler config!", "fetch-updated-conversation-error": "Error while fetching updated conversation!", "forgot-password-email-error": "There is some issue in sending the mail. Please contact your Administrator.", "ingestion-workflow-operation-error": "Erreur lors de {{operation}} ingestion workflow {{displayName}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json index 8a91ea0a6c8..7be50b644bd 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json @@ -153,6 +153,7 @@ "credentials-type": "Credentials Type", "criteria": "クライテリア", "custom-attribute-plural": "カスタム属性", + "custom-entity": "Custom entity", "custom-oidc": "CustomOidc", "custom-property": "カスタムプロパティ", "custom-property-plural": "カスタムプロパティ", @@ -346,6 +347,7 @@ "full-screen": "Full screen", "function": "Function", "g-chat": "G Chat", + "gcs-config": "GCS Config", "gcs-config-source": "GCS Config Source", "gcs-credential-path": "GCS Credentials Path", "gcs-credential-value": "GCS Credentials Values", @@ -441,8 +443,10 @@ "line": "Line", "lineage": "リネージ", "lineage-config": "Lineage Config", + "lineage-data-lowercase": "lineage data", "lineage-ingestion": "リネージのインジェスチョン", "lineage-lowercase": "リネージ", + "lineage-node-lowercase": "lineage node", "list": "リスト", "list-entity": "{{entity}}のリスト", "live": "Live", @@ -530,6 +534,7 @@ "not-found-lowercase": "存在しない", "not-null": "Not Null", "not-used": "Not Used", + "notification": "Notification", "notification-plural": "通知", "november": "11月", "null": "Null", @@ -611,6 +616,7 @@ "private-key": "PrivateKey", "private-key-id": "Private Key ID", "profile": "プロファイル", + "profile-config": "Profile config", "profile-lowercase": "プロファイル", "profile-sample-type": "サンプル{{type}}のプロファイル", "profiler": "プロファイラ", @@ -842,6 +848,7 @@ "thursday": "木曜日", "tier": "ティア", "tier-number": "ティア{{tier}}", + "tier-plural-lowercase": "tiers", "time": "時間", "timeout": "タイムアウト", "title": "タイトル", @@ -1284,6 +1291,7 @@ "add-entity-error": "{{entity}}の追加中にエラーが発生しました!", "auth-provider-not-supported-renewing": "Auth Provider {{provider}} not supported for renewing tokens.", "can-not-renew-token-authentication-not-present": "Cannot renew id token. Authentication Provider is not present.", + "column-fetch-error": "Error while fetching column test case!", "connection-tested-successfully": "接続テストは成功しました", "create-entity-error": "{{entity}}の作成中にエラーが発生しました!", "create-entity-success": "{{entity}}の作成が正常に終了しました。", @@ -1310,6 +1318,7 @@ "feed-post-error": "メッセージの投稿中にエラーが発生しました!", "fetch-entity-permissions-error": "Unable to get permission for {{entity}}の権限を取得できません。", "fetch-re-index-data-error": "Error while fetching re index data!", + "fetch-table-profiler-config-error": "Error while fetching table profiler config!", "fetch-updated-conversation-error": "更新された会話を取得中にエラーが発生しました!", "forgot-password-email-error": "メールの送信中に何らかの問題が発生しました。管理者にご連絡ください。", "ingestion-workflow-operation-error": "Error while {{operation}} ingestion workflow {{displayName}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json index 8d5fa7ccae6..386e07e3b08 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json @@ -153,6 +153,7 @@ "credentials-type": "Tipo de credenciais", "criteria": "Critério", "custom-attribute-plural": "Atributos personalizados", + "custom-entity": "Custom entity", "custom-oidc": "OIDC customizado", "custom-property": "Propriedade customizada", "custom-property-plural": "Propriedades customizadas", @@ -346,6 +347,7 @@ "full-screen": "Tela inteira", "function": "Função", "g-chat": "Conversa G", + "gcs-config": "GCS Config", "gcs-config-source": "GCS Origem das configurações", "gcs-credential-path": "GCS Caminho das credenciais", "gcs-credential-value": "GCS Valores das credenciais", @@ -441,8 +443,10 @@ "line": "Line", "lineage": "Linhagem", "lineage-config": "Configuração da linhagem", + "lineage-data-lowercase": "lineage data", "lineage-ingestion": "Ingestão da linhagem", "lineage-lowercase": "linhagem", + "lineage-node-lowercase": "lineage node", "list": "Lista", "list-entity": "List {{entity}}", "live": "Live", @@ -530,6 +534,7 @@ "not-found-lowercase": "não encontrado", "not-null": "Não é nulo", "not-used": "Não usado", + "notification": "Notification", "notification-plural": "Notificações", "november": "Novembro", "null": "Nulo", @@ -611,6 +616,7 @@ "private-key": "PrivateKey", "private-key-id": "ID da private key", "profile": "Perfil", + "profile-config": "Profile config", "profile-lowercase": "perfil", "profile-sample-type": "Amostra do perfil {{type}}", "profiler": "Profiler", @@ -842,6 +848,7 @@ "thursday": "Quinta-feira", "tier": "Camada", "tier-number": "Camada{{tier}}", + "tier-plural-lowercase": "tiers", "time": "Tempo", "timeout": "Timeout", "title": "Título", @@ -1284,6 +1291,7 @@ "add-entity-error": "Erro ao adicionar {{entity}}!", "auth-provider-not-supported-renewing": "Fornecedor de autenticação {{provider}} não suportado para renovar tokens.", "can-not-renew-token-authentication-not-present": "Não é possível renovar o token de ID. O provedor de autenticação não está presente.", + "column-fetch-error": "Error while fetching column test case!", "connection-tested-successfully": "Conexão testada com sucesso", "create-entity-error": "Erro ao criar {{entity}}!", "create-entity-success": "{{entity}} criado com sucesso.", @@ -1310,6 +1318,7 @@ "feed-post-error": "Erro ao publicar a mensagem!", "fetch-entity-permissions-error": "Não é possível obter permissão para {{entity}}.", "fetch-re-index-data-error": "Error while fetching re index data!", + "fetch-table-profiler-config-error": "Error while fetching table profiler config!", "fetch-updated-conversation-error": "Erro ao buscar conversa atualizada!", "forgot-password-email-error": "Há algum problema ao enviar o e-mail. Entre em contato com seu Administrador.", "ingestion-workflow-operation-error": "Erro ao {{operation}} do fluxo de trabalho de ingestão {{displayName}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json index 0ea79adbf44..05dbb24eca1 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json @@ -153,6 +153,7 @@ "credentials-type": "Credentials Type", "criteria": "标准", "custom-attribute-plural": "Custom Attributes", + "custom-entity": "Custom entity", "custom-oidc": "CustomOidc", "custom-property": "Custom property", "custom-property-plural": "定制属性", @@ -346,6 +347,7 @@ "full-screen": "Full screen", "function": "函数", "g-chat": "G Chat", + "gcs-config": "GCS Config", "gcs-config-source": "GCS Config Source", "gcs-credential-path": "GCS Credentials Path", "gcs-credential-value": "GCS Credentials Values", @@ -441,8 +443,10 @@ "line": "Line", "lineage": "血源", "lineage-config": "Lineage Config", + "lineage-data-lowercase": "lineage data", "lineage-ingestion": "Lineage Ingestion", "lineage-lowercase": "lineage", + "lineage-node-lowercase": "lineage node", "list": "列表", "list-entity": "List {{entity}}", "live": "Live", @@ -530,6 +534,7 @@ "not-found-lowercase": "not found", "not-null": "Not null", "not-used": "Not used", + "notification": "Notification", "notification-plural": "Notifications", "november": "November", "null": "Null", @@ -611,6 +616,7 @@ "private-key": "PrivateKey", "private-key-id": "Private Key ID", "profile": "画像", + "profile-config": "Profile config", "profile-lowercase": "profile", "profile-sample-type": "Profile Sample {{type}}", "profiler": "Profiler", @@ -842,6 +848,7 @@ "thursday": "Thursday", "tier": "分层", "tier-number": "分层{{tier}}", + "tier-plural-lowercase": "tiers", "time": "Time", "timeout": "超时", "title": "标题", @@ -1284,6 +1291,7 @@ "add-entity-error": "Error while adding {{entity}}!", "auth-provider-not-supported-renewing": "Auth Provider {{provider}} not supported for renewing tokens.", "can-not-renew-token-authentication-not-present": "Cannot renew id token. Authentication Provider is not present.", + "column-fetch-error": "Error while fetching column test case!", "connection-tested-successfully": "Connection tested successfully", "create-entity-error": "Error while creating {{entity}}!", "create-entity-success": "{{entity}} created successfully.", @@ -1310,6 +1318,7 @@ "feed-post-error": "Error while posting the message!", "fetch-entity-permissions-error": "Unable to get permission for {{entity}}.", "fetch-re-index-data-error": "Error while fetching re index data!", + "fetch-table-profiler-config-error": "Error while fetching table profiler config!", "fetch-updated-conversation-error": "Error while fetching updated conversation!", "forgot-password-email-error": "There is some issue in sending the mail. Please contact your Administrator.", "ingestion-workflow-operation-error": "Error while {{operation}} ingestion workflow {{displayName}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossary/AddGlossaryPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossary/AddGlossaryPage.component.tsx index 751531832a6..90488e4dd61 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossary/AddGlossaryPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossary/AddGlossaryPage.component.tsx @@ -31,7 +31,6 @@ import { addGlossaries } from 'rest/glossaryAPI'; import { getIsErrorMatch } from 'utils/CommonUtils'; import { CreateGlossary } from '../../generated/api/data/createGlossary'; import { Operation } from '../../generated/entity/policies/policy'; -import jsonData from '../../jsons/en'; import { checkPermission } from '../../utils/PermissionsUtils'; import { getGlossaryPath } from '../../utils/RouterUtils'; import { getClassifications, getTaglist } from '../../utils/TagsUtils'; @@ -82,7 +81,9 @@ const AddGlossaryPage: FunctionComponent = () => { name: data.name, }) : (error as AxiosError), - jsonData['api-error-messages']['add-glossary-error'] + t('server.add-entity-error', { + entity: t('label.glossary'), + }) ); } finally { setIsLoading(false); @@ -97,11 +98,20 @@ const AddGlossaryPage: FunctionComponent = () => { const tagList = await getTaglist(res.data); setTagList(tagList); } else { - showErrorToast(jsonData['api-error-messages']['fetch-tags-error']); + showErrorToast( + t('server.entity-fetch-error', { + entity: t('label.tag-plural'), + }) + ); } }) .catch((err: AxiosError) => { - showErrorToast(err, jsonData['api-error-messages']['fetch-tags-error']); + showErrorToast( + err, + t('server.entity-fetch-error', { + entity: t('label.tag-plural'), + }) + ); }) .finally(() => { setIsTagLoading(false); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/AddIngestionPage/AddIngestionPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AddIngestionPage/AddIngestionPage.component.tsx index 349f4901859..cf8a09f3395 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/AddIngestionPage/AddIngestionPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/AddIngestionPage/AddIngestionPage.component.tsx @@ -45,7 +45,6 @@ import { CreateIngestionPipeline } from '../../generated/api/services/ingestionP import { PipelineType } from '../../generated/entity/services/ingestionPipelines/ingestionPipeline'; import { useAirflowStatus } from '../../hooks/useAirflowStatus'; import { DataObj } from '../../interface/service.interface'; -import jsonData from '../../jsons/en'; import { getEntityMissingError } from '../../utils/CommonUtils'; import { getBreadCrumbsArray, @@ -91,7 +90,11 @@ const AddIngestionPage = () => { if (resService) { setServiceData(resService as DataObj); } else { - showErrorToast(jsonData['api-error-messages']['fetch-service-error']); + showErrorToast( + t('server.entity-fetch-error', { + entity: t('label.service-detail-lowercase-plural'), + }) + ); } }) .catch((error: AxiosError) => { @@ -100,7 +103,9 @@ const AddIngestionPage = () => { } else { showErrorToast( error, - jsonData['api-error-messages']['fetch-service-error'] + t('server.entity-fetch-error', { + entity: t('label.service-detail-lowercase-plural'), + }) ); } }) @@ -124,7 +129,10 @@ const AddIngestionPage = () => { setShowIngestionButton(true); setIngestionAction(IngestionActionMessage.DEPLOYING_ERROR); showErrorToast( - err || jsonData['api-error-messages']['deploy-ingestion-error'] + err, + t('server.deploy-entity-error', { + entity: t('label.ingestion-workflow-lowercase'), + }) ); }) .finally(() => resolve()); @@ -142,7 +150,9 @@ const AddIngestionPage = () => { onIngestionDeploy(res.id).finally(() => resolve()); } else { showErrorToast( - jsonData['api-error-messages']['create-ingestion-error'] + t('server.create-entity-error', { + entity: t('label.ingestion-workflow'), + }) ); reject(); } @@ -163,18 +173,20 @@ const AddIngestionPage = () => { resolve(); showErrorToast( err, - jsonData['api-error-messages']['deploy-ingestion-error'] + t('server.deploy-entity-error', { + entity: t('label.ingestion-workflow'), + }) ); } else { - throw jsonData['api-error-messages'][ - 'unexpected-server-response' - ]; + throw t('server.unexpected-response'); } }) .catch(() => { showErrorToast( err, - jsonData['api-error-messages']['create-ingestion-error'] + t('server.create-entity-error', { + entity: t('label.ingestion-workflow'), + }) ); reject(); }); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/CustomPropertiesPageV1/CustomPropertiesPageV1.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/CustomPropertiesPageV1/CustomPropertiesPageV1.tsx index 6276e2682f5..221c8d120ac 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/CustomPropertiesPageV1/CustomPropertiesPageV1.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/CustomPropertiesPageV1/CustomPropertiesPageV1.tsx @@ -42,7 +42,6 @@ import { } from '../../constants/HelperTextUtil'; import { PAGE_HEADERS } from '../../constants/PageHeaders.constant'; import { Type } from '../../generated/entity/type'; -import jsonData from '../../jsons/en'; import { DEFAULT_ENTITY_PERMISSION } from '../../utils/PermissionsUtils'; import { showErrorToast } from '../../utils/ToastUtils'; import './CustomPropertiesPageV1.less'; @@ -193,7 +192,9 @@ const CustomEntityDetailV1 = () => { if (isError) { return ( - {jsonData['message']['no-custom-entity']} + {t('server.no-entity-data-available', { + entity: t('label.custom-entity'), + })} ); } diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/DataModelPage/DataModelPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/DataModelPage/DataModelPage.component.tsx index 00c44ebd43b..b1b10072ba3 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/DataModelPage/DataModelPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/DataModelPage/DataModelPage.component.tsx @@ -31,7 +31,6 @@ import { Post, Thread, ThreadType } from 'generated/entity/feed/thread'; import { Paging } from 'generated/type/paging'; import { LabelType, State, TagSource } from 'generated/type/tagLabel'; import { EntityFieldThreadCount } from 'interface/feed.interface'; -import jsonData from 'jsons/en'; import { isUndefined, omitBy } from 'lodash'; import { observer } from 'mobx-react'; import { EntityTags } from 'Models'; @@ -192,11 +191,16 @@ const DataModelsPage = () => { }); getEntityFeedCount(); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } }) .catch((err: AxiosError) => { - showErrorToast(err, jsonData['api-error-messages']['add-feed-error']); + showErrorToast( + err, + t('server.add-entity-error', { + entity: t('label.feed'), + }) + ); }); }; @@ -241,15 +245,15 @@ const DataModelsPage = () => { setEntityThread((pre) => [...pre, res]); getEntityFeedCount(); } else { - showErrorToast( - jsonData['api-error-messages']['unexpected-server-response'] - ); + showErrorToast(t('server.unexpected-response')); } }) .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['create-conversation-error'] + t('server.create-entity-error', { + entity: t('label.conversation-lowercase'), + }) ); }); }; diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/DatabaseSchemaPage/DatabaseSchemaPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/DatabaseSchemaPage/DatabaseSchemaPage.component.tsx index 136c8f570a9..2457bef6319 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/DatabaseSchemaPage/DatabaseSchemaPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/DatabaseSchemaPage/DatabaseSchemaPage.component.tsx @@ -95,7 +95,6 @@ import { Post, Thread } from '../../generated/entity/feed/thread'; import { Paging } from '../../generated/type/paging'; import { useInfiniteScroll } from '../../hooks/useInfiniteScroll'; import { EntityFieldThreadCount } from '../../interface/feed.interface'; -import jsonData from '../../jsons/en'; import { getPartialNameFromTableFQN } from '../../utils/CommonUtils'; import { databaseSchemaDetailsTabs, @@ -256,14 +255,11 @@ const DatabaseSchemaPage: FunctionComponent = () => { setFeedCount(res.totalCount); setEntityFieldThreadCount(res.counts); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } }) .catch((err: AxiosError) => { - showErrorToast( - err, - jsonData['api-error-messages']['fetch-entity-feed-count-error'] - ); + showErrorToast(err, t('server.entity-feed-fetch-error')); }); }; @@ -319,13 +315,15 @@ const DatabaseSchemaPage: FunctionComponent = () => { }, ]); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } }) .catch((err: AxiosError) => { const errMsg = getErrorText( err, - jsonData['api-error-messages']['fetch-databaseSchema-details-error'] + t('server.entity-fetch-error', { + entity: t('label.database-schema'), + }) ); setError(errMsg); showErrorToast(errMsg); @@ -402,7 +400,7 @@ const DatabaseSchemaPage: FunctionComponent = () => { setDescription(updatedHTML); getEntityFeedCount(); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } } catch (error) { showErrorToast(error as AxiosError); @@ -447,15 +445,15 @@ const DatabaseSchemaPage: FunctionComponent = () => { } else { reject(); - throw jsonData['api-error-messages'][ - 'unexpected-server-response' - ]; + throw t('server.unexpected-response'); } }) .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['update-databaseSchema-error'] + t('server.entity-updating-error', { + entity: t('label.database-schema'), + }) ); reject(); }); @@ -495,13 +493,15 @@ const DatabaseSchemaPage: FunctionComponent = () => { setPaging(pagingObj); setEntityThread((prevData) => [...prevData, ...data]); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } }) .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['fetch-entity-feed-error'] + t('server.entity-fetch-error', { + entity: t('label.feed-plural'), + }) ); }) .finally(() => setIsentityThreadLoading(false)); @@ -529,11 +529,16 @@ const DatabaseSchemaPage: FunctionComponent = () => { }); getEntityFeedCount(); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } }) .catch((err: AxiosError) => { - showErrorToast(err, jsonData['api-error-messages']['add-feed-error']); + showErrorToast( + err, + t('server.add-entity-error', { + entity: t('label.feed'), + }) + ); }); }; @@ -544,15 +549,15 @@ const DatabaseSchemaPage: FunctionComponent = () => { setEntityThread((pre) => [...pre, res]); getEntityFeedCount(); } else { - showErrorToast( - jsonData['api-error-messages']['unexpected-server-response'] - ); + showErrorToast(t('server.unexpected-response')); } }) .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['create-conversation-error'] + t('server.create-entity-error', { + entity: t('conversation-lowercase'), + }) ); }); }; diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/EditIngestionPage/EditIngestionPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/EditIngestionPage/EditIngestionPage.component.tsx index 69cc60ce9a9..1fc20a8e7d8 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/EditIngestionPage/EditIngestionPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/EditIngestionPage/EditIngestionPage.component.tsx @@ -49,7 +49,6 @@ import { } from '../../generated/entity/services/ingestionPipelines/ingestionPipeline'; import { useAirflowStatus } from '../../hooks/useAirflowStatus'; import { DataObj } from '../../interface/service.interface'; -import jsonData from '../../jsons/en'; import { getEntityMissingError } from '../../utils/CommonUtils'; import { getBreadCrumbsArray, @@ -100,7 +99,9 @@ const EditIngestionPage = () => { resolve(); } else { showErrorToast( - jsonData['api-error-messages']['fetch-service-error'] + t('server.entity-fetch-error', { + entity: t('label.service-detail-lowercase-plural'), + }) ); } }) @@ -108,8 +109,9 @@ const EditIngestionPage = () => { if (error.response?.status === 404) { setErrorMsg(getEntityMissingError(serviceCategory, serviceFQN)); } else { - const errTextService = - jsonData['api-error-messages']['fetch-service-error']; + const errTextService = t('server.entity-fetch-error', { + entity: t('label.service-detail-lowercase-plural'), + }); showErrorToast(error, errTextService); setErrorMsg(errTextService); } @@ -126,15 +128,16 @@ const EditIngestionPage = () => { setIngestionData(res); resolve(); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-error'); } }) .catch((error: AxiosError) => { if (error.response?.status === 404) { setErrorMsg(getEntityMissingError('Ingestion', ingestionFQN)); } else { - const errTextIngestion = - jsonData['api-error-messages']['fetch-ingestion-error']; + const errTextIngestion = t('server.entity-fetch-error', { + entity: t('label.ingestion-workflow'), + }); showErrorToast(error, errTextIngestion); setErrorMsg(errTextIngestion); } @@ -165,7 +168,10 @@ const EditIngestionPage = () => { setShowIngestionButton(true); setIngestionAction(IngestionActionMessage.DEPLOYING_ERROR); showErrorToast( - err || jsonData['api-error-messages']['deploy-ingestion-error'] + err, + t('server.deploy-entity-error', { + entity: t('label.ingestion-workflow'), + }) ); }) .finally(() => resolve()); @@ -206,13 +212,17 @@ const EditIngestionPage = () => { onIngestionDeploy(); resolve(); } else { - throw jsonData['api-error-messages']['update-ingestion-error']; + throw t('server.entity-updating-error', { + entity: t('label.ingestion-workflow-lowercase'), + }); } }) .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['update-ingestion-error'] + t('server.entity-updating-error', { + entity: t('label.ingestion-workflow-lowercase'), + }) ); reject(); }); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/Glossary/GlossaryPage/GlossaryPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/Glossary/GlossaryPage/GlossaryPage.component.tsx index 9ced9345a53..b78c18045d6 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/Glossary/GlossaryPage/GlossaryPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/Glossary/GlossaryPage/GlossaryPage.component.tsx @@ -30,7 +30,6 @@ import { compare } from 'fast-json-patch'; import { Glossary } from 'generated/entity/data/glossary'; import { GlossaryTerm } from 'generated/entity/data/glossaryTerm'; import { Operation } from 'generated/entity/policies/policy'; -import jsonData from 'jsons/en'; import React, { useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useHistory, useParams } from 'react-router-dom'; @@ -172,7 +171,9 @@ const GlossaryPage = () => { .then(() => { setDeleteStatus(LOADING_STATE.SUCCESS); showSuccessToast( - jsonData['api-success-messages']['delete-glossary-success'] + t('server.entity-deleted-successfully', { + entity: t('label.glossary'), + }) ); setIsLoading(true); history.push(getGlossaryPath()); @@ -181,7 +182,9 @@ const GlossaryPage = () => { .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['delete-glossary-error'] + t('server.delete-entity-error', { + entity: t('label.glossary'), + }) ); }) .finally(() => setDeleteStatus(LOADING_STATE.INITIAL)); @@ -201,7 +204,9 @@ const GlossaryPage = () => { fetchGlossaryList(); } } else { - throw jsonData['api-error-messages']['update-glossary-term-error']; + throw t('server.entity-updating-error', { + entity: t('label.glossary-term'), + }); } } catch (error) { showErrorToast(error as AxiosError); @@ -214,7 +219,9 @@ const GlossaryPage = () => { .then(() => { setDeleteStatus(LOADING_STATE.SUCCESS); showSuccessToast( - jsonData['api-success-messages']['delete-glossary-term-success'] + t('server.entity-deleted-successfully', { + entity: t('label.glossary-term'), + }) ); let fqn; if (glossaryFqn) { @@ -229,7 +236,9 @@ const GlossaryPage = () => { .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['delete-glossary-term-error'] + t('server.delete-entity-error', { + entity: t('label.glossary-term'), + }) ); }) .finally(() => setDeleteStatus(LOADING_STATE.INITIAL)); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/ProfilerDashboardPage/ProfilerDashboardPage.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/ProfilerDashboardPage/ProfilerDashboardPage.tsx index cc2015c2790..ce5b2fddf37 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/ProfilerDashboardPage/ProfilerDashboardPage.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/ProfilerDashboardPage/ProfilerDashboardPage.tsx @@ -40,7 +40,6 @@ import { ProfilerDashboardType } from '../../enums/table.enum'; import { ColumnProfile, Table } from '../../generated/entity/data/table'; import { TestCase } from '../../generated/tests/testCase'; import { Include } from '../../generated/type/include'; -import jsonData from '../../jsons/en'; import { getNameFromFQN, getTableFQNFromColumnFQN, @@ -82,7 +81,9 @@ const ProfilerDashboardPage = () => { setTablePermissions(tablePermission); } catch (error) { showErrorToast( - jsonData['api-error-messages']['fetch-entity-permissions-error'] + t('server.fetch-entity-permissions-error', { + entity: ResourceEntity.TABLE, + }) ); } }; @@ -116,10 +117,7 @@ const ProfilerDashboardPage = () => { }); setTestCases(data); } catch (error) { - showErrorToast( - error as AxiosError, - jsonData['api-error-messages']['fetch-column-test-error'] - ); + showErrorToast(error as AxiosError, t('server.column-fetch-error')); } finally { setIsLoading(false); setIsTestCaseLoading(false); @@ -146,7 +144,9 @@ const ProfilerDashboardPage = () => { } catch (error) { showErrorToast( error as AxiosError, - jsonData['api-error-messages']['fetch-table-details-error'] + t('server.entity-fetch-error', { + entity: t('label.table-lowercase'), + }) ); setIsLoading(false); setError(true); @@ -162,7 +162,9 @@ const ProfilerDashboardPage = () => { } catch (error) { showErrorToast( error as AxiosError, - jsonData['api-error-messages']['update-entity-error'] + t('server.entity-updating-error', { + entity: updatedTable.name, + }) ); } }; diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/database-details/index.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/database-details/index.tsx index 779d6184f04..52090ccec76 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/database-details/index.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/database-details/index.tsx @@ -93,7 +93,6 @@ import { UsageDetails } from '../../generated/type/entityUsage'; import { Paging } from '../../generated/type/paging'; import { useInfiniteScroll } from '../../hooks/useInfiniteScroll'; import { EntityFieldThreadCount } from '../../interface/feed.interface'; -import jsonData from '../../jsons/en'; import { databaseDetailsTabs, getCurrentDatabaseDetailsTab, @@ -256,14 +255,16 @@ const DatabaseDetails: FunctionComponent = () => { setSchemaData([]); setSchemaPaging(pagingObject); - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } resolve(); }) .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['fetch-database-schemas-error'] + t('server.entity-fetch-error', { + entity: t('label.database schema'), + }) ); reject(); @@ -345,7 +346,9 @@ const DatabaseDetails: FunctionComponent = () => { .catch((err: AxiosError) => { const errMsg = getErrorText( err, - jsonData['api-error-messages']['fetch-database-details-error'] + t('server.entity-fetch-error', { + entity: t('label.database'), + }) ); setError(errMsg); showErrorToast(errMsg); @@ -432,8 +435,10 @@ const DatabaseDetails: FunctionComponent = () => { setDatabase(res); } catch (error) { showErrorToast( - error, - jsonData['api-error-messages']['update-database-error'] + error as AxiosError, + t('server.entity-updating-error', { + entity: t('label.database'), + }) ); } }; @@ -459,13 +464,15 @@ const DatabaseDetails: FunctionComponent = () => { setPaging(pagingObj); setEntityThread((prevData) => [...prevData, ...data]); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } }) .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['fetch-entity-feed-error'] + t('server.entity-fetch-error', { + entity: t('label.feed-plural'), + }) ); }) .finally(() => setIsentityThreadLoading(false)); @@ -493,11 +500,16 @@ const DatabaseDetails: FunctionComponent = () => { }); getEntityFeedCount(); } else { - throw jsonData['api-error-messages']['unexpected-server-response']; + throw t('server.unexpected-response'); } }) .catch((err: AxiosError) => { - showErrorToast(err, jsonData['api-error-messages']['add-feed-error']); + showErrorToast( + err, + t('server.add-entity-error', { + entity: t('label.feed'), + }) + ); }); }; @@ -508,15 +520,15 @@ const DatabaseDetails: FunctionComponent = () => { setEntityThread((pre) => [...pre, res]); getEntityFeedCount(); } else { - showErrorToast( - jsonData['api-error-messages']['unexpected-server-response'] - ); + showErrorToast(t('server.unexpected-response')); } }) .catch((err: AxiosError) => { showErrorToast( err, - jsonData['api-error-messages']['create-conversation-error'] + t('server.create-entity-error', { + entity: t('label.conversation-lowercase'), + }) ); }); }; diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/DBTConfigFormUtil.ts b/openmetadata-ui/src/main/resources/ui/src/utils/DBTConfigFormUtil.ts index abbbe32f5e7..ba7a02182fc 100644 --- a/openmetadata-ui/src/main/resources/ui/src/utils/DBTConfigFormUtil.ts +++ b/openmetadata-ui/src/main/resources/ui/src/utils/DBTConfigFormUtil.ts @@ -37,6 +37,7 @@ import { DBT_SOURCES, GCS_CONFIG, } from 'components/common/DBTConfigFormBuilder/DBTFormEnum'; +import i18next from 'i18next'; import { isEmpty, isNil, isString } from 'lodash'; import { FormValidationRulesType } from '../enums/form.enum'; import { @@ -45,7 +46,6 @@ import { SCredentials, } from '../generated/metadataIngestion/dbtPipeline'; import { FormValidationRules } from '../interface/genericForm.interface'; -import jsonData from '../jsons/en'; import { isValidEmail, isValidUrl } from './CommonUtils'; export const validateDbtCloudConfig = ( @@ -59,9 +59,9 @@ export const validateDbtCloudConfig = ( >) { if (isEmpty(data[field])) { isValid = false; - errors[ - field - ] = `${requiredFields[field]} ${jsonData['form-error-messages']['is-required']}`; + errors[field] = i18next.t('message.field-text-is-required', { + fieldText: requiredFields[field], + }); } } @@ -79,9 +79,9 @@ export const validateDbtLocalConfig = ( >) { if (isEmpty(data[field])) { isValid = false; - errors[ - field - ] = `${requiredFields[field]} ${jsonData['form-error-messages']['is-required']}`; + errors[field] = i18next.t('message.field-text-is-required', { + fieldText: requiredFields[field], + }); } } @@ -99,9 +99,9 @@ export const validateDbtHttpConfig = ( >) { if (isEmpty(data[field])) { isValid = false; - errors[ - field - ] = `${requiredFields[field]} ${jsonData['form-error-messages']['is-required']}`; + errors[field] = i18next.t('message.field-text-is-required', { + fieldText: requiredFields[field], + }); } } @@ -119,9 +119,9 @@ export const validateDbtS3Config = ( >) { if (isEmpty(data[field])) { isValid = false; - errors[ - field - ] = `${requiredFields[field]} ${jsonData['form-error-messages']['is-required']}`; + errors[field] = i18next.t('message.field-text-is-required', { + fieldText: requiredFields[field], + }); } } @@ -145,9 +145,9 @@ function getInvalidEmailErrors< for (const field of ruleFields[rule]) { if (data[field] && !isValidEmail(data[field] as unknown as string)) { isValid = false; - errors[field] = jsonData['form-error-messages'][ - 'invalid-email' - ] as Errors[keyof Type]; + errors[field] = i18next.t('label.field-invalid', { + field: i18next.t('label.email'), + }); } } @@ -171,9 +171,9 @@ function getInvalidUrlErrors< for (const field of ruleFields[rule]) { if (data[field] && !isValidUrl(data[field] as unknown as string)) { isValid = false; - errors[field] = jsonData['form-error-messages'][ - 'invalid-url' - ] as Errors[keyof Type]; + errors[field] = i18next.t('label.field-invalid', { + field: i18next.t('label.url-uppercase'), + }); } }