diff --git a/server/db/dbModels.go b/server/db/dbModels.go index 71682bb..aec7665 100644 --- a/server/db/dbModels.go +++ b/server/db/dbModels.go @@ -19,6 +19,7 @@ type User struct { Name string `json:"name"` Vehicles []Vehicle `gorm:"many2many:user_vehicles;" json:"vehicles"` IsDisabled bool `json:"isDisabled"` + Language string `json:"language"` } func (b *User) MarshalJSON() ([]byte, error) { diff --git a/server/db/migrations.go b/server/db/migrations.go index b9824f8..b2f4112 100644 --- a/server/db/migrations.go +++ b/server/db/migrations.go @@ -29,7 +29,7 @@ var migrations = []localMigration{ }, { Name: "2023_02_26_13_42_AddLanguage", - Query: "ALTER TABLE users ADD COLUMN language text default 'English'", + Query: "ALTER TABLE users ADD COLUMN language text default 'English 🇬🇧'", }, } diff --git a/ui/src/router/views/settings.vue b/ui/src/router/views/settings.vue index ca4b326..768bace 100644 --- a/ui/src/router/views/settings.vue +++ b/ui/src/router/views/settings.vue @@ -22,6 +22,7 @@ export default { data: function() { return { settingsModel: { + language: this.me.language, currency: this.me.currency, distanceUnit: this.me.distanceUnit, dateFormat: this.me.dateFormat, @@ -36,7 +37,7 @@ export default { } }, computed: { - ...mapState('vehicles', ['currencyMasters', 'distanceUnitMasters']), + ...mapState('masters', ['currencyMasters', 'languageMasters', 'distanceUnitMasters']), passwordValid() { if (this.changePassModel.new === '' || this.changePassModel.renew === '') { return true @@ -58,6 +59,15 @@ export default { ) }) }, + filteredLanguageMasters() { + return this.languageMasters.filter((option) => { + return ( + option.nameNative + .toString() + .toLowerCase() + .indexOf(this.settingsModel.language.toLowerCase()) >= 0) + }) + }, }, methods: { changePassword() { @@ -126,6 +136,9 @@ export default { formatCurrency(option) { return `${option.namePlural} (${option.code})` }, + formatLanguage(option) { + return `${option.nameNative} ${option.emoji}` + }, }, } @@ -136,9 +149,17 @@ export default {