2018-08-13 16:48:13 +02:00
|
|
|
<template>
|
2019-11-19 14:38:57 +01:00
|
|
|
<div id="language">
|
|
|
|
<h2>{{ $t('preferences.language.title') }}</h2>
|
|
|
|
<el-form class="display-language section" label-position="top" size="small">
|
2021-03-25 11:04:31 +01:00
|
|
|
<h3>{{ $t('preferences.language.language.title') }}</h3>
|
2022-04-18 15:41:52 +02:00
|
|
|
<el-form-item
|
|
|
|
for="language"
|
|
|
|
:label="$t('preferences.language.language.description')"
|
|
|
|
>
|
2019-11-19 14:38:57 +01:00
|
|
|
<el-select id="language" v-model="displayLanguage" placeholder="style">
|
2022-04-18 15:41:52 +02:00
|
|
|
<el-option
|
|
|
|
v-for="lang in languages"
|
|
|
|
:key="lang.key"
|
|
|
|
:label="lang.name"
|
|
|
|
:value="lang.key"
|
|
|
|
>
|
|
|
|
</el-option>
|
2019-11-19 14:38:57 +01:00
|
|
|
</el-select>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form>
|
2021-03-25 16:48:20 +01:00
|
|
|
<el-form class="spellchecker section" label-position="top" size="small">
|
2021-03-25 11:04:31 +01:00
|
|
|
<h3>{{ $t('preferences.language.spellchecker.title') }}</h3>
|
2022-04-18 15:41:52 +02:00
|
|
|
<el-form-item
|
|
|
|
for="spellcheck"
|
|
|
|
:label="$t('preferences.language.spellchecker.enabled')"
|
|
|
|
>
|
|
|
|
<el-switch id="spellcheck" v-model="spellcheck" active-color="#13ce66">
|
|
|
|
</el-switch>
|
2021-03-25 16:48:20 +01:00
|
|
|
</el-form-item>
|
|
|
|
<el-form-item for="spellcheck_languages">
|
2022-04-18 15:41:52 +02:00
|
|
|
<el-checkbox-group
|
|
|
|
id="spellcheck_languages"
|
|
|
|
v-model="spellcheckLanguages"
|
|
|
|
>
|
2021-03-25 16:48:20 +01:00
|
|
|
<el-checkbox
|
|
|
|
v-for="language in languages"
|
|
|
|
:label="language.key"
|
|
|
|
:key="language.key"
|
|
|
|
:name="language.name"
|
|
|
|
:disabled="!spellcheck"
|
|
|
|
>{{ language.name }}</el-checkbox
|
|
|
|
>
|
|
|
|
</el-checkbox-group>
|
2021-03-25 11:04:31 +01:00
|
|
|
</el-form-item>
|
|
|
|
</el-form>
|
2019-11-19 14:38:57 +01:00
|
|
|
</div>
|
2018-08-13 16:48:13 +02:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import Language from '~/src/constants/language'
|
|
|
|
|
|
|
|
export default {
|
|
|
|
name: 'language',
|
2019-11-19 14:38:57 +01:00
|
|
|
data() {
|
2018-08-13 16:48:13 +02:00
|
|
|
return {
|
|
|
|
languages: [
|
2019-11-19 14:38:57 +01:00
|
|
|
Language.cs,
|
2018-08-16 13:58:17 +02:00
|
|
|
Language.de,
|
2018-08-13 16:48:13 +02:00
|
|
|
Language.en,
|
2019-11-19 14:38:57 +01:00
|
|
|
Language.es_es,
|
2018-08-14 23:07:08 +02:00
|
|
|
Language.fr,
|
2021-07-23 16:13:40 +02:00
|
|
|
Language.gd,
|
2021-05-22 09:10:08 +02:00
|
|
|
Language.id,
|
2019-11-19 14:38:57 +01:00
|
|
|
Language.it,
|
2018-08-20 07:28:37 +02:00
|
|
|
Language.ja,
|
2018-08-20 14:21:46 +02:00
|
|
|
Language.ko,
|
2019-11-19 14:38:57 +01:00
|
|
|
Language.no,
|
2019-05-07 22:38:46 +02:00
|
|
|
Language.pl,
|
2019-11-19 14:38:57 +01:00
|
|
|
Language.pt_pt,
|
|
|
|
Language.ru,
|
2020-12-26 15:15:11 +01:00
|
|
|
Language.si,
|
2019-11-19 14:38:57 +01:00
|
|
|
Language.sv_se,
|
2020-10-20 16:06:02 +02:00
|
|
|
Language.tzm,
|
2020-12-24 10:30:46 +01:00
|
|
|
Language.zh_cn,
|
2022-04-18 15:41:52 +02:00
|
|
|
Language.zh_tw,
|
|
|
|
],
|
2018-08-13 16:48:13 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
displayLanguage: {
|
2019-11-19 14:38:57 +01:00
|
|
|
get() {
|
2018-08-13 16:48:13 +02:00
|
|
|
return this.$store.state.Preferences.Language.language.language
|
|
|
|
},
|
2019-11-19 14:38:57 +01:00
|
|
|
set(value) {
|
2022-04-18 15:41:52 +02:00
|
|
|
this.$store
|
|
|
|
.dispatch('Preferences/Language/changeLanguage', value)
|
|
|
|
.then((key) => {
|
|
|
|
this.$i18n.i18next.changeLanguage(key)
|
|
|
|
})
|
|
|
|
},
|
2021-03-25 11:04:31 +01:00
|
|
|
},
|
|
|
|
spellcheck: {
|
|
|
|
get() {
|
2022-04-18 15:41:52 +02:00
|
|
|
return this.$store.state.Preferences.Language.language.spellchecker
|
|
|
|
.enabled
|
2021-03-25 11:04:31 +01:00
|
|
|
},
|
|
|
|
set(value) {
|
2021-03-25 17:35:33 +01:00
|
|
|
this.$store.dispatch('Preferences/Language/toggleSpellchecker', value)
|
2022-04-18 15:41:52 +02:00
|
|
|
},
|
2021-03-25 16:48:20 +01:00
|
|
|
},
|
|
|
|
spellcheckLanguages: {
|
|
|
|
get() {
|
2022-04-18 15:41:52 +02:00
|
|
|
return this.$store.state.Preferences.Language.language.spellchecker
|
|
|
|
.languages
|
2021-03-25 16:48:20 +01:00
|
|
|
},
|
|
|
|
set(value) {
|
2022-04-18 15:41:52 +02:00
|
|
|
this.$store
|
|
|
|
.dispatch('Preferences/Language/updateSpellcheckerLanguages', value)
|
|
|
|
.catch(() => {
|
|
|
|
this.$message({
|
|
|
|
message: this.$t(
|
|
|
|
'message.language_not_support_spellchecker_error'
|
|
|
|
),
|
|
|
|
type: 'error',
|
|
|
|
})
|
2021-03-25 17:30:17 +01:00
|
|
|
})
|
2022-04-18 15:41:52 +02:00
|
|
|
},
|
|
|
|
},
|
2018-08-13 16:48:13 +02:00
|
|
|
},
|
2019-11-19 14:38:57 +01:00
|
|
|
created() {
|
2018-08-13 16:48:13 +02:00
|
|
|
this.$store.dispatch('Preferences/Language/loadLanguage')
|
2022-04-18 15:41:52 +02:00
|
|
|
},
|
2018-08-13 16:48:13 +02:00
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
#language {
|
2021-03-25 11:04:31 +01:00
|
|
|
.description {
|
|
|
|
margin: 24px 0 20px;
|
|
|
|
}
|
|
|
|
|
2018-12-12 01:19:08 +01:00
|
|
|
.section /deep/ {
|
|
|
|
margin-bottom: 40px;
|
|
|
|
|
|
|
|
.el-form-item__label {
|
|
|
|
color: var(--theme-primary-color);
|
|
|
|
}
|
2018-08-13 16:48:13 +02:00
|
|
|
}
|
2018-09-21 16:50:02 +02:00
|
|
|
|
2021-03-25 11:04:31 +01:00
|
|
|
.selection {
|
|
|
|
margin: 12px 0;
|
|
|
|
|
|
|
|
.title {
|
|
|
|
margin-left: 12px;
|
|
|
|
font-weight: 800;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-09-20 17:31:21 +02:00
|
|
|
.notice {
|
|
|
|
color: #c0c4cc;
|
|
|
|
font-size: 12px;
|
2018-08-13 16:48:13 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|