parent
24edd0e647
commit
489b4ce031
@ -0,0 +1,64 @@ |
|||||||
|
import {usePlatformConfig} from "../store/platformConfig"; |
||||||
|
import {useSecurityStore} from "../store/securityStore"; |
||||||
|
import {useCidReqStore} from "../store/cidReq"; |
||||||
|
import {computed, ref} from "vue"; |
||||||
|
|
||||||
|
export function useLocale() { |
||||||
|
const platformConfigStore = usePlatformConfig() |
||||||
|
const securityStore = useSecurityStore() |
||||||
|
const cidReqStore = useCidReqStore() |
||||||
|
|
||||||
|
const localeList = computed(() => { |
||||||
|
const list = {}; |
||||||
|
|
||||||
|
const platformLocale = platformConfigStore.getSetting('language.platform_language') |
||||||
|
|
||||||
|
if (platformLocale) { |
||||||
|
list['platform_lang'] = platformLocale |
||||||
|
} |
||||||
|
|
||||||
|
const userLocale = securityStore.user ? securityStore.user.locale : null |
||||||
|
|
||||||
|
if (userLocale) { |
||||||
|
list['user_profil_lang'] = userLocale |
||||||
|
} |
||||||
|
|
||||||
|
const courseLocale = cidReqStore.course ? cidReqStore.course.courseLanguage : null |
||||||
|
|
||||||
|
if (courseLocale) { |
||||||
|
list['course_lang'] = courseLocale |
||||||
|
} |
||||||
|
|
||||||
|
// @todo check language from request
|
||||||
|
//list['user_selected_lang'] = ?
|
||||||
|
|
||||||
|
return list |
||||||
|
}); |
||||||
|
|
||||||
|
const priorityList = [ |
||||||
|
'language_priority_1', |
||||||
|
'language_priority_2', |
||||||
|
'language_priority_3', |
||||||
|
'language_priority_4', |
||||||
|
] |
||||||
|
|
||||||
|
const appLocale = ref('') |
||||||
|
|
||||||
|
for (const setting of priorityList) { |
||||||
|
const priority = platformConfigStore.getSetting(`language.${setting}`) |
||||||
|
|
||||||
|
if (priority && localeList.value[priority]) { |
||||||
|
appLocale.value = localeList.value[priority] |
||||||
|
|
||||||
|
break |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (!appLocale.value) { |
||||||
|
appLocale.value = document.querySelector('html').lang |
||||||
|
} |
||||||
|
|
||||||
|
return { |
||||||
|
appLocale |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue