diff --git a/public/locales/en-US/common.json b/public/locales/en-US/common.json index 4c0504a..235b521 100644 --- a/public/locales/en-US/common.json +++ b/public/locales/en-US/common.json @@ -43,6 +43,8 @@ } }, "messages": { + "successMessage": "Success!", + "deletedObject": "Deleted successfully!", "errors": { "unknown": "An unknown error occurred.", "copyFailed": "Copying to clipboard did not work. Please copy the text manually." @@ -68,7 +70,10 @@ "experimentalFeatureExplanation": "This is an experimental feature.", "saveLabel": "Save", "resetLabel": "Reset", - "loading": "Loading..." + "loading": "Loading...", + "actionNotUndoable": "This action cannot be undone!", + "appError": "We are sorry but there was an error. Please try again later.", + "emptyValue": "-" }, "noSearchResults": { "title": "Nothing found", diff --git a/public/locales/en-US/components.json b/public/locales/en-US/components.json index c735d6d..c92440a 100644 --- a/public/locales/en-US/components.json +++ b/public/locales/en-US/components.json @@ -29,5 +29,13 @@ "submit": "Add" } } + }, + "SelectField": { + "values": { + "true": "Yes", + "false": "No" + }, + "valueSelection": "<{{ value }}>", + "valueSelectionIsDefault": "Default <{{ value }}>" } } diff --git a/src/components/widgets/DeleteAPIButton.tsx b/src/components/widgets/DeleteAPIButton.tsx index 9ea0038..5a8e30b 100644 --- a/src/components/widgets/DeleteAPIButton.tsx +++ b/src/components/widgets/DeleteAPIButton.tsx @@ -35,14 +35,14 @@ export default function DeleteAPIButton({ description, navigateTo = "/aliases", }: DeleteAPIButtonProps): ReactElement { - const {t} = useTranslation() + const {t} = useTranslation("common") const {showError, showSuccess} = useErrorSuccessSnacks() const navigate = useNavigate() const {mutate} = useMutation(onDelete, { onError: showError, onSuccess: () => { - showSuccess(successMessage || t("general.deletedSuccessfully")) + showSuccess(successMessage || t("messages.deletedObject")) navigate(navigateTo) }, }) diff --git a/src/components/widgets/ErrorPage.tsx b/src/components/widgets/ErrorPage.tsx index ee66ff3..0459576 100644 --- a/src/components/widgets/ErrorPage.tsx +++ b/src/components/widgets/ErrorPage.tsx @@ -5,7 +5,7 @@ import {IoSad} from "react-icons/io5" import {Grid, Typography} from "@mui/material" export default function ErrorPage(): ReactElement { - const {t} = useTranslation() + const {t} = useTranslation("common") return ( diff --git a/src/components/widgets/LoadingPage.tsx b/src/components/widgets/LoadingPage.tsx index af8b9b2..63b6a90 100644 --- a/src/components/widgets/LoadingPage.tsx +++ b/src/components/widgets/LoadingPage.tsx @@ -6,7 +6,7 @@ import {Grid, Typography} from "@mui/material" import {ReactComponent as Logo} from "../../../public/logo.svg" export default function LoadingPage(): ReactElement { - const {t} = useTranslation() + const {t} = useTranslation("common") return ( ): ReactElement { - const {t} = useTranslation() + const {t} = useTranslation("common") const $severity = useRef() const $message = useRef() @@ -60,12 +60,12 @@ export default function MutationStatusSnackbar< return ( errorMessage || (mutation.error.response?.data as any).detail || - t("general.defaultError") + t("messages.errors.unknown") ) } if (mutation.isSuccess) { - return successMessage ?? mutation.data?.detail ?? t("general.defaultSuccess") + return successMessage ?? mutation.data?.detail ?? t("messages.successMessage") } })() } diff --git a/src/components/widgets/SimpleOverlayInformation.tsx b/src/components/widgets/SimpleOverlayInformation.tsx index 762bdf4..db08487 100644 --- a/src/components/widgets/SimpleOverlayInformation.tsx +++ b/src/components/widgets/SimpleOverlayInformation.tsx @@ -16,7 +16,7 @@ export default function SimpleOverlayInformation({ icon, children, }: SimpleOverlayInformationProps): ReactElement { - const {t} = useTranslation() + const {t} = useTranslation("common") const emptyTextValue = emptyText ?? t("general.emptyValue") return ( diff --git a/src/hooks/use-error-success-snacks.ts b/src/hooks/use-error-success-snacks.ts index 11e301f..d682180 100644 --- a/src/hooks/use-error-success-snacks.ts +++ b/src/hooks/use-error-success-snacks.ts @@ -12,7 +12,7 @@ export interface UseErrorSuccessSnacksResult { } export default function useErrorSuccessSnacks(): UseErrorSuccessSnacksResult { - const {t} = useTranslation() + const {t} = useTranslation("common") const {enqueueSnackbar, closeSnackbar} = useSnackbar() const $errorSnackbarKey = useRef(null) @@ -40,7 +40,7 @@ export default function useErrorSuccessSnacks(): UseErrorSuccessSnacksResult { } catch (e) {} } - $errorSnackbarKey.current = enqueueSnackbar(message || t("general.defaultError"), { + $errorSnackbarKey.current = enqueueSnackbar(message || t("messages.errors.unknown"), { variant: "error", autoHideDuration: ERROR_SNACKBAR_SHOW_DURATION, }) diff --git a/src/route-widgets/AliasDetailRoute/SelectField.tsx b/src/route-widgets/AliasDetailRoute/SelectField.tsx index 44d5336..beae57f 100644 --- a/src/route-widgets/AliasDetailRoute/SelectField.tsx +++ b/src/route-widgets/AliasDetailRoute/SelectField.tsx @@ -30,10 +30,10 @@ export default function SelectField({ valueTextMap: parentValueTextMap, }: SelectFieldProps): ReactElement { const user = useUser() - const {t} = useTranslation() + const {t} = useTranslation("components") const BOOLEAN_SELECT_TEXT_MAP: Record = { - true: "general.booleanSelection.true", - false: "general.booleanSelection.false", + true: "SelectField.values.true", + false: "SelectField.values.false", } const valueTextMap = parentValueTextMap ?? BOOLEAN_SELECT_TEXT_MAP @@ -76,7 +76,7 @@ export default function SelectField({ renderValue={value => value === "null" ? ( - {t("general.defaultValueSelectionRaw", { + {t("SelectField.valueSelection", { value: defaultValueText, })} @@ -87,7 +87,7 @@ export default function SelectField({ > - {t("general.defaultValueSelection", { + {t("SelectField.valueSelectionIsDefault", { value: defaultValueText, })}