Localize hard-coded texts (#2044)

* feat(lang): localize some views

* feat(lang): an attempt at localizing vuetify (WIP)

* feat(lang): localized some more screens

* feat(lang): localized some more screens again

* feat(lang): hack to localize vuetify

* feat(lang): localize data management pages

* fix linting errors

---------

Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
This commit is contained in:
sephrat
2023-01-29 02:39:51 +01:00
committed by GitHub
parent 754d4c3937
commit f8b8680b45
55 changed files with 695 additions and 393 deletions

View File

@@ -5,6 +5,17 @@
"recipe": {
"unique-name-error": "Recipe names must be unique"
},
"mealplan": {
"no-recipes-match-your-rules": "No recipes match your rules"
},
"user": {
"user-updated": "User updated",
"password-updated": "Password updated",
"invalid-current-password": "Invalid current password"
},
"group": {
"report-deleted": "Report deleted."
},
"exceptions": {
"permission_denied": "You do not have permission to perform this action",
"no-entry-found": "The requested resource was not found",

View File

@@ -90,7 +90,7 @@ class BaseUserController(_BaseController):
registered = {
**mealie_registered_exceptions(self.translator),
}
return registered.get(ex, "An unexpected error occurred.")
return registered.get(ex, self.t("generic.server-error"))
@property
def group_id(self) -> UUID4:

View File

@@ -30,7 +30,7 @@ class RecipeCommentRoutes(BaseUserController):
@property
def mixins(self) -> HttpRepo:
return HttpRepo(self.repo, self.logger, self.registered_exceptions, "An unexpected error occurred.")
return HttpRepo(self.repo, self.logger, self.registered_exceptions, self.t("generic.server-error"))
def _check_comment_belongs_to_user(self, item_id: UUID4) -> None:
comment = self.repo.get_one(item_id)

View File

@@ -31,7 +31,7 @@ class GroupCookbookController(BaseCrudController):
registered = {
**mealie_registered_exceptions(self.translator),
}
return registered.get(ex, "An unexpected error occurred.")
return registered.get(ex, self.t("generic.server-error"))
@cached_property
def mixins(self):

View File

@@ -49,7 +49,7 @@ class GroupEventsNotifierController(BaseUserController):
@property
def mixins(self) -> HttpRepo:
return HttpRepo(self.repo, self.logger, self.registered_exceptions, "An unexpected error occurred.")
return HttpRepo(self.repo, self.logger, self.registered_exceptions, self.t("generic.server-error"))
@router.get("", response_model=GroupEventPagination)
def get_all(self, q: PaginationQuery = Depends(PaginationQuery)):

View File

@@ -22,7 +22,7 @@ class GroupReportsController(BaseUserController):
def registered_exceptions(self, ex: type[Exception]) -> str:
return {
**mealie_registered_exceptions(self.translator),
}.get(ex, "An unexpected error occurred.")
}.get(ex, self.t("generic.server-error"))
@cached_property
def mixins(self):
@@ -44,6 +44,6 @@ class GroupReportsController(BaseUserController):
def delete_one(self, item_id: UUID4):
try:
self.mixins.delete_one(item_id) # type: ignore
return SuccessResponse.respond("Report deleted.")
return SuccessResponse.respond(self.t("report-deleted"))
except Exception as ex:
raise HTTPException(500, ErrorResponse.respond("Failed to delete report")) from ex

View File

@@ -35,7 +35,7 @@ class MultiPurposeLabelsController(BaseUserController):
@property
def mixins(self) -> HttpRepo:
return HttpRepo(self.repo, self.logger, self.registered_exceptions, "An unexpected error occurred.")
return HttpRepo(self.repo, self.logger, self.registered_exceptions, self.t("generic.server-error"))
@router.get("", response_model=MultiPurposeLabelPagination)
def get_all(self, q: PaginationQuery = Depends(PaginationQuery)):

View File

@@ -30,7 +30,7 @@ class GroupMealplanController(BaseCrudController):
registered = {
**mealie_registered_exceptions(self.translator),
}
return registered.get(ex, "An unexpected error occurred.")
return registered.get(ex, self.t("generic.server-error"))
@cached_property
def mixins(self):
@@ -87,7 +87,7 @@ class GroupMealplanController(BaseCrudController):
)
except IndexError as e:
raise HTTPException(
status_code=404, detail=ErrorResponse.respond(message="No recipes match your rules")
status_code=404, detail=ErrorResponse.respond(message=self.t("mealplan.no-recipes-match-your-rules"))
) from e
@router.get("", response_model=PlanEntryPagination)

View File

@@ -158,7 +158,7 @@ class ShoppingListController(BaseCrudController):
@cached_property
def mixins(self) -> HttpRepo[ShoppingListCreate, ShoppingListOut, ShoppingListSave]:
return HttpRepo(self.repo, self.logger, self.registered_exceptions, "An unexpected error occurred.")
return HttpRepo(self.repo, self.logger, self.registered_exceptions, self.t("generic.server-error"))
@router.get("", response_model=ShoppingListPagination)
def get_all(self, q: PaginationQuery = Depends(PaginationQuery)):

View File

@@ -62,7 +62,9 @@ class UserController(BaseUserController):
def update_password(self, password_change: ChangePassword):
"""Resets the User Password"""
if not verify_password(password_change.current_password, self.user.password):
raise HTTPException(status.HTTP_400_BAD_REQUEST, ErrorResponse.respond("Invalid current password"))
raise HTTPException(
status.HTTP_400_BAD_REQUEST, ErrorResponse.respond(self.t("user.invalid-current-password"))
)
self.user.password = hash_password(password_change.new_password)
try:
@@ -73,7 +75,7 @@ class UserController(BaseUserController):
ErrorResponse.respond("Failed to update password"),
) from e
return SuccessResponse.respond("Password updated")
return SuccessResponse.respond(self.t("user.password-updated"))
@user_router.put("/{item_id}")
def update_user(self, item_id: UUID4, new_data: UserBase):
@@ -99,4 +101,4 @@ class UserController(BaseUserController):
ErrorResponse.respond("Failed to update user"),
) from e
return SuccessResponse.respond("User updated")
return SuccessResponse.respond(self.t("user.user-updated"))