diff --git a/docs/docs/getting-started/install.md b/docs/docs/getting-started/install.md
index 9be8f56af..37fc56f99 100644
--- a/docs/docs/getting-started/install.md
+++ b/docs/docs/getting-started/install.md
@@ -10,6 +10,12 @@ To deploy docker on your local network it is highly recommended to use docker to
- linux/arm/v7
- linux/arm64
+!!! tip "Fix for linux/arm/v7 container on Raspberry Pi 4: 'Fatal Python error: init_interp_main: can't initialize time'"
+ Update the host RP4 using [instructions](linuxserver/docker-papermerge#4 (comment)), summarized here:
+```shell
+ wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1_armhf.deb
+ sudo dpkg -i libseccomp2_2.5.1-1_armhf.deb
+```
## Quick Start - Docker CLI
Deployment with the Docker CLI can be done with `docker run` and specify the database type, in this case `sqlite`, setting the exposed port `9925`, mounting the current directory, and pull the latest image. After the image is up an running you can navigate to http://your.ip.addres:9925 and you'll should see mealie up and running!
diff --git a/frontend/src/components/Admin/General/HomePageSettings.vue b/frontend/src/components/Admin/General/HomePageSettings.vue
index 91aec8a57..58eb945af 100644
--- a/frontend/src/components/Admin/General/HomePageSettings.vue
+++ b/frontend/src/components/Admin/General/HomePageSettings.vue
@@ -3,9 +3,6 @@
{{ $t("settings.homepage.home-page") }}
-
-
-
+
+ {{$t('settings.locale-settings')}}
+
+
+
+
+
+
+
+
+
@@ -145,6 +161,7 @@ export default {
return {
settings: {
language: "en",
+ firstDayOfWeek: 0,
showRecent: null,
cardsPerSection: null,
categories: [],
@@ -158,11 +175,42 @@ export default {
allCategories() {
return this.$store.getters.getAllCategories;
},
+ allDays() {
+ return [
+ {
+ name: this.$t('general.sunday'),
+ value: 0,
+ },
+ {
+ name: this.$t('general.monday'),
+ value: 1,
+ },
+ {
+ name: this.$t('general.tuesday'),
+ value: 2,
+ },
+ {
+ name: this.$t('general.wednesday'),
+ value: 3,
+ },
+ {
+ name: this.$t('general.thursday'),
+ value: 4,
+ },
+ {
+ name: this.$t('general.friday'),
+ value: 5,
+ },
+ {
+ name: this.$t('general.saturday'),
+ value: 6,
+ }
+ ];
+ },
},
methods: {
writeLang(val) {
- this.$store.commit("setLang", val);
this.settings.language = val;
},
deleteCategoryfromDatabase(category) {
@@ -176,6 +224,9 @@ export default {
},
async saveSettings() {
await api.siteSettings.update(this.settings);
+ this.$store.dispatch("setLang", {
+ currentVueComponent: this,
+ language: this.settings.language });
this.getOptions();
},
},
diff --git a/frontend/src/components/MealPlan/MealPlanNew.vue b/frontend/src/components/MealPlan/MealPlanNew.vue
index 278efd3fc..42f00116c 100644
--- a/frontend/src/components/MealPlan/MealPlanNew.vue
+++ b/frontend/src/components/MealPlan/MealPlanNew.vue
@@ -31,11 +31,11 @@
v-on="on"
>
-
+ />
@@ -59,11 +59,11 @@
v-on="on"
>
-
+ />
@@ -87,12 +87,14 @@
+
+
\ No newline at end of file
diff --git a/frontend/src/components/UI/LanguageMenu.vue b/frontend/src/components/UI/LanguageMenu.vue
index 6038bbc37..4be3a31dd 100644
--- a/frontend/src/components/UI/LanguageMenu.vue
+++ b/frontend/src/components/UI/LanguageMenu.vue
@@ -47,7 +47,7 @@ export default {
items: [
{
name: "English",
- value: "en",
+ value: "en-US",
},
],
};
@@ -72,7 +72,9 @@ export default {
if (this.siteSettings) {
this.$emit(SELECT_EVENT, selectedLanguage);
} else {
- this.$store.commit("setLang", selectedLanguage);
+ this.$store.dispatch("setLang", {
+ currentVueComponent: this,
+ language: selectedLanguage });
}
},
},
diff --git a/frontend/src/locales/messages/af-ZA.json b/frontend/src/locales/messages/af-ZA.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/af-ZA.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/ar-SA.json b/frontend/src/locales/messages/ar-SA.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/ar-SA.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/ca-ES.json b/frontend/src/locales/messages/ca-ES.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/ca-ES.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/cs-CZ.json b/frontend/src/locales/messages/cs-CZ.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/cs-CZ.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/da-DK.json b/frontend/src/locales/messages/da-DK.json
index ad4c080a4..fb6320832 100644
--- a/frontend/src/locales/messages/da-DK.json
+++ b/frontend/src/locales/messages/da-DK.json
@@ -6,7 +6,7 @@
"new-recipe": {
"from-url": "Fra URL",
"recipe-url": "URL på opskrift",
- "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "url-form-hint": "Kopiér og indsæt et link fra din foretrukne opskrifts hjemmeside",
"error-message": "Der opstod en fejl under indlæsning af opskriften. Tjek loggen og debug/last_recipe.json for at fejlsøge problemet.",
"bulk-add": "Bulk Tilføj",
"paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Indsæt dine opskriftsdata. \nHver linje behandles som et element på en liste"
@@ -31,30 +31,37 @@
"enabled": "Aktiveret",
"download": "Hent",
"import": "Importere",
- "options": "Options",
- "templates": "Templates",
- "recipes": "Recipes",
- "themes": "Themes",
- "confirm": "Confirm",
- "sort": "Sort",
- "recent": "Recent",
- "sort-alphabetically": "A-Z",
- "reset": "Reset",
- "filter": "Filter",
- "yes": "Yes",
- "no": "No",
+ "options": "Indstillinger",
+ "templates": "Skabeloner",
+ "recipes": "Opskrifter",
+ "themes": "Temaer",
+ "confirm": "Bekræft",
+ "sort": "Sorter",
+ "recent": "Seneste",
+ "sort-alphabetically": "A-Å",
+ "reset": "Nulstil",
+ "filter": "Filtrer",
+ "yes": "Ja",
+ "no": "Nej",
"token": "Token",
- "field-required": "Field Required",
- "apply": "Apply",
+ "field-required": "Felt påkrævet",
+ "apply": "Anvend",
"current-parenthesis": "(Current)",
- "users": "Users",
- "groups": "Groups",
- "about": "About"
+ "users": "Brugere",
+ "groups": "Grupper",
+ "sunday": "Søndag",
+ "monday": "Mandag",
+ "tuesday": "Tirsdag",
+ "wednesday": "Onsdag",
+ "thursday": "Torsdag",
+ "friday": "Fredag",
+ "saturday": "Lørdag",
+ "about": "Om"
},
"page": {
- "home-page": "Home Page",
- "all-recipes": "All Recipes",
- "recent": "Recent"
+ "home-page": "Startside",
+ "all-recipes": "Alle Opskrifter",
+ "recent": "Seneste"
},
"user": {
"stay-logged-in": "Forbliv logget ind",
@@ -62,25 +69,25 @@
"password": "Adgangskode",
"sign-in": "Log ind",
"sign-up": "Opret bruger",
- "logout": "Logout",
- "full-name": "Full Name",
- "user-group": "User Group",
- "user-password": "User Password",
- "admin": "Admin",
- "user-id": "User ID",
- "user-id-with-value": "User ID: {id}",
- "group": "Group",
- "new-user": "New User",
- "edit-user": "Edit User",
- "create-user": "Create User",
- "confirm-user-deletion": "Confirm User Deletion",
- "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
- "confirm-group-deletion": "Confirm Group Deletion",
- "total-users": "Total Users",
- "total-mealplans": "Total MealPlans",
- "webhooks-enabled": "Webhooks Enabled",
- "webhook-time": "Webhook Time",
- "create-group": "Create Group",
+ "logout": "Log ud",
+ "full-name": "Fulde navn",
+ "user-group": "Brugergruppe",
+ "user-password": "Adgangskode",
+ "admin": "Administrator",
+ "user-id": "Bruger ID",
+ "user-id-with-value": "Bruger ID: {id}",
+ "group": "Gruppe",
+ "new-user": "Ny bruger",
+ "edit-user": "Rediger bruger",
+ "create-user": "Opret bruger",
+ "confirm-user-deletion": "Bekræft Sletning Af Bruger",
+ "are-you-sure-you-want-to-delete-the-user": "Er du sikker på, at du vil slette brugeren {activeName} med ID: {activeId}?",
+ "confirm-group-deletion": "Bekræft Sletning Af Gruppe",
+ "total-users": "Antal brugere",
+ "total-mealplans": "Antal Madplaner",
+ "webhooks-enabled": "Webhooks Aktiveret",
+ "webhook-time": "Webhook Tid",
+ "create-group": "Opret Gruppe",
"sign-up-links": "Sign Up Links",
"create-link": "Create Link",
"link-name": "Link Name",
@@ -226,6 +233,8 @@
"manage-users": "Manage Users",
"migrations": "Migrations",
"profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
"custom-pages": "Custom Pages",
"new-page": "New Page",
"edit-page": "Edit Page",
diff --git a/frontend/src/locales/messages/de-DE.json b/frontend/src/locales/messages/de-DE.json
index 6a1207763..a45e68479 100644
--- a/frontend/src/locales/messages/de-DE.json
+++ b/frontend/src/locales/messages/de-DE.json
@@ -49,6 +49,13 @@
"current-parenthesis": "(Neueste)",
"users": "Benutzer",
"groups": "Gruppen",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
"about": "Über"
},
"page": {
@@ -226,6 +233,8 @@
"manage-users": "Benutzer verwalten",
"migrations": "Migrationen",
"profile": "Profil",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
"custom-pages": "Benutzerdefinierte Seiten",
"new-page": "Neue Seite",
"edit-page": "Seite bearbeiten",
diff --git a/frontend/src/locales/messages/el-GR.json b/frontend/src/locales/messages/el-GR.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/el-GR.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/en-US.json b/frontend/src/locales/messages/en-US.json
index 4bf311d2a..9a63052c5 100644
--- a/frontend/src/locales/messages/en-US.json
+++ b/frontend/src/locales/messages/en-US.json
@@ -49,6 +49,13 @@
"current-parenthesis": "(Current)",
"users": "Users",
"groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
"about": "About"
},
"page": {
@@ -226,6 +233,8 @@
"manage-users": "Manage Users",
"migrations": "Migrations",
"profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
"custom-pages": "Custom Pages",
"new-page": "New Page",
"edit-page": "Edit Page",
diff --git a/frontend/src/locales/messages/es-ES.json b/frontend/src/locales/messages/es-ES.json
new file mode 100644
index 000000000..bb7097a44
--- /dev/null
+++ b/frontend/src/locales/messages/es-ES.json
@@ -0,0 +1,249 @@
+{
+ "404": {
+ "page-not-found": "Página no encontrada",
+ "take-me-home": "Volver a inicio"
+ },
+ "new-recipe": {
+ "from-url": "Importar una receta",
+ "recipe-url": "URL de la receta",
+ "url-form-hint": "Copia y pega un enlace de tu página de recetas favorita",
+ "error-message": "Parece que ha habido un error al analizar el enlace. Mira los logs y depura/última_receta.json para ver qué ha ido mal",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Subir",
+ "submit": "Enviar",
+ "name": "Nombre",
+ "settings": "Ajustes",
+ "close": "Cerrar",
+ "save": "Guardar",
+ "image-file": "Imagen",
+ "update": "Actualizar",
+ "edit": "Editar",
+ "delete": "Borrar",
+ "select": "Seleccionar",
+ "random": "Aleatorio",
+ "new": "Nuevo",
+ "create": "Crear",
+ "cancel": "Cancelar",
+ "ok": "OK",
+ "enabled": "Activado",
+ "download": "Descargar",
+ "import": "Importar",
+ "options": "Opciones",
+ "templates": "Plantillas",
+ "recipes": "Recetas",
+ "themes": "Temas",
+ "confirm": "Confirmar",
+ "sort": "Ordenar",
+ "recent": "Recientes",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reiniciar",
+ "filter": "Filtrar",
+ "yes": "Sí",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Campo requerido",
+ "apply": "Aplicar",
+ "current-parenthesis": "(Actual)",
+ "users": "Usuarios",
+ "groups": "Grupos",
+ "about": "Sobre"
+ },
+ "page": {
+ "home-page": "Página de inicio",
+ "all-recipes": "Todas las recetas",
+ "recent": "Recientes"
+ },
+ "user": {
+ "stay-logged-in": "¿Permanecer conectado?",
+ "email": "Email",
+ "password": "Contraseña",
+ "sign-in": "Iniciar sesión",
+ "sign-up": "Crear una cuenta",
+ "logout": "Cerrar sesión",
+ "full-name": "Nombre",
+ "user-group": "Grupo de usuario",
+ "user-password": "Contraseña",
+ "admin": "Admin",
+ "user-id": "ID de usuario",
+ "user-id-with-value": "ID de usuario: {id}",
+ "group": "Grupo",
+ "new-user": "Nuevo usuario",
+ "edit-user": "Editar usuario",
+ "create-user": "Crear usuario",
+ "confirm-user-deletion": "Confirmar eliminación de usuario",
+ "are-you-sure-you-want-to-delete-the-user": "¿Seguro que quieres borrar el usuario {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirmar eliminación de grupo",
+ "total-users": "Usuarios totales",
+ "total-mealplans": "Planes de comida totales",
+ "webhooks-enabled": "Webhooks activados",
+ "webhook-time": "Webhook hora",
+ "create-group": "Crear grupo",
+ "sign-up-links": "Enlaces de invitación",
+ "create-link": "Crear enlace",
+ "link-name": "Nombre de enlace",
+ "group-id-with-value": "ID de grupo: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "¿Seguro que quieres eliminar {groupName}?",
+ "group-name": "Nombre del grupo",
+ "confirm-link-deletion": "Confirmar borrado de enlace",
+ "are-you-sure-you-want-to-delete-the-link": "¿Seguro que quieres borrar el enlace {link}?",
+ "link-id": "ID del enlace",
+ "users": "Usuarios",
+ "groups": "Grupos",
+ "could-not-validate-credentials": "No se han podido validar los credenciales",
+ "login": "Iniciar sesión",
+ "groups-can-only-be-set-by-administrators": "Los grupos solo los pueden poner los administradores",
+ "upload-photo": "Subir foto",
+ "reset-password": "Reiniciar la contraseña",
+ "current-password": "Contraseña actual",
+ "new-password": "Nueva contraseña",
+ "confirm-password": "Confirmar contraseña",
+ "password-must-match": "Las contraseñas deben coincidir",
+ "e-mail-must-be-valid": "El correo debe ser válido",
+ "use-8-characters-or-more-for-your-password": "Usa al menos 8 carácteres para la contraseña"
+ },
+ "meal-plan": {
+ "shopping-list": "Lista de la compra",
+ "dinner-this-week": "Cena de esta semana",
+ "meal-planner": "Planificador de comida",
+ "dinner-today": "Cena de hoy",
+ "planner": "Planificador",
+ "edit-meal-plan": "Editar menú",
+ "meal-plans": "Menús",
+ "create-a-new-meal-plan": "Crear un nuevo menú",
+ "start-date": "Fecha de inicio",
+ "end-date": "Fecha de fin",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Solamente las recetas con estas categorías serán usadas en los menús"
+ },
+ "recipe": {
+ "description": "Descripción",
+ "ingredients": "Ingredientes",
+ "categories": "Categorias",
+ "tags": "Etiquetas",
+ "instructions": "Instrucciones",
+ "step-index": "Paso: {step}",
+ "recipe-name": "Nombre de la receta",
+ "servings": "Raciones",
+ "ingredient": "Ingredientes",
+ "notes": "Notas",
+ "note": "Nota",
+ "original-url": "URL original",
+ "view-recipe": "Ver receta",
+ "title": "Título",
+ "total-time": "Tiempo total",
+ "prep-time": "Tiempo de preparación",
+ "perform-time": "Tiempo de cocinado",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No se admiten espacios en blanco",
+ "delete-recipe": "Borrar receta",
+ "delete-confirmation": "¿Seguro que quieres borrar la receta?"
+ },
+ "search": {
+ "search-mealie": "Buscar Mealie",
+ "search-placeholder": "Buscar...",
+ "max-results": "Resultados máximos",
+ "category-filter": "Filtrar por categorías",
+ "tag-filter": "Filtrar por etiquetas",
+ "include": "Incluir",
+ "exclude": "Excluir",
+ "and": "Y",
+ "or": "O",
+ "search": "Buscar"
+ },
+ "settings": {
+ "general-settings": "Opciones generales",
+ "change-password": "Cambiar contraseña",
+ "admin-settings": "Ajustes de admin",
+ "local-api": "API local",
+ "language": "Idioma",
+ "add-a-new-theme": "Añadir un nuevo tema",
+ "set-new-time": "Añadir nueva hora",
+ "current": "Version:",
+ "latest": "Última",
+ "explore-the-docs": "Explorar la wiki",
+ "contribute": "Contribuir",
+ "backup-and-exports": "Copia de seguridad",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Copias de seguridad disponibles",
+ "theme": {
+ "theme-name": "Nombre del tema",
+ "theme-settings": "Ajustes del tema",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Modo oscuro",
+ "theme-is-required": "El tema es necesario",
+ "primary": "Primario",
+ "secondary": "Secundario",
+ "accent": "Énfasis",
+ "success": "Éxito",
+ "info": "Info",
+ "warning": "Advertencia",
+ "error": "Error",
+ "default-to-system": "Valores por defecto",
+ "light": "Claro",
+ "dark": "Oscuro",
+ "theme": "Tema",
+ "saved-color-theme": "Guardar color del tema",
+ "delete-theme": "Borrar tema",
+ "are-you-sure-you-want-to-delete-this-theme": "¿Seguro que quieres borrar el tema?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Falta el nombre del tema"
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "Una nueva versión de Mealie está disponible, visita el repositorio ",
+ "backup": {
+ "import-recipes": "Importar Recetas",
+ "import-themes": "Importar temas",
+ "import-settings": "Importar ajustes",
+ "create-heading": "Crear una copia de seguridad",
+ "backup-tag": "Etiqueta de copia de seguridad",
+ "full-backup": "Copia de seguridad entera",
+ "partial-backup": "Copia de seguridad parcial",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Importado correctamente",
+ "failed-imports": "Importación fallida"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Página de inicio",
+ "all-categories": "Todas las categorías",
+ "show-recent": "Ver recientes",
+ "home-page-sections": "Selecciones de página de inicio"
+ },
+ "site-settings": "Ajustes",
+ "manage-users": " Gestionar usuarios",
+ "migrations": "Migraciones",
+ "profile": "Perifl",
+ "custom-pages": "Páginas customizadas",
+ "new-page": "Nueva página",
+ "edit-page": "Editar página",
+ "page-name": "Nombre de página"
+ },
+ "migration": {
+ "recipe-migration": "Migrar recetas",
+ "failed-imports": "Importación fallida",
+ "migration-report": "Migration Report",
+ "successful-imports": "Importación exitosa",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/fi-FI.json b/frontend/src/locales/messages/fi-FI.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/fi-FI.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/fr-FR.json b/frontend/src/locales/messages/fr-FR.json
index 3b6f357d5..c3ac6d388 100644
--- a/frontend/src/locales/messages/fr-FR.json
+++ b/frontend/src/locales/messages/fr-FR.json
@@ -49,6 +49,13 @@
"current-parenthesis": "(Actuel)",
"users": "Utilisateurs",
"groups": "Groupes",
+ "sunday": "Dimanche",
+ "monday": "Lundi",
+ "tuesday": "Mardi",
+ "wednesday": "Mercredi",
+ "thursday": "Jeudi",
+ "friday": "Vendredi",
+ "saturday": "Samedi",
"about": "À propos"
},
"page": {
@@ -226,6 +233,8 @@
"manage-users": "Utilisateurs",
"migrations": "Migrations",
"profile": "Profil",
+ "locale-settings": "Paramètres régionaux",
+ "first-day-of-week": "Premier jour de la semaine",
"custom-pages": "Pages personnalisées",
"new-page": "Nouvelle page",
"edit-page": "Modifier la page",
diff --git a/frontend/src/locales/messages/he-IL.json b/frontend/src/locales/messages/he-IL.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/he-IL.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/hu-HU.json b/frontend/src/locales/messages/hu-HU.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/hu-HU.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/it-IT.json b/frontend/src/locales/messages/it-IT.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/it-IT.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/ja-JP.json b/frontend/src/locales/messages/ja-JP.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/ja-JP.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/ko-KR.json b/frontend/src/locales/messages/ko-KR.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/ko-KR.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/nl-NL.json b/frontend/src/locales/messages/nl-NL.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/nl-NL.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/no-NO.json b/frontend/src/locales/messages/no-NO.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/no-NO.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/pl-PL.json b/frontend/src/locales/messages/pl-PL.json
index 8b9af4f6f..cd0bb7e29 100644
--- a/frontend/src/locales/messages/pl-PL.json
+++ b/frontend/src/locales/messages/pl-PL.json
@@ -49,6 +49,13 @@
"current-parenthesis": "(Current)",
"users": "Users",
"groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
"about": "About"
},
"page": {
@@ -226,6 +233,8 @@
"manage-users": "Manage Users",
"migrations": "Migrations",
"profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
"custom-pages": "Custom Pages",
"new-page": "New Page",
"edit-page": "Edit Page",
diff --git a/frontend/src/locales/messages/pt-BR.json b/frontend/src/locales/messages/pt-BR.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/pt-BR.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/pt-PT.json b/frontend/src/locales/messages/pt-PT.json
index c867c4e45..283954234 100644
--- a/frontend/src/locales/messages/pt-PT.json
+++ b/frontend/src/locales/messages/pt-PT.json
@@ -49,6 +49,13 @@
"current-parenthesis": "(Current)",
"users": "Users",
"groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
"about": "About"
},
"page": {
@@ -226,6 +233,8 @@
"manage-users": "Manage Users",
"migrations": "Migrations",
"profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
"custom-pages": "Custom Pages",
"new-page": "New Page",
"edit-page": "Edit Page",
diff --git a/frontend/src/locales/messages/ro-RO.json b/frontend/src/locales/messages/ro-RO.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/ro-RO.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/ru-RU.json b/frontend/src/locales/messages/ru-RU.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/ru-RU.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/sr-SP.json b/frontend/src/locales/messages/sr-SP.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/sr-SP.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/sv-SE.json b/frontend/src/locales/messages/sv-SE.json
index 34ccc60d2..fa5d1d970 100644
--- a/frontend/src/locales/messages/sv-SE.json
+++ b/frontend/src/locales/messages/sv-SE.json
@@ -49,6 +49,13 @@
"current-parenthesis": "(Current)",
"users": "Users",
"groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
"about": "About"
},
"page": {
@@ -226,6 +233,8 @@
"manage-users": "Manage Users",
"migrations": "Migrations",
"profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
"custom-pages": "Custom Pages",
"new-page": "New Page",
"edit-page": "Edit Page",
diff --git a/frontend/src/locales/messages/tr-TR.json b/frontend/src/locales/messages/tr-TR.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/tr-TR.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/uk-UA.json b/frontend/src/locales/messages/uk-UA.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/uk-UA.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/vi-VN.json b/frontend/src/locales/messages/vi-VN.json
new file mode 100644
index 000000000..9a63052c5
--- /dev/null
+++ b/frontend/src/locales/messages/vi-VN.json
@@ -0,0 +1,258 @@
+{
+ "404": {
+ "page-not-found": "404 Page Not Found",
+ "take-me-home": "Take me Home"
+ },
+ "new-recipe": {
+ "from-url": "Import a Recipe",
+ "recipe-url": "Recipe URL",
+ "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "error-message": "Looks like there was an error parsing the URL. Check the log and debug/last_recipe.json to see what went wrong.",
+ "bulk-add": "Bulk Add",
+ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list"
+ },
+ "general": {
+ "upload": "Upload",
+ "submit": "Submit",
+ "name": "Name",
+ "settings": "Settings",
+ "close": "Close",
+ "save": "Save",
+ "image-file": "Image File",
+ "update": "Update",
+ "edit": "Edit",
+ "delete": "Delete",
+ "select": "Select",
+ "random": "Random",
+ "new": "New",
+ "create": "Create",
+ "cancel": "Cancel",
+ "ok": "OK",
+ "enabled": "Enabled",
+ "download": "Download",
+ "import": "Import",
+ "options": "Options",
+ "templates": "Templates",
+ "recipes": "Recipes",
+ "themes": "Themes",
+ "confirm": "Confirm",
+ "sort": "Sort",
+ "recent": "Recent",
+ "sort-alphabetically": "A-Z",
+ "reset": "Reset",
+ "filter": "Filter",
+ "yes": "Yes",
+ "no": "No",
+ "token": "Token",
+ "field-required": "Field Required",
+ "apply": "Apply",
+ "current-parenthesis": "(Current)",
+ "users": "Users",
+ "groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "About"
+ },
+ "page": {
+ "home-page": "Home Page",
+ "all-recipes": "All Recipes",
+ "recent": "Recent"
+ },
+ "user": {
+ "stay-logged-in": "Stay logged in?",
+ "email": "Email",
+ "password": "Password",
+ "sign-in": "Sign in",
+ "sign-up": "Sign up",
+ "logout": "Logout",
+ "full-name": "Full Name",
+ "user-group": "User Group",
+ "user-password": "User Password",
+ "admin": "Admin",
+ "user-id": "User ID",
+ "user-id-with-value": "User ID: {id}",
+ "group": "Group",
+ "new-user": "New User",
+ "edit-user": "Edit User",
+ "create-user": "Create User",
+ "confirm-user-deletion": "Confirm User Deletion",
+ "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
+ "confirm-group-deletion": "Confirm Group Deletion",
+ "total-users": "Total Users",
+ "total-mealplans": "Total MealPlans",
+ "webhooks-enabled": "Webhooks Enabled",
+ "webhook-time": "Webhook Time",
+ "create-group": "Create Group",
+ "sign-up-links": "Sign Up Links",
+ "create-link": "Create Link",
+ "link-name": "Link Name",
+ "group-id-with-value": "Group ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
+ "group-name": "Group Name",
+ "confirm-link-deletion": "Confirm Link Deletion",
+ "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
+ "link-id": "Link ID",
+ "users": "Users",
+ "groups": "Groups",
+ "could-not-validate-credentials": "Could Not Validate Credentials",
+ "login": "Login",
+ "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
+ "upload-photo": "Upload Photo",
+ "reset-password": "Reset Password",
+ "current-password": "Current Password",
+ "new-password": "New Password",
+ "confirm-password": "Confirm Password",
+ "password-must-match": "Password must match",
+ "e-mail-must-be-valid": "E-mail must be valid",
+ "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ },
+ "meal-plan": {
+ "shopping-list": "Shopping List",
+ "dinner-this-week": "Dinner This Week",
+ "meal-planner": "Meal Planner",
+ "dinner-today": "Dinner Today",
+ "planner": "Planner",
+ "edit-meal-plan": "Edit Meal Plan",
+ "meal-plans": "Meal Plans",
+ "create-a-new-meal-plan": "Create a New Meal Plan",
+ "start-date": "Start Date",
+ "end-date": "End Date",
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ },
+ "recipe": {
+ "description": "Description",
+ "ingredients": "Ingredients",
+ "categories": "Categories",
+ "tags": "Tags",
+ "instructions": "Instructions",
+ "step-index": "Step: {step}",
+ "recipe-name": "Recipe Name",
+ "servings": "Servings",
+ "ingredient": "Ingredient",
+ "notes": "Notes",
+ "note": "Note",
+ "original-url": "Original URL",
+ "view-recipe": "View Recipe",
+ "title": "Title",
+ "total-time": "Total Time",
+ "prep-time": "Prep Time",
+ "perform-time": "Cook Time",
+ "api-extras": "API Extras",
+ "object-key": "Object Key",
+ "object-value": "Object Value",
+ "new-key-name": "New Key Name",
+ "add-key": "Add Key",
+ "key-name-required": "Key Name Required",
+ "no-white-space-allowed": "No White Space Allowed",
+ "delete-recipe": "Delete Recipe",
+ "delete-confirmation": "Are you sure you want to delete this recipe?"
+ },
+ "search": {
+ "search-mealie": "Search Mealie",
+ "search-placeholder": "Search...",
+ "max-results": "Max Results",
+ "category-filter": "Category Filter",
+ "tag-filter": "Tag Filter",
+ "include": "Include",
+ "exclude": "Exclude",
+ "and": "And",
+ "or": "Or",
+ "search": "Search"
+ },
+ "settings": {
+ "general-settings": "General Settings",
+ "change-password": "Change Password",
+ "admin-settings": "Admin Settings",
+ "local-api": "Local API",
+ "language": "Language",
+ "add-a-new-theme": "Add a New Theme",
+ "set-new-time": "Set New Time",
+ "current": "Version:",
+ "latest": "Latest",
+ "explore-the-docs": "Explore the Docs",
+ "contribute": "Contribute",
+ "backup-and-exports": "Backups",
+ "backup-info": "Backups are exported in standard JSON format along with all the images stored on the file system. In your backup folder you'll find a .zip file that contains all of the recipe JSON and images from the database. Additionally, if you selected a markdown file, those will also be stored in the .zip file. To import a backup, it must be located in your backups folder. Automated backups are done each day at 3:00 AM.",
+ "available-backups": "Available Backups",
+ "theme": {
+ "theme-name": "Theme Name",
+ "theme-settings": "Theme Settings",
+ "select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "Select a theme from the dropdown or create a new theme. Note that the default theme will be served to all users who have not set a theme preference.",
+ "dark-mode": "Dark Mode",
+ "theme-is-required": "Theme is required",
+ "primary": "Primary",
+ "secondary": "Secondary",
+ "accent": "Accent",
+ "success": "Success",
+ "info": "Info",
+ "warning": "Warning",
+ "error": "Error",
+ "default-to-system": "Default to system",
+ "light": "Light",
+ "dark": "Dark",
+ "theme": "Theme",
+ "saved-color-theme": "Saved Color Theme",
+ "delete-theme": "Delete Theme",
+ "are-you-sure-you-want-to-delete-this-theme": "Are you sure you want to delete this theme?",
+ "choose-how-mealie-looks-to-you-set-your-theme-preference-to-follow-your-system-settings-or-choose-to-use-the-light-or-dark-theme": "Choose how Mealie looks to you. Set your theme preference to follow your system settings, or choose to use the light or dark theme.",
+ "theme-name-is-required": "Theme Name is required."
+ },
+ "webhooks": {
+ "meal-planner-webhooks": "Meal Planner Webhooks",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "The URLs listed below will receive webhooks containing the recipe data for the meal plan on it's scheduled day. Currently Webhooks will execute at",
+ "test-webhooks": "Test Webhooks",
+ "webhook-url": "Webhook URL"
+ },
+ "new-version-available": "A New Version of Mealie is Available, Visit the Repo ",
+ "backup": {
+ "import-recipes": "Import Recipes",
+ "import-themes": "Import Themes",
+ "import-settings": "Import Settings",
+ "create-heading": "Create a Backup",
+ "backup-tag": "Backup Tag",
+ "full-backup": "Full Backup",
+ "partial-backup": "Partial Backup",
+ "backup-restore-report": "Backup Restore Report",
+ "successfully-imported": "Successfully Imported",
+ "failed-imports": "Failed Imports"
+ },
+ "homepage": {
+ "card-per-section": "Card Per Section",
+ "homepage-categories": "Homepage Categories",
+ "home-page": "Home Page",
+ "all-categories": "All Categories",
+ "show-recent": "Show Recent",
+ "home-page-sections": "Home Page Sections"
+ },
+ "site-settings": "Site Settings",
+ "manage-users": "Manage Users",
+ "migrations": "Migrations",
+ "profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "Custom Pages",
+ "new-page": "New Page",
+ "edit-page": "Edit Page",
+ "page-name": "Page Name"
+ },
+ "migration": {
+ "recipe-migration": "Recipe Migration",
+ "failed-imports": "Failed Imports",
+ "migration-report": "Migration Report",
+ "successful-imports": "Successful Imports",
+ "no-migration-data-available": "No Migration Data Avaiable",
+ "nextcloud": {
+ "title": "Nextcloud Cookbook",
+ "description": "Migrate data from a Nextcloud Cookbook intance"
+ },
+ "chowdown": {
+ "title": "Chowdown",
+ "description": "Migrate data from Chowdown"
+ }
+ }
+}
diff --git a/frontend/src/locales/messages/zh-CN.json b/frontend/src/locales/messages/zh-CN.json
index f2d92213c..6eb7a25c8 100644
--- a/frontend/src/locales/messages/zh-CN.json
+++ b/frontend/src/locales/messages/zh-CN.json
@@ -6,7 +6,7 @@
"new-recipe": {
"from-url": "输入网址",
"recipe-url": "食谱网址",
- "url-form-hint": "Copy and paste a link from your favorite recipe website",
+ "url-form-hint": "从您最喜爱的食谱网站复制并粘贴链接",
"error-message": "貌似在解析网址时出错。请检查log和debug/last_recipe.json文件并找寻更多有关资讯。",
"bulk-add": "批量添加",
"paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "请粘贴您的食谱资料。每行将被视为列表中的一项。"
@@ -36,25 +36,32 @@
"recipes": "食谱",
"themes": "布景主题",
"confirm": "确定",
- "sort": "Sort",
- "recent": "Recent",
+ "sort": "排序",
+ "recent": "最近",
"sort-alphabetically": "A-Z",
- "reset": "Reset",
- "filter": "Filter",
- "yes": "Yes",
- "no": "No",
- "token": "Token",
- "field-required": "Field Required",
- "apply": "Apply",
- "current-parenthesis": "(Current)",
- "users": "Users",
- "groups": "Groups",
- "about": "About"
+ "reset": "重置",
+ "filter": "筛选",
+ "yes": "是",
+ "no": "否",
+ "token": "密钥",
+ "field-required": "必填",
+ "apply": "应用",
+ "current-parenthesis": "(当前)",
+ "users": "用户",
+ "groups": "群组",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
+ "about": "关于"
},
"page": {
- "home-page": "Home Page",
- "all-recipes": "All Recipes",
- "recent": "Recent"
+ "home-page": "主页",
+ "all-recipes": "全部食谱",
+ "recent": "最近"
},
"user": {
"stay-logged-in": "保持登录状态?",
@@ -62,52 +69,52 @@
"password": "密码",
"sign-in": "登入",
"sign-up": "注册",
- "logout": "Logout",
- "full-name": "Full Name",
- "user-group": "User Group",
- "user-password": "User Password",
- "admin": "Admin",
- "user-id": "User ID",
- "user-id-with-value": "User ID: {id}",
- "group": "Group",
- "new-user": "New User",
- "edit-user": "Edit User",
- "create-user": "Create User",
- "confirm-user-deletion": "Confirm User Deletion",
- "are-you-sure-you-want-to-delete-the-user": "Are you sure you want to delete the user {activeName} ID: {activeId}?",
- "confirm-group-deletion": "Confirm Group Deletion",
- "total-users": "Total Users",
- "total-mealplans": "Total MealPlans",
- "webhooks-enabled": "Webhooks Enabled",
- "webhook-time": "Webhook Time",
- "create-group": "Create Group",
- "sign-up-links": "Sign Up Links",
- "create-link": "Create Link",
- "link-name": "Link Name",
- "group-id-with-value": "Group ID: {groupID}",
- "are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete {groupName}?",
- "group-name": "Group Name",
- "confirm-link-deletion": "Confirm Link Deletion",
- "are-you-sure-you-want-to-delete-the-link": "Are you sure you want to delete the link {link}?",
- "link-id": "Link ID",
- "users": "Users",
- "groups": "Groups",
- "could-not-validate-credentials": "Could Not Validate Credentials",
- "login": "Login",
- "groups-can-only-be-set-by-administrators": "Groups can only be set by administrators",
- "upload-photo": "Upload Photo",
- "reset-password": "Reset Password",
- "current-password": "Current Password",
- "new-password": "New Password",
- "confirm-password": "Confirm Password",
- "password-must-match": "Password must match",
- "e-mail-must-be-valid": "E-mail must be valid",
- "use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password"
+ "logout": "登出",
+ "full-name": "全名",
+ "user-group": "用户群组",
+ "user-password": "用户密码",
+ "admin": "管理员",
+ "user-id": "用户ID",
+ "user-id-with-value": "用户ID: {id}",
+ "group": "群组",
+ "new-user": "新建用户",
+ "edit-user": "编辑用户",
+ "create-user": "创建用户",
+ "confirm-user-deletion": "确认删除用户",
+ "are-you-sure-you-want-to-delete-the-user": "您确定要删除用户 {activeName} ID:{activeId} 吗?",
+ "confirm-group-deletion": "确认删除群组",
+ "total-users": "用户总数",
+ "total-mealplans": "总用餐计划",
+ "webhooks-enabled": "Webhooks 启用",
+ "webhook-time": "Webhook时间",
+ "create-group": "创建群组",
+ "sign-up-links": "注册链接",
+ "create-link": "生成链接",
+ "link-name": "链接名",
+ "group-id-with-value": "群组ID: {groupID}",
+ "are-you-sure-you-want-to-delete-the-group": "您确定要删除{groupName}吗?",
+ "group-name": "群组名",
+ "confirm-link-deletion": "确认删除链接",
+ "are-you-sure-you-want-to-delete-the-link": "您确定要删除链接{link}吗?",
+ "link-id": "链接ID",
+ "users": "用户",
+ "groups": "群组",
+ "could-not-validate-credentials": "无法验证",
+ "login": "登录",
+ "groups-can-only-be-set-by-administrators": "群组只能由管理员设置",
+ "upload-photo": "上传照片",
+ "reset-password": "重置密码",
+ "current-password": "当前密码",
+ "new-password": "新密码",
+ "confirm-password": "确认密码",
+ "password-must-match": "密码必须一致",
+ "e-mail-must-be-valid": "电子邮件必须有效",
+ "use-8-characters-or-more-for-your-password": "请设置密码字符为8个或更多"
},
"meal-plan": {
- "shopping-list": "Shopping List",
+ "shopping-list": "购物清单",
"dinner-this-week": "本周晚餐",
- "meal-planner": "Meal Planner",
+ "meal-planner": "用餐计划",
"dinner-today": "今日晚餐",
"planner": "策划人",
"edit-meal-plan": "编辑用餐计划",
@@ -115,7 +122,7 @@
"create-a-new-meal-plan": "创建一个新的用餐计划",
"start-date": "开始日期",
"end-date": "结束日期",
- "only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans"
+ "only-recipes-with-these-categories-will-be-used-in-meal-plans": "只有与这些类别相关的食谱才会被用于用餐计划"
},
"recipe": {
"description": "描述",
@@ -127,46 +134,46 @@
"recipe-name": "食谱名称",
"servings": "份量",
"ingredient": "材料",
- "notes": "贴士",
- "note": "贴士",
+ "notes": "笔记",
+ "note": "备注",
"original-url": "原食谱链接",
"view-recipe": "查看食谱",
"title": "标题",
"total-time": "总时间",
"prep-time": "准备时间",
- "perform-time": "烹饪时间 / 执行时间",
+ "perform-time": "烹饪时间",
"api-extras": "API Extras",
"object-key": "Object Key",
"object-value": "Object Value",
"new-key-name": "New Key Name",
"add-key": "Add Key",
- "key-name-required": "Key Name Required",
- "no-white-space-allowed": "No White Space Allowed",
+ "key-name-required": "必须输入关键字",
+ "no-white-space-allowed": "不允许有空格",
"delete-recipe": "删除食谱",
"delete-confirmation": "您确定要删除此食谱吗?"
},
"search": {
"search-mealie": "搜索Mealie",
- "search-placeholder": "Search...",
- "max-results": "Max Results",
- "category-filter": "Category Filter",
- "tag-filter": "Tag Filter",
- "include": "Include",
- "exclude": "Exclude",
- "and": "And",
- "or": "Or",
- "search": "Search"
+ "search-placeholder": "搜索...",
+ "max-results": "最大结果",
+ "category-filter": "分类筛选",
+ "tag-filter": "标签筛选",
+ "include": "包括",
+ "exclude": "排除",
+ "and": "与",
+ "or": "或",
+ "search": "搜索"
},
"settings": {
"general-settings": "基本设置",
- "change-password": "Change Password",
- "admin-settings": "Admin Settings",
- "local-api": "Local API",
+ "change-password": "更改密码",
+ "admin-settings": "管理设置",
+ "local-api": "本地API",
"language": "语言",
"add-a-new-theme": "新增布景主题",
"set-new-time": "设定新的时间",
"current": "版本号:",
- "latest": "最新版本:",
+ "latest": "最新版本",
"explore-the-docs": "浏览文档",
"contribute": "参与贡献",
"backup-and-exports": "备份",
@@ -178,13 +185,13 @@
"select-a-theme-from-the-dropdown-or-create-a-new-theme-note-that-the-default-theme-will-be-served-to-all-users-who-have-not-set-a-theme-preference": "从以下列表中选择一个主题或创建一个新主题。请注意,默认主题将提供给尚未设置主题首选的所有用户。",
"dark-mode": "暗黑模式",
"theme-is-required": "必须选择主题",
- "primary": "主要(Primary)",
- "secondary": "次要(Secondary)",
- "accent": "强调(Accent)",
- "success": "成功(Success)",
- "info": "信息(Info)",
- "warning": "警告(Warning)",
- "error": "错误(Error)",
+ "primary": "Primary(主要)",
+ "secondary": "Secondary(次要)",
+ "accent": "Accent(强调)",
+ "success": "Success(成功)",
+ "info": "Info(信息)",
+ "warning": "Warning(警告)",
+ "error": "Error(错误)",
"default-to-system": "默认为系统",
"light": "浅色",
"dark": "深色",
@@ -197,7 +204,7 @@
},
"webhooks": {
"meal-planner-webhooks": "用餐计划器Webhooks",
- "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "下方列出的网址将在预定日期接收到有关用餐计划的食谱资料。Webhooks将在{ time }执行",
+ "the-urls-listed-below-will-recieve-webhooks-containing-the-recipe-data-for-the-meal-plan-on-its-scheduled-day-currently-webhooks-will-execute-at": "下方列出的网址将在预定日期接收到有关用餐计划的食谱资料。Webhooks执行将在",
"test-webhooks": "测试Webhooks",
"webhook-url": "Webhook网址"
},
@@ -215,21 +222,23 @@
"failed-imports": "导入失败"
},
"homepage": {
- "card-per-section": "Card Per Section",
- "homepage-categories": "Homepage Categories",
- "home-page": "Home Page",
- "all-categories": "All Categories",
- "show-recent": "Show Recent",
- "home-page-sections": "Home Page Sections"
+ "card-per-section": "Card的部分",
+ "homepage-categories": "主页分类",
+ "home-page": "主页",
+ "all-categories": "所有分类",
+ "show-recent": "显示最近更新",
+ "home-page-sections": "主页部分"
},
- "site-settings": "Site Settings",
- "manage-users": "Manage Users",
- "migrations": "Migrations",
- "profile": "Profile",
- "custom-pages": "Custom Pages",
- "new-page": "New Page",
- "edit-page": "Edit Page",
- "page-name": "Page Name"
+ "site-settings": "网站设置",
+ "manage-users": "管理用户",
+ "migrations": "迁移",
+ "profile": "用户信息",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
+ "custom-pages": "自定义页面",
+ "new-page": "新建页面",
+ "edit-page": "编辑页面",
+ "page-name": "页面名称"
},
"migration": {
"recipe-migration": "食谱迁移",
diff --git a/frontend/src/locales/messages/zh-TW.json b/frontend/src/locales/messages/zh-TW.json
index 9f7950778..0bfb48b8a 100644
--- a/frontend/src/locales/messages/zh-TW.json
+++ b/frontend/src/locales/messages/zh-TW.json
@@ -49,6 +49,13 @@
"current-parenthesis": "(Current)",
"users": "Users",
"groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
"about": "About"
},
"page": {
@@ -226,6 +233,8 @@
"manage-users": "Manage Users",
"migrations": "Migrations",
"profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
"custom-pages": "Custom Pages",
"new-page": "New Page",
"edit-page": "Edit Page",
diff --git a/frontend/src/pages/Admin/Settings/index.vue b/frontend/src/pages/Admin/Settings/index.vue
index ea83515db..73deaa87d 100644
--- a/frontend/src/pages/Admin/Settings/index.vue
+++ b/frontend/src/pages/Admin/Settings/index.vue
@@ -28,30 +28,6 @@ export default {
HomePageSettings,
CustomPageCreator,
},
- data() {
- return {
- langOptions: [],
- selectedLang: "en",
- };
- },
- mounted() {
- this.getOptions();
- },
- watch: {
- selectedLang() {
- this.$store.commit("setLang", this.selectedLang);
- },
- },
- methods: {
- getOptions() {
- this.langOptions = this.$store.getters.getAllLangs;
- this.selectedLang = this.$store.getters.getActiveLang;
- },
- removeCategory(index) {
- this.value.categories.splice(index, 1);
- },
-
- },
};
diff --git a/frontend/src/plugins/vuetify.js b/frontend/src/plugins/vuetify.js
index 522f30fd3..368c9a687 100644
--- a/frontend/src/plugins/vuetify.js
+++ b/frontend/src/plugins/vuetify.js
@@ -3,15 +3,14 @@ import Vuetify from "vuetify/lib";
Vue.use(Vuetify);
-// language IDs should match those from VueI18n with _ instead of -
-import de_DE from 'vuetify/es5/locale/de';
-import en_US from 'vuetify/es5/locale/en';
-import fr_FR from 'vuetify/es5/locale/fr';
-import pl_PL from 'vuetify/es5/locale/pl';
-import pt_PT from 'vuetify/es5/locale/pt';
-import sv_SE from 'vuetify/es5/locale/sv';
-import zh_CN from 'vuetify/es5/locale/zh-Hans';
-import zh_TW from 'vuetify/es5/locale/zh-Hant';
+import de from 'vuetify/es5/locale/de';
+import en from 'vuetify/es5/locale/en';
+import fr from 'vuetify/es5/locale/fr';
+import pl from 'vuetify/es5/locale/pl';
+import pt from 'vuetify/es5/locale/pt';
+import sv from 'vuetify/es5/locale/sv';
+import zhHans from 'vuetify/es5/locale/zh-Hans';
+import zhHant from 'vuetify/es5/locale/zh-Hant';
const vuetify = new Vuetify({
@@ -42,16 +41,16 @@ const vuetify = new Vuetify({
},
lang: {
locales: {
- de_DE,
- en_US,
- fr_FR,
- pl_PL,
- pt_PT,
- sv_SE,
- zh_CN,
- zh_TW
+ 'de-DE' : de,
+ 'en-US' : en,
+ 'fr-FR' : fr,
+ 'pl-PL' : pl,
+ 'pt-PT' : pt,
+ 'sv-SE' : sv,
+ 'zh-CN' : zhHans,
+ 'zh-TW' : zhHant
},
- current: 'en_US',
+ current: 'en-US',
},
});
diff --git a/frontend/src/store/modules/language.js b/frontend/src/store/modules/language.js
index 963cfb1ae..431070a8e 100644
--- a/frontend/src/store/modules/language.js
+++ b/frontend/src/store/modules/language.js
@@ -1,7 +1,7 @@
import VueI18n from "../../i18n";
const state = {
- lang: "en",
+ lang: "en-US",
allLangs: [
{
name: "English",
@@ -52,7 +52,12 @@ const mutations = {
const actions = {
initLang({ getters }, { currentVueComponent }) {
VueI18n.locale = getters.getActiveLang;
- currentVueComponent.$vuetify.lang.current = getters.getActiveLang.replace('-', '_');
+ currentVueComponent.$vuetify.lang.current = getters.getActiveLang;
+ },
+ setLang({ commit }, { language, currentVueComponent }) {
+ VueI18n.locale = language;
+ currentVueComponent.$vuetify.lang.current = language;
+ commit('setLang', language);
},
};
diff --git a/frontend/src/store/modules/siteSettings.js b/frontend/src/store/modules/siteSettings.js
index f521f4eb5..9b526275a 100644
--- a/frontend/src/store/modules/siteSettings.js
+++ b/frontend/src/store/modules/siteSettings.js
@@ -3,6 +3,7 @@ import { api } from "@/api";
const state = {
siteSettings: {
language: "en",
+ firstDayOfWeek: 0,
showRecent: true,
cardsPerSection: 9,
categories: [],
diff --git a/mealie/db/models/settings.py b/mealie/db/models/settings.py
index cc40dd787..fbebdcd06 100644
--- a/mealie/db/models/settings.py
+++ b/mealie/db/models/settings.py
@@ -9,6 +9,7 @@ class SiteSettings(SqlAlchemyBase, BaseMixins):
__tablename__ = "site_settings"
id = sa.Column(sa.Integer, primary_key=True)
language = sa.Column(sa.String)
+ first_day_of_week = sa.Column(sa.Integer)
categories = orm.relationship(
"Category",
secondary=site_settings2categories,
@@ -21,12 +22,14 @@ class SiteSettings(SqlAlchemyBase, BaseMixins):
self,
session: Session = None,
language="en",
+ first_day_of_week: int = 0,
categories: list = [],
show_recent=True,
cards_per_section: int = 9,
) -> None:
session.commit()
self.language = language
+ self.first_day_of_week = first_day_of_week
self.cards_per_section = cards_per_section
self.show_recent = show_recent
self.categories = [Category.get_ref(session=session, slug=cat.get("slug")) for cat in categories]
diff --git a/mealie/schema/settings.py b/mealie/schema/settings.py
index 9f147d16a..b275cf60c 100644
--- a/mealie/schema/settings.py
+++ b/mealie/schema/settings.py
@@ -8,6 +8,7 @@ from slugify import slugify
class SiteSettings(CamelModel):
language: str = "en"
+ first_day_of_week: int = 0
show_recent: bool = True
cards_per_section: int = 9
categories: Optional[list[CategoryBase]] = []
@@ -18,6 +19,7 @@ class SiteSettings(CamelModel):
schema_extra = {
"example": {
"language": "en",
+ "firstDayOfWeek": 0,
"showRecent": True,
"categories": [
{"id": 1, "name": "thanksgiving", "slug": "thanksgiving"},