Guide FAQ

How to use i18n SaaS

Complete guide to automating your product localization

What is i18n SaaS?

i18n SaaS is a centralized platform for managing translations of your application, website, or service. Forget the chaos of managing raw JSON files. Now your whole team can collaborate in a single, user-friendly interface, while our AI automatically translates keys into dozens of target languages.

AI Presenter
🤖 VOICE ACTIVE
Launch Robot PresenterHe will guide you through all our benefits
00:00 / 00:45
ROBOT SYNTH

Step 1: Creating a Project

The first step is to create a project. Select the base language (the language your code is currently written in) and the target languages you want to translate your interface into.

Create Project
Гайд
Create New Project
|
UK
00:00 / 00:05
LOFI AMBIENT

Step 2: Automated Translation with AI

The most powerful feature of the platform is auto-translation. Add a target language, and our advanced neural network will automatically translate all existing keys while perfectly preserving context and code variables.

AI Translation
Гайд
Translation Table
KeyUKENCS
button.saveпорожньопорожньо
00:00 / 00:08
LOFI AMBIENT

Step 3: Team Collaboration

Invite your teammates and assign roles to work on translations together:

Owner
Has full administrative control, including deleting the organization.
Admin
Manages organization members, billing, and project configurations.
Editor
Has permission to modify, add, and save translations.
Viewer
Has read-only access to view projects and translations without modifying them.
Team Collab
Гайд
Invite Teammate
|
...
00:00 / 00:06
LOFI AMBIENT

Step 4: Analytics and Progress Tracking

Track your project status in real-time. Our dashboard shows the exact translation progress for each locale, total key distribution, and the precise word count saved by leveraging our AI translation engine!

Analytics Panel
Гайд
Project Analytics
100% IN SYNC
COVERAGE
0%
SAVED WORDS
0
words saved
00:00 / 00:05
LOFI AMBIENT

Step 5: Importing and Exporting Translations

You can easily export all your translations as a ZIP archive containing JSON files for each language. This allows you to edit translations locally in your favorite code editor or share them with professional translators.

Once your local files are ready, upload them back using the import button. The system will perform a smart merge of translations:

Import Priority
If a key already exists in the project table, its value will be updated with the value from the imported file (it has higher priority).
Preservation of Existing Data
All keys present in the table but missing from the imported file will remain completely untouched.
Automatic Language Detection
If the ZIP archive contains a JSON file for a new language not yet in the project, this language will be automatically added.

Step 6: Automated Build Integration (CI/CD)

To build a truly automated localization workflow, you do not need to manually download or export translation archives. You can automatically pull fresh translations directly from our CDN/API using scripts during the pre-build stage of your CI/CD pipeline.

Create a download-locales.js file in your project root:

// download-locales.js
import fs from 'fs';
import path from 'path';

const API_TOKEN = process.env.I18N_PROJECT_TOKEN || 'YOUR_PROJECT_TOKEN';
const LOCALES = ['en', 'uk', 'es']; // Add your languages here
const OUTPUT_DIR = path.resolve('src/locales');

async function downloadLocales() {
  if (!fs.existsSync(OUTPUT_DIR)) {
    fs.mkdirSync(OUTPUT_DIR, { recursive: true });
  }

  for (const locale of LOCALES) {
    const url = `https://api.i18n-saas.com/api/public/translations/${API_TOKEN}/${locale}`;
    console.log(`Downloading translations for: ${locale}...`);
    try {
      const res = await fetch(url);
      if (!res.ok) throw new Error(`HTTP ${res.status}`);
      const data = await res.json();
      
      const filePath = path.join(OUTPUT_DIR, `${locale}.json`);
      fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
      console.log(`✓ Saved ${locale}.json`);
    } catch (err) {
      console.error(`✗ Failed for ${locale}:`, err.message);
      process.exit(1);
    }
  }
}

downloadLocales();

Add its execution before the build script in package.json to update translations automatically:

{
  "scripts": {
    "prebuild": "node download-locales.js",
    "build": "nuxt build"
  }
}