Skip to content
F fluenti

Migration from vue-i18n

Terminal window
pnpm add @fluenti/vue @fluenti/vite-plugin @fluenti/cli
// Before (vue-i18n)
import { createI18n } from 'vue-i18n'
const i18n = createI18n({ locale: 'en', messages: { en, zhCN } })
app.use(i18n)
// After (Fluenti)
import { createFluentVue } from '@fluenti/vue'
const i18n = createFluentVue({ locale: 'en', messages: { en, 'zh-CN': zhCN } })
app.use(i18n)
<!-- Before -->
<p>{{ $t('hello', { name: userName }) }}</p>
<!-- After — Option A: v-t directive -->
<p v-t>Hello {{ userName }}</p>
<!-- After — Option B: keep $t() (works as-is) -->
<p>{{ $t('hello', { name: userName }) }}</p>
<script setup>
// Before
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
const msg = t('greeting')
// After — no imports needed
const msg = t('greeting')
</script>
vite.config.ts
import fluentiPlugin from '@fluenti/vite-plugin'
export default defineConfig({
plugins: [vue(), fluentiPlugin()],
})
vue-i18nFluenti
$t(key)$t(key) (same)
$d(date)$d(date) (same)
$n(num)$n(num) (same)
useI18n()useI18n() (same)
<i18n-t><Trans>
Manual key filesAutomatic extraction with fluenti extract