Vue
vue-i18n
Full support for vue-i18n 9+. Scans template syntax, composable calls, and SFC <i18n> blocks.
Detected patterns
Template
<p>{{ $t('greeting') }}</p>Composable
const { t } = useI18n()
const label = t('nav.home')Directive
<span v-t="'actions.save'" />Component
<i18n-t keypath="welcome.message" />Quick integration
import { createI18n } from 'vue-i18n'
const i18n = createI18n({
locale: 'en',
messages: {
en: await fetch('/locale/en.json').then(r => r.json()),
}
})React
react-i18next & react-intl
Both popular React i18n libraries are supported. Pick either and the scanner adapts automatically.
Detected patterns
Hook (i18next)
const { t } = useTranslation()
<h1>{t('greeting')}</h1>Component (i18next)
<Trans i18nKey="terms.accept" />Component (intl)
<FormattedMessage id="welcome" />Imperative (intl)
intl.formatMessage({ id: 'errors.required' })Quick integration
import i18n from 'i18next'
import HttpBackend from 'i18next-http-backend'
i18n.use(HttpBackend).init({
fallbackLng: 'en',
backend: { loadPath: '/locale/{{lng}}.json' },
})Angular
ngx-translate
Works with @ngx-translate/core. Scans templates, pipes, directives and service calls.
Detected patterns
Pipe
<h1>{{ 'greeting' | translate }}</h1>Directive
<span [translate]="'nav.home'"></span>Service
this.translate.instant('errors.required')Stream
this.translate.stream('dashboard.title')Quick integration
import { TranslateModule, TranslateLoader } from '@ngx-translate/core'
import { TranslateHttpLoader } from '@ngx-translate/http-loader'
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (http) => new TranslateHttpLoader(http, '/locale/', '.json'),
deps: [HttpClient]
}
})