国际化 (I18n)
国际化是一个设计过程,可确保产品(网站或应用程序)可适应各种语言和地区,而无需对源代码进行工程更改。将国际化视为本土化的准备。
处理网站/应用程序的推荐软件包是vue-i18n。应该注意,下面描述的是Quasar框架组件的国际化。 如果您需要国际化自己的组件,请阅读上面指出的文档并通过编辑位于<project>/src/i18n
中的文件来配置项目。
以下是使用vue-i18n-loader在vue文件中使用vue-i18n嵌入式<i18n>
模板组件的示例配方,您必须在quasar.conf.js
中添加它。在这种情况下,翻译以yaml格式存储在块中。
// quasar.conf |
但是,在应用程序空间中处理I18n是不够的。Quasar组件也有自己的标签。一种选择是通过Quasar组件的每个实例(如QTable或QDatetime)上的标签属性来配置标签。这需要时间并为您的网站/应用程序增加不必要的复杂性。相反,请使用Quasar I18n(仅适用于Quasar组件!)系统。
有关可用语言的完整列表,请查看Github上的Quasar I18n。
如果您所需的语言不在该列表中,请随时提交PR以添加它。最多需要5到10分钟。我们非常欢迎任何语言!
配置默认语言
编辑/quasar.conf.js
:framework: {
i18n: 'de'
}
动态改变语言
使用QSelect动态更改Quasar组件语言的示例:<template>
<q-select
stack-label="I18n"
:options="[
{ label: 'English (US)', value: 'en-us' },
{ label: 'English (UK)', value: 'en-uk' },
{ label: 'Romanian', value: 'ro' },
{ label: 'Chinese (Simplified)', value: 'zh-hans' },
{ label: 'Italian', value: 'it' }
{ label: 'Spanish', value: 'es' }
{ label: 'French', value: 'fr' }
{ label: 'German', value: 'de' },
{ label: 'Russian', value: 'ru' },
.......
]"
v-model="lang"
/>
</template>
<script>
export default {
data () {
return {
lang: this.$q.i18n.lang
}
},
watch: {
lang (lang) {
// 动态导入,因此只按需求加载
import(`quasar-framework/i18n/${lang}`).then(lang => {
this.$q.i18n.set(lang.default)
})
}
}
}
</script>
在应用空间中使用Quasar I18n
虽然Quasar I18n仅为Quasar组件设计,但您仍然可以将其用于您自己的网站/应用程序组件。
"Close" label in current Quasar I18n language is: |
检测区域设置
还有一种Quasar提供的开箱即用的方法可以确定用户区域:// 在Vue文件之外
import Quasar from 'quasar'
Quasar.i18n.getLocale() // 返回字符串
// 在Vue文件之内
this.$q.i18n.getLocale() // 返回字符串
处理Quasar UMD
要添加Quasar语言包,您需要为Quasar版本添加语言包JS标签,并告诉Quasar使用它。 例如:
<!-- 在Quasar JS标签之后包含这个 --> |
通过使用$ vue init quasarframework/quasar-starter-kit-umd <文件夹>
生成样本并指定Quasar I18n的语言代码(除默认的“en-us”外),查看需要包含在HTML文件中的标签。