Skip to content

AZbox for Next.js

Updated:

Localize your Next.js app

AZbox integrates with Next.js internationalization workflows. Whether you use next-intl, next-i18next, or the built-in i18n routing, manage your translation files with AZbox.

How it works

  1. Push your JSON files — Upload translation keys from your /locales directory
  2. AI translates — Get translations in minutes
  3. Pull updated files — Download and commit to your repo, or fetch them from the API in a build step

Supported formats

  • .json — Standard locale files (flat or nested)
  • .yaml — Alternative format

Quick setup

npm install azbox-node

Add to your build pipeline:

// scripts/sync-translations.mjs  (Node 18+)
import { writeFile } from "node:fs/promises";
import { AzboxClient } from "azbox-node";

for (const language of ["ES", "FR", "DE", "JA"]) {
  const client = new AzboxClient({
    apiKey: process.env.AZBOX_API_KEY,
    projectId: process.env.AZBOX_PROJECT_ID,
    language,
  });

  // { "home.title": "Bienvenido", … }
  const messages = await client.getTranslations();

  await writeFile(
    `./locales/${language.toLowerCase()}.json`,
    JSON.stringify(messages, null, 2),
  );
}

getTranslations() leaves out keywords that have no text yet in that language, so an untranslated key never overwrites a file with an empty string.

Pulling in CI

The script above is an ordinary build step. If writing the files is all you need, the AZbox CLI does it without a script. What you cannot do is the other direction: the API is read-only for keywords, and they are created in the dashboard or by importing a file.

Pricing

The free plan does not expire: 1 project, 2 languages and unlimited keys, which is enough for a small Next.js site.

Start free — no credit card →

Call to action background

Start Global Growth Today

Upload your language files, get them translated, and keep every locale in sync as your product keeps changing.

Get Started - It's Free