Skip to content

About

Compare and synchronize your translation files effortlessly. A fast, secure, browser-based tool for managing JSON localization files across multiple languages.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

263 Commits

Folders and files

Repository files navigation

JSON l10n Diff Tool

JSON l10n Diff logo

CI

⚠️ Status: Coming Soon - In Active Development

Compare and synchronize your translation files effortlessly. A fast, secure, browser-based tool for managing JSON localization files across multiple languages.

Why JSON l10n Diff?

Perfect for developers, translators, and localization teams who need to:

  • πŸ” Quickly spot missing translations between language files
  • 🎯 Identify untranslated placeholder text that's been copied across files
  • ✏️ Edit translations directly without switching tools
  • πŸ’Ύ Keep translation files in sync across your project
  • πŸ”’ Work with sensitive data locally (nothing uploaded to servers)
  • 🌐 Multilingual interface (English and French)

✨ What You Can Do

Compare Translation Files

Upload your JSON localization files (e.g., en.json and fr.json) and instantly see:

  • πŸ”΄ Missing keys - Translations that exist in one file but not the other
  • 🟑 Identical values - Potential untranslated text (same value in both languages)
  • βšͺ Different values - Properly translated content

Edit On-the-Spot

  • Add missing keys with one click to either file
  • Inline editing β€” click any identical-status primitive value (string, number, boolean, null) to edit it directly in the tree
  • Type-safe parsing β€” edited values are automatically converted back to the correct JSON type (e.g., "true" β†’ true, "42" β†’ 42)
  • Fix placeholders without leaving your browser

Export Your Updates

  • Download modified files with all your changes
  • Prettify JSON for consistent formatting
  • Clean diffs for easier version control

πŸ”’ Privacy & Security

  • 100% client-side - All processing happens in your browser
  • No uploads - Your files never leave your computer
  • No tracking - We don't collect or store your data
  • Open source - Inspect the code yourself on GitHub

οΏ½ Getting Started

For End Users

Coming Soon! The tool will be available at a hosted URL. Simply:

  1. Visit the website
  2. Upload your first JSON translation file
  3. Upload your second JSON translation file
  4. Review differences with color-coded highlighting
  5. Edit, add missing keys, and export your updated files

No installation requiredβ€”just open your browser and start comparing!

For Developers

Want to run it locally or contribute? See the Development Setup section below.

πŸ“ Use Cases

Scenario 1: Finding Missing Translations

You've added new features to your app and need to ensure all languages are up to date.

βœ… Upload en.json (your main language file)
βœ… Upload fr.json (French translations)
πŸ”΄ Missing keys highlighted instantly
βž• Add missing keys with one click
πŸ’Ύ Save updated fr.json

Scenario 2: Catching Untranslated Placeholders

Sometimes placeholder text gets copied instead of translated.

βœ… Upload en.json: { "welcome": "Welcome" }
βœ… Upload fr.json: { "welcome": "Welcome" }
🟑 Identical values highlighted in yellow
✏️ Click the value to edit inline β†’ "Bienvenue"
πŸ’Ύ Save corrected fr.json

Scenario 3: Team Synchronization

Multiple team members working on translations? Keep files in sync.

βœ… Compare your local changes against the main branch
πŸ”΄ See what others added that you're missing
βž• Add new keys to your file
πŸ’Ύ Export and commit synchronized files

πŸ’‘ How It Works

  1. Upload - Drag and drop or select your JSON files
  2. Parse - Files are validated and structured into a nested tree
  3. Compare - Differences are calculated and color-coded (missing, identical, different)
  4. Edit - Click identical values to edit inline, or add missing keys with one click
  5. Export - Download your modified files with prettified JSON

All processing happens in your browserβ€”fast, secure, and private.

❓ FAQ

Q: What file formats are supported? A: Valid JSON files only. The tool validates your files on upload.

Q: Is there a file size limit? A: Yes, 10 MB per file. This is sufficient for even very large translation projects.

Q: Can I use this offline? A: Yes! Once loaded, the app works completely offline. (Note: Initial download requires internet)

Q: Do you support other formats (YAML, XML, etc.)? A: Currently JSON only. Other formats may be added based on user demand.

Q: How are keys counted for tier limits? A: Every key including parent objects counts. Example: { "user": { "profile": { "name": "John" } } } = 3 keys.

Q: What happens if I exceed my tier limit? A: You'll see an error message and be prompted to upgrade or use a smaller file.

πŸ”— Links

πŸ“ž Support


οΏ½πŸ› οΈ For Developers & Contributors

Tech Stack

  • Vue 3.5.22 - Progressive JavaScript framework
  • Vite 7.1.14 (Rolldown variant) - Lightning-fast build tool
  • Pinia 2.2.8 - State management
  • JavaScript ES6+ - Modern JavaScript

Local Development Setup

# Clone the repository
git clone https://github.com/iirving/json-l10n-diff.git
cd json-l10n-diff

# Install dependencies
npm install

# Start development server (http://localhost:5173)
npm run dev

# Build for production
npm run build

Test Data

The ./data directory contains l10n JSON test files for development, testing, and examples:

data/
└── test1/
    β”œβ”€β”€ test1.en.json    # English test file
    └── test1.fr.json    # French test file

Use these files to test the tool during development or as reference examples.

Development Status

Current Phase: Implementation in progress (MVP development)

  • βœ… Planning & specifications complete
  • βœ… Architecture & component design finalized
  • πŸ”„ Core features being implemented
  • ⏳ Expected MVP: 2-3 weeks
  • ⏳ Full release: 4-6 weeks

Contributing

We welcome contributions! Check out:

Documentation for Developers

πŸ“„ License

This project is licensed under the MIT License - free to use, modify, and distribute.


Built with ❀️ using Vue 3 + Vite | Privacy-first localization comparison tool

About

Compare and synchronize your translation files effortlessly. A fast, secure, browser-based tool for managing JSON localization files across multiple languages.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages