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 { useTranslation } from '@/hooks/useTranslation';
export default function Welcome() {
const { t } = useTranslation('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 @intlpullhq/cli 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 @intlpullhq/cli sync
artifacts:
paths:
- messages/
only:
- main

Webhooks

Configure webhooks to get notified when translations change. Available events:

  • translation.created - New key added
  • translation.updated - Translation modified
  • translation.deleted - Key removed
  • translation.published - Changes published to production
  • import.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.

Next Steps

    Integrations - IntlPull Documentation | IntlPull