Integrations
Framework & Platform Integrations
IntlPull works with any framework that supports JSON or YAML translation files. Here are step-by-step guides for popular setups.
Frameworks
React
Use with react-i18next or react-intl
// Install
npm install react-i18next i18next
// Configure
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import en from './messages/en.json';
import es from './messages/es.json';
i18n.use(initReactI18next).init({
resources: { en: { translation: en }, es: { translation: es } },
lng: 'en',
fallbackLng: 'en',
});
// Use in components
import { useTranslation } from 'react-i18next';
function Welcome() {
const { t } = useTranslation();
return <h1>{t('common.welcome')}</h1>;
}Next.js
Use with next-intl or next-i18next
// Install
npm install next-intl
// next.config.js
const withNextIntl = require('next-intl/plugin')();
module.exports = withNextIntl({});
// i18n.ts
import { getRequestConfig } from 'next-intl/server';
export default getRequestConfig(async ({ locale }) => ({
messages: (await import(`./messages/${locale}.json`)).default
}));
// Use in components
import { useTranslations } from 'next-intl';
export default function Welcome() {
const t = useTranslations('common');
return <h1>{t('welcome')}</h1>;
}Vue
Use with vue-i18n
// Install
npm install vue-i18n
// main.js
import { createApp } from 'vue';
import { createI18n } from 'vue-i18n';
import en from './messages/en.json';
import es from './messages/es.json';
const i18n = createI18n({
legacy: false,
locale: 'en',
messages: { en, es }
});
createApp(App).use(i18n).mount('#app');
// Use in components
<template>
<h1>{{ $t('common.welcome') }}</h1>
</template>CI/CD Integrations
GitHub Actions
Sync translations on push or PR
# .github/workflows/sync-translations.yml
name: Sync Translations
on:
push:
branches: [main]
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Sync translations
run: npx intlpull sync
env:
INTLPULL_API_KEY: ${{ secrets.INTLPULL_API_KEY }}
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'chore: sync translations'GitLab CI
Integrate with GitLab pipelines
# .gitlab-ci.yml
sync-translations:
stage: prepare
image: node:20
script:
- npx intlpull sync
artifacts:
paths:
- messages/
only:
- mainWebhooks
Configure webhooks to get notified when translations change. Available events:
translation.created- New key addedtranslation.updated- Translation modifiedtranslation.deleted- Key removedtranslation.published- Changes published to productionimport.completed- Bulk import finished
Configure webhooks in your project settings or via the API.
SSO / SAML
IntlPull supports enterprise SSO with SAML 2.0 and OIDC. Supported providers:
Okta
Azure AD
Google Workspace
OneLogin
Auth0
JumpCloud
SSO is available on Professional and Enterprise plans. Contact us for setup assistance.