Skip to content
Frameworks

One dashboard, any framework

Native support for Vue, React and Angular. The scanner auto-detects your i18n library from package.json — no configuration required.

Frameworks supported
3
i18n libraries
4
Detected patterns
12
  1. package.json
  2. Library detected
  3. Detected patterns
vue-i18n · react-i18next · react-intl · ngx-translate

Vue

vue-i18n

Full support for vue-i18n 9+. Scans template syntax, composable calls, and SFC <i18n> blocks.

Quick integration

main.ts
import { createI18n } from 'vue-i18n'

const i18n = createI18n({
  locale: 'en',
  messages: {
    en: await fetch('/locale/en.json').then(r => r.json()),
  }
})

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" />

React

react-i18next & react-intl

Both popular React i18n libraries are supported. Pick either and the scanner adapts automatically.

Quick integration

i18n.ts
import i18n from 'i18next'
import HttpBackend from 'i18next-http-backend'

i18n.use(HttpBackend).init({
  fallbackLng: 'en',
  backend: { loadPath: '/locale/{{lng}}.json' },
})

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' })

Angular

ngx-translate

Works with @ngx-translate/core. Scans templates, pipes, directives and service calls.

Quick integration

app.module.ts
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]
  }
})

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')
Let's start

Translating your app in four steps.

  1. Create your account

    Free to start: 30 days of any plan, no card. Stays free for 1 project.

  2. Install it

    How do you want to install it?

    On your own server. Then open localhost:6001.

    docker compose pull && docker compose up -d

    Self-hosting guide

    macOS, Windows or Linux. It runs its own local server.

    Download the app
  3. Connect your project

    Point it at a folder or a Git repository. It finds your framework and your locale files.

  4. Translate

    Pick one of 8 providers and translate a whole language at once. Google Translate works without a key.