← Back to Blog

Free ARB Diff Tool: Compare Flutter Localization Files Online

flutterarbdiffcomparefree-toollocalizationonline

Free ARB Diff Tool: Compare Flutter Localization Files Online

Need to compare two ARB files and find missing translations? Our Free ARB Diff Tool lets you compare Flutter localization files side-by-side — no signup required.

Try It Now

Open Free ARB Diff Tool →

Upload your source and target .arb files to instantly find missing keys, placeholder mismatches, and untranslated strings.

Why Compare ARB Files?

When localizing Flutter apps, translation issues sneak in:

  • Missing translations: Keys in your source file missing from target translations
  • Placeholder mismatches: {userName} in English but {name} in Spanish
  • Untranslated strings: Same value in both files (forgot to translate)
  • Extra keys: Translations exist for keys you deleted from source

Catching these before production saves hours of debugging.

Features of Our Free ARB Diff Tool

1. Instant File Comparison

Upload or drag-and-drop two ARB files. Get results in milliseconds:

Source (English) Target (Spanish) Status
welcomeMessage welcomeMessage ✅ Translated
loginButton ❌ Missing
errorNetwork errorNetwork ⚠️ Possibly untranslated

2. Find Missing Translations

Instantly see which keys exist in your source but are missing in the target:

// Source (app_en.arb)
{
  "welcomeMessage": "Welcome!",
  "loginButton": "Log In",
  "signupButton": "Sign Up"  // ← Missing in target
}

// Target (app_es.arb)
{
  "welcomeMessage": "¡Bienvenido!",
  "loginButton": "Iniciar sesión"
  // signupButton is MISSING!
}

The diff tool flags signupButton as missing in target.

3. Detect Placeholder Mismatches

Placeholder errors cause runtime crashes. We catch them:

// ❌ Placeholder mismatch
// Source: "Hello, {userName}!"
// Target: "Hola, {name}!"  // Wrong placeholder name!

// ✅ Correct
// Source: "Hello, {userName}!"
// Target: "¡Hola, {userName}!"

4. Spot Untranslated Strings

When source and target values are identical (and locales differ), it might be untranslated:

// ⚠️ Possibly untranslated
// Source (en): "Submit"
// Target (es): "Submit"  // Same value - forgot to translate?

5. View All Translations

See every key in your files, including properly translated ones (shown in green). This gives you a complete overview:

  • Green: Properly translated keys
  • Red: Missing or placeholder issues
  • Yellow: Possibly untranslated or missing in source
  • Blue: Metadata differences

6. Export Options

  • Export Report: Download a JSON report with all differences
  • Export Missing Keys: Get a ready-to-translate ARB file with just the missing entries

7. Quick Swap

Compare from either direction with the swap button. See what's missing from A→B or B→A.

How to Use the ARB Diff Tool

Step 1: Open the Tool

Go to flutterlocalisation.com/tools/arb-diff

Step 2: Upload Files

Upload or drag-and-drop:

  • Source file: Usually your primary language (e.g., app_en.arb)
  • Target file: The translation to check (e.g., app_es.arb)

Or click "Load Sample Files" to try with example data.

Step 3: Review Results

The tool shows:

  • Summary stats: Translated, missing, issues count
  • Detailed list: Every difference with values from both files
  • Filters: Show only errors, warnings, or translated keys

Step 4: Filter and Search

  • Use the search box to find specific keys
  • Filter by type: Missing, Placeholder Mismatch, Untranslated
  • Toggle between showing all entries or just issues

Step 5: Export

Click "Export Report" for full JSON or "Export Missing" for a ready-to-translate ARB file.

Common Use Cases

Before Release

Compare all your translation files against the source before shipping:

# Your files
lib/l10n/
  app_en.arb  # Source - 150 keys
  app_es.arb  # Spanish - 147 keys (3 missing!)
  app_fr.arb  # French - 150 keys ✓
  app_de.arb  # German - 149 keys (1 missing!)

After Adding Features

When you add new strings to your source file, quickly find what needs translation:

// New keys added to app_en.arb
"featureX_title": "New Feature",
"featureX_description": "Try our new feature",
"featureX_button": "Get Started"

// ARB Diff shows these as "Missing in Target" for all other languages

Code Review

Before merging PRs that touch localization, compare files to ensure completeness.

Translator Handoff

Export missing keys as a clean ARB file to send to translators:

// missing_translations_es.arb
{
  "@@locale": "es",
  "featureX_title": "New Feature",
  "@featureX_title": {
    "description": "Title for the new feature section"
  }
}

White-Label Apps

Compare translations between app flavors to find brand-specific differences:

// Flavor A: "Welcome to BrandA"
// Flavor B: "Welcome to BrandB"
// Shows as "Translated" (different values, as expected)

Comparison with Other Tools

ARB Diff vs Manual Comparison

Approach Time Accuracy Effort
Manual diff 30+ min Low High
VS Code extension 5 min Medium Medium
ARB Diff Tool Instant High None

ARB Diff vs ARB Editor

Feature ARB Editor ARB Diff
Purpose Edit & validate single file Compare two files
Use case Fix syntax errors Find missing translations
Input One ARB file Two ARB files
Output Fixed ARB file Comparison report

Pro tip: Use both! Edit files with ARB Editor, then compare with ARB Diff.

Best Practices for ARB File Comparison

1. Compare Against Source of Truth

Always compare translations against your primary language file:

app_en.arb (source) → app_es.arb
app_en.arb (source) → app_fr.arb
app_en.arb (source) → app_de.arb

2. Check Regularly

Don't wait until release. Compare after every feature addition.

3. Automate in CI/CD

Use our comparison logic in your build pipeline to catch missing translations early.

4. Export for Translators

When sending work to translators, export only missing keys. They get a clean file to work with.

5. Verify Placeholders

Pay special attention to placeholder mismatches — these cause crashes, not just UI issues.

Understanding Comparison Results

Translated (Green ✅)

Keys that exist in both files with:

  • Matching placeholders
  • Different values (properly translated)
// Source: "Hello, {name}!"
// Target: "¡Hola, {name}!"
// → Translated ✅

Missing in Target (Red ❌)

Keys in source but not in target — needs translation:

// Source has "newFeature": "..."
// Target doesn't have it
// → Missing in Target ❌

Placeholder Mismatch (Red ❌)

Same key but different placeholders — causes runtime errors:

// Source: "Welcome, {userName}!"
// Target: "Bienvenue, {user}!"  // Wrong placeholder!
// → Placeholder Mismatch ❌

Possibly Untranslated (Yellow ⚠️)

Identical values in different locales — might be forgotten:

// Source (en): "OK"
// Target (es): "OK"  // Same value
// → Possibly Untranslated ⚠️

Note: Some words are the same across languages (brand names, technical terms). Review these manually.

Missing in Source (Yellow ⚠️)

Keys in target but not in source — orphaned translations:

// Source doesn't have "oldFeature"
// Target has "oldFeature": "..."
// → Missing in Source ⚠️ (maybe delete from target?)

Frequently Asked Questions

Is the ARB Diff tool free?

Yes, 100% free with no signup required.

Does it work offline?

It's a web-based tool, but files are processed in your browser — we don't store your content.

Can I compare more than two files?

The tool compares two files at a time. For multi-file comparison across all languages, use the FlutterLocalisation platform.

What file formats work?

.arb and .json files with valid ARB structure.

Can I save comparison results?

Yes! Export as JSON report or export missing keys as an ARB file.

How accurate is placeholder detection?

We detect all ICU-style placeholders: {name}, {count, plural, ...}, {gender, select, ...}.

Start Comparing Your ARB Files

Stop manually hunting for missing translations. Our free ARB Diff tool catches everything instantly.

Open Free ARB Diff Tool →


Need to edit ARB files? Try our Free ARB Editor to validate and fix localization files.

Managing multiple languages? Try FlutterLocalisation — the complete Flutter localization platform with AI-powered translations.