Vue
vue-i18n
vue-i18n 9+를 완벽하게 지원합니다. 템플릿 구문, 컴포저블 호출 및 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]
}
})