# Single file components: <i18n>
by @kazupon (opens new window)
Single File Components can have an <i18n>
block for defining translations locally in the component.
<i18n> { "en": { "hello": "hello world!" } } </i18n>
<template>
<div id="app"><p>message: {{ $t('hello') }}</p></div>
</template>
<script>
export default {
name: "app"
};
</script>
# i18n tag
To use the <i18>
tag you need to use vue-loader:
npm install @kazupon/vue-i18n-loader --save-dev
For detailed documentation check the original docs (opens new window).
// vue-loader (~v14.x):
module.exports = {
// ...
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
// you need to specify `i18n` loaders key with `vue-i18n-loader` (https://github.com/kazupon/vue-i18n-loader)
i18n: '@kazupon/vue-i18n-loader'
}
}
},
// ...
]
},
// ...
}
# Use it with YAML:
npm install yaml-loader --save-dev
<i18n> en: hello: "hello world!" </i18n>
module.exports = {
// ...
module: {
rules: [
{
test: /\.vue$/,
loader: "vue-loader",
options: {
preLoaders: {
i18n: "yaml-loader"
},
loaders: {
i18n: "@kazupon/vue-i18n-loader"
}
}
}
// ...
]
}
// ...
};
← Accessing i18next SSR →