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:
    - 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