如何在 vuetify 中更改语言环境时更改字体系列
How to change font-family when locale language changes in vuetify
我有一个多语言应用程序,它将通过 select 输入在两种语言之间切换区域设置来切换语言,另一方面,我有 2 个字体系列,我想在区域设置时切换改变了。
vuetify.js
import Vue from 'vue';
import Vuetify from 'vuetify';
import 'vuetify/dist/vuetify.min.css';
import fa from '../i18n/vuetify/fa.ts';
import en from '../i18n/vuetify/en.ts';
Vue.use(Vuetify);
export default new Vuetify({
rtl: true,
lang: {
locales: { fa, en },
current: 'fa',
},
});
style.scss
// my font-faces
@import url('./fonts/gilroy/gilroy.css');
@import url('./fonts/yekan/yekan.css');
$font-family: 'YekanBakh'; //or Gilroy
.v-application {
font-family: $font-family, sans-serif !important;
[class*='text-'] {
font-family: $font-family, sans-serif !important;
}
}
LanguageSelector.vue
export default {
data: () => ({
languages: [
{
label: 'فـارسی',
value: 'fa',
icon: iranFlag,
},
{
label: 'English',
value: 'en',
icon: ukFlag,
},
],
selectedLanguage: {
label: 'فـارسی',
value: 'fa',
icon: iranFlag,
},
}),
watch: {
selectedLanguage(val) {
this.$vuetify.lang.current = val;
if (val === 'en') {
this.$vuetify.rtl = false;
} else {
this.$vuetify.rtl = true;
}
},
},
尽管有不同的实现方式,但逻辑是相似的。
您应该有两个单独的文件(例如:style.css 和 style.rtl.css),并在您的自定义语言服务的帮助下检测所选语言环境的方向,然后将相应的样式应用到您的应用程序。
但是,我们如何才能实现这个目标呢?这完全取决于您的需要。您可以手动完成或使用类似 plugin.
的东西
我有一个多语言应用程序,它将通过 select 输入在两种语言之间切换区域设置来切换语言,另一方面,我有 2 个字体系列,我想在区域设置时切换改变了。
vuetify.js
import Vue from 'vue';
import Vuetify from 'vuetify';
import 'vuetify/dist/vuetify.min.css';
import fa from '../i18n/vuetify/fa.ts';
import en from '../i18n/vuetify/en.ts';
Vue.use(Vuetify);
export default new Vuetify({
rtl: true,
lang: {
locales: { fa, en },
current: 'fa',
},
});
style.scss
// my font-faces
@import url('./fonts/gilroy/gilroy.css');
@import url('./fonts/yekan/yekan.css');
$font-family: 'YekanBakh'; //or Gilroy
.v-application {
font-family: $font-family, sans-serif !important;
[class*='text-'] {
font-family: $font-family, sans-serif !important;
}
}
LanguageSelector.vue
export default {
data: () => ({
languages: [
{
label: 'فـارسی',
value: 'fa',
icon: iranFlag,
},
{
label: 'English',
value: 'en',
icon: ukFlag,
},
],
selectedLanguage: {
label: 'فـارسی',
value: 'fa',
icon: iranFlag,
},
}),
watch: {
selectedLanguage(val) {
this.$vuetify.lang.current = val;
if (val === 'en') {
this.$vuetify.rtl = false;
} else {
this.$vuetify.rtl = true;
}
},
},
尽管有不同的实现方式,但逻辑是相似的。 您应该有两个单独的文件(例如:style.css 和 style.rtl.css),并在您的自定义语言服务的帮助下检测所选语言环境的方向,然后将相应的样式应用到您的应用程序。 但是,我们如何才能实现这个目标呢?这完全取决于您的需要。您可以手动完成或使用类似 plugin.
的东西