npm.io
0.3.0 • Published 3d ago

@intl-ai/unplugin

Licence
MIT
Version
0.3.0
Deps
4
Size
21 kB
Vulns
0
Weekly
14

@intl-ai/unplugin

npm

AI-powered i18n translation plugin for all bundlers.

Install

npm install -D @intl-ai/unplugin

Quick Start

Create an intl-ai.config.ts (or .json) at your project root:

// intl-ai.config.ts
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";

const openai = createOpenAICompatible({
  name: "openai",
  baseURL: "https://api.openai.com/v1",
  apiKey: process.env.OPENAI_API_KEY,
});

export default {
  model: openai("your-model-name"),
  defaultLocale: "en",
  locales: ["en", "es", "fr"],
  localeDir: "./locales",
};

Then add the plugin to your bundler config:

Vite
// vite.config.ts
import { defineConfig } from "vite";
import IntlAi from "@intl-ai/unplugin/vite";

export default defineConfig({
  plugins: [
    IntlAi({
      sourceLanguage: "en",
      targetLanguages: ["es", "fr", "de"],
    }),
  ],
});
Webpack
// webpack.config.js
const IntlAi = require("@intl-ai/unplugin/webpack").default;

module.exports = {
  plugins: [new IntlAi({ sourceLanguage: "en", targetLanguages: ["es", "fr", "de"] })],
};
Rollup
// rollup.config.js
import IntlAi from "@intl-ai/unplugin/rollup";

export default {
  plugins: [IntlAi({ sourceLanguage: "en", targetLanguages: ["es", "fr", "de"] })],
};
esbuild
// esbuild.config.js
import { esbuildPlugin } from "@intl-ai/unplugin/esbuild";

export default {
  plugins: [esbuildPlugin({ sourceLanguage: "en", targetLanguages: ["es", "fr", "de"] })],
};
Rspack
// rspack.config.js
const IntlAi = require("@intl-ai/unplugin/rspack").default;

module.exports = {
  plugins: [new IntlAi({ sourceLanguage: "en", targetLanguages: ["es", "fr", "de"] })],
};
Bun
// bunfig.toml
[plugins][plugins.prebuild];
script = "intl-ai fill";

Or use the plugin directly:

import IntlAi from "@intl-ai/unplugin/bun";

export default {
  plugins: [IntlAi({ sourceLanguage: "en", targetLanguages: ["es", "fr", "de"] })],
};
Nuxt
// nuxt.config.ts
export default defineNuxtConfig({
  modules: ["@intl-ai/unplugin/nuxt"],
  intlAi: {
    sourceLanguage: "en",
    targetLanguages: ["es", "fr", "de"],
  },
});

Zero-config usage also works — the plugin auto-discovers intl-ai.config.{ts,json} from your project root.

Documentation · Report an issue

Keywords