跳转到内容
框架

一个仪表盘,适配任何框架

原生支持 Vue、React 和 Angular。扫描器会从 package.json 中自动检测您的 i18n 库——无需任何配置。

Vue

vue-i18n

全面支持 vue-i18n 9.0 及以上版本。可扫描模板语法、可组合函数调用以及 SFC 中的 <i18n> 代码块。

检测到的模式

  • 模板
    <p>{{ $t('greeting') }}</p>
  • 可组合的
    const { t } = useI18n()
    const label = t('nav.home')
  • 指令
    <span v-t="'actions.save'" />
  • 组件
    <i18n-t keypath="welcome.message" />

快速集成

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

两种流行的 React 国际化(i18n)库均受支持。任选其一,扫描器都会自动进行适配。

检测到的模式

  • Hook (i18next)
    const { t } = useTranslation()
    <h1>{t('greeting')}</h1>
  • 组件 (i18next)
    <Trans i18nKey="terms.accept" />
  • 组件(国际版)
    <FormattedMessage id="welcome" />
  • 命令式(国际)
    intl.formatMessage({ id: 'errors.required' })

快速集成

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

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

ngx-translate

与 @ngx-translate/core 配合使用。扫描模板、管道、指令和服务调用。

检测到的模式

  • 管道
    <h1>{{ 'greeting' | translate }}</h1>
  • 指令
    <span [translate]="'nav.home'"></span>
  • 服务
    this.translate.instant('errors.required')
  • this.translate.stream('dashboard.title')

快速集成

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