diff --git a/frontend/src/components/Admin/General/HomePageSettings.vue b/frontend/src/components/Admin/General/HomePageSettings.vue index b31c6b609..f7563e680 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,6 +175,38 @@ 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: { @@ -175,6 +224,7 @@ export default { }, async saveSettings() { await api.siteSettings.update(this.settings); + this.$store.commit("setLang", this.settings.language); this.getOptions(); }, }, diff --git a/frontend/src/components/MealPlan/MealPlanNew.vue b/frontend/src/components/MealPlan/MealPlanNew.vue index 278efd3fc..50322dc8a 100644 --- a/frontend/src/components/MealPlan/MealPlanNew.vue +++ b/frontend/src/components/MealPlan/MealPlanNew.vue @@ -31,11 +31,11 @@ v-on="on" > - + /> @@ -87,12 +87,14 @@ + + \ No newline at end of file diff --git a/frontend/src/locales/messages/en.json b/frontend/src/locales/messages/en.json index 3bd654f27..99704da96 100644 --- a/frontend/src/locales/messages/en.json +++ b/frontend/src/locales/messages/en.json @@ -48,7 +48,14 @@ "apply": "Apply", "current-parenthesis": "(Current)", "users": "Users", - "groups": "Groups" + "groups": "Groups", + "sunday": "Sunday", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday" }, "page": { "home-page": "Home Page", @@ -215,7 +222,9 @@ "site-settings": "Site Settings", "manage-users": "Manage Users", "migrations": "Migrations", - "profile": "Profile" + "profile": "Profile", + "locale-settings": "Locale settings", + "first-day-of-week": "First day of the week" }, "migration": { "recipe-migration": "Recipe Migration", diff --git a/frontend/src/locales/messages/fr.json b/frontend/src/locales/messages/fr.json index a92e4d9af..8f68effc2 100644 --- a/frontend/src/locales/messages/fr.json +++ b/frontend/src/locales/messages/fr.json @@ -46,7 +46,14 @@ "token": "Jeton", "field-required": "Champ obligatoire", "apply": "Appliquer", - "current-parenthesis": "(Actuel)" + "current-parenthesis": "(Actuel)", + "friday": "Vendredi", + "monday": "Lundi", + "saturday": "Samedi", + "sunday": "Dimanche", + "thursday": "Jeudi", + "tuesday": "Mardi", + "wednesday": "Mercredi" }, "page": { "home-page": "Accueil", @@ -213,7 +220,9 @@ "manage-users": "Utilisateurs", "migrations": "Migrations", "profile": "Profil", - "site-settings": "Paramètres site" + "site-settings": "Paramètres site", + "locale-settings": "Paramètres de langue", + "first-day-of-week": "Premier jour de la semaine" }, "migration": { "recipe-migration": "Migrer les recettes", 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"},