š i18n Editor for macOS

Transform your translation workflow today - because life's too short for manual JSON editing.
A beautiful, native macOS app for effortless Paraglide JS internationalization management
Transform your Paraglide JS workflow with an intuitive, native editor that makes managing i18n JSON files a breeze. Optimized for SvelteKit projects using Paraglide JS from inlang.

šø Screenshots



Translation Table ⢠Smart Refactoring ⢠Project Management
⨠Why i18n Editor?
Stop wrestling with JSON files. Start focusing on what matters - your content.
- šÆ Native macOS Experience - Feels right at home on your Mac
- š Paraglide JS Optimized - Built specifically for Paraglide JS workflows
- š Smart Detection - Automatically scans
project.inlang/settings.json
and i18n JSON files - š Visual Translation Table - Spreadsheet-like editing with Excel-style navigation
- š§ Intelligent Refactoring - AI-powered optimization suggestions
- ā” Real-time Validation - Catch issues before they reach production
- š Framework Agnostic - Works with any framework using similar inlang settings
š¬ Features That Make You Smile
š Intuitive Translation Editing
- Double-click to edit any translation cell
- Arrow key navigation between cells (just like Excel!)
- Tab/Shift+Tab for sequential editing
- Auto-save drafts with visual change indicators
- Bulk operations for efficient mass editing
š§ Smart Refactoring Engine
- Remove empty translations automatically
- Merge duplicate keys with conflict resolution
- Optimize nesting structure for better organization
- Sort keys alphabetically for consistency
- Format JSON with beautiful indentation
š Advanced Search & Filtering
- Real-time search across all translations
- Filter by status (missing, empty, complete)
- Sort by usage frequency or alphabetically
- Multi-locale filtering for targeted editing
š Project Intelligence
- Automatic settings detection - Scans
project.inlang/settings.json
automatically - Usage tracking - See which keys are actually used in your codebase
- Translation statistics with completion percentages
- Route-based analysis for SvelteKit + Paraglide JS projects
- Smart key extraction from Svelte files and Paraglide JS usage patterns
ā” Validation & Quality Assurance
- Real-time validation of message formats
- Cross-locale consistency checks
- Missing translation detection
- Syntax error highlighting
- Auto-fix suggestions for common issues
šļø Seamless Project Management
- Automatic inlang project detection - Finds and loads
project.inlang/settings.json
- Paraglide JS configuration support - Reads pathPattern, locales, and baseLocale
- Automatic locale file creation when adding new languages
- Smart file deletion prompts when removing locales
- Security-scoped file access (macOS sandbox compliant)
- Recent projects for quick access
š Getting Started
Prerequisites
- macOS 12.0 or later
- A project with Paraglide JS setup (SvelteKit recommended)
project.inlang/settings.json
configuration file
Installation
- Download the latest release from Releases
- Drag i18n Editor.app to your Applications folder
- Launch and grant file access permissions when prompted
First Steps
- Open your project - Click "Select Project Folder" and choose your project root
- Automatic detection - The app scans for
project.inlang/settings.json
and loads your configuration - Start editing - Double-click any cell to begin translating
- Save when ready - Hit "Save All" to write changes to your JSON files
Supported Project Structure
Framework Compatibility
While optimized for Paraglide JS + SvelteKit, this app works with any project that uses:
project.inlang/settings.json
configuration file- JSON-based translation files
- Standard inlang pathPattern structure
Tested with:
- ā SvelteKit + Paraglide JS
- ā Any framework following inlang conventions
šÆ Perfect For
- Paraglide JS users in SvelteKit projects seeking visual translation management
- inlang ecosystem adopters who want a native macOS editing experience
- Translation teams who prefer spreadsheet-like editing over raw JSON
- Project managers tracking translation progress across multiple locales
- Developers using any framework with similar
project.inlang/settings.json
structure - Anyone tired of manually editing JSON translation files
š ļø Built With Love Using
- SwiftUI - For that native macOS feel
- Core Data - Robust data persistence
- Security-Scoped Bookmarks - Sandbox-friendly file access
- Combine - Reactive programming patterns
- inlang ecosystem integration - Native support for Paraglide JS workflows
- Apple Human Interface Guidelines - Because good design matters
š¤ Contributing & Feature Requests
We'd love to hear from you! This app is built for the community, by the community.
š” Request Features
Have an idea that would make your i18n workflow even better? Open an issue and tell us about it!
š Found a Bug?
Help us squash it! Report bugs here with:
- Steps to reproduce
- Expected vs actual behavior
- Your macOS version
- Sample project (if possible)
š§ Want to Contribute?
- Fork the repository
- Create a feature branch (
git checkout -b amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin amazing-feature
) - Open a Pull Request
š License
This project is licensed under the MIT License - see the LICENSE file for details.
š Acknowledgments
- The inlang team for creating Paraglide JS and the amazing i18n ecosystem
- The SvelteKit team for building an incredible framework
- The i18n community for inspiration and feedback
- Apple for the excellent development tools and guidelines
Made with ā¤ļø in šš°š²š“šØš³ for the Paraglide JS and SvelteKit community