up frontend

This commit is contained in:
2026-04-21 03:57:59 +03:00
parent b9d1afad42
commit 82a932dd2b
14 changed files with 492 additions and 172 deletions

View File

@@ -1,3 +1,4 @@
// src/main.ts
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
@@ -9,9 +10,19 @@ import { createI18n } from 'vue-i18n'
import en from './locales/en.json'
import ru from './locales/ru.json'
// Функция определения языка браузера
function getBrowserLocale(): string {
const browserLang = navigator.language.split('-')[0]
return browserLang === 'ru' ? 'ru' : 'en'
}
// Получаем сохраненный язык из localStorage (для неавторизованных)
const storedLocale = localStorage.getItem('locale')
const initialLocale = storedLocale || getBrowserLocale()
const i18n = createI18n({
legacy: false,
locale: 'en',
locale: initialLocale,
fallbackLocale: 'en',
messages: { en, ru }
})
@@ -30,9 +41,14 @@ Promise.all([
settingsStore.loadSettings(),
userStore.fetchProfile().catch(() => {})
]).then(() => {
// Устанавливаем язык из профиля, если есть
if (userStore.language) {
// Если пользователь авторизован используем язык из профиля
if (userStore.id && userStore.language) {
i18n.global.locale.value = userStore.language
// Сохраняем в localStorage для синхронизации (опционально)
localStorage.setItem('locale', userStore.language)
} else {
// Для неавторизованных сохраняем текущий язык в localStorage
localStorage.setItem('locale', i18n.global.locale.value)
}
app.mount('#app')
})