Inline Translations
vueI18nInlinePlugin bakes all locale JSON files into the production bundle at build time via a virtual module. There are no runtime HTTP requests — the translations are a plain JavaScript object embedded in the bundle.
Ideal for: SSR apps, offline-capable PWAs, small projects where bundle size matters less than loading latency.
ts
// vite.config.ts
import { vueI18nInlinePlugin } from 'vue-i18n-kit/vite'
export default defineConfig({
plugins: [
vue(),
vueI18nInlinePlugin({
locales: {
en: 'src/locales/en.json',
ru: 'src/locales/ru.json',
de: 'src/locales/de.json',
},
}),
],
})Usage in your app
ts
import inlineLocales from 'virtual:vue-i18n-kit/locales'
app.use(
createVueI18nPlugin({
defaultLocale: 'en',
locales: {
en: { messages: inlineLocales.en, meta: { display: 'English' } },
ru: { messages: inlineLocales.ru, meta: { display: 'Русский' } },
},
}),
)TypeScript — add to env.d.ts or vite-env.d.ts:
ts
declare module 'virtual:vue-i18n-kit/locales' {
const locales: Record<string, Record<string, unknown>>
export default locales
}