A powerful, modern desktop application for comparing and analyzing localization files. Built with Flutter for native performance across Windows, macOS, and Linux.
The Localization Comparison Tool helps developers, translators, and localization teams efficiently compare different versions of language files. Whether you're tracking changes between releases, validating translations, or managing multilingual projects, this tool provides a clear, visual way to identify what's been added, removed, or modified.
- Multi-Format Support: JSON, XML, XLIFF, TMX, CSV, YAML, Properties, RESX, TXT, DOCX, and more
- Intelligent Diff Detection: Automatically identifies added, removed, and modified strings
- Similarity Analysis: Advanced algorithms detect how much modified strings have changed
- Batch Processing: Compare entire directories with matching file pairs

- Material Design 3: Beautiful, intuitive interface that follows platform conventions
- Advanced Theming: Light, Dark, and Amoled modes with customizable accent colors
- Drag & Drop: Simply drag files from your desktop for instant comparison
- Responsive Design: Optimized for different screen sizes and resolutions

- Real-Time File Watching: Automatically recompares files when they change on disk
- Large Dataset Support: Handle files with thousands of entries using smart pagination
- Export Capabilities: Export comparison results to CSV for documentation
- Comparison History: Keep track of past comparisons with full session history

- Advanced Filtering: Filter results by change type, similarity levels, and custom patterns
- Custom Settings: Configure ignore patterns, case sensitivity, and default file formats
- Progress Tracking: Real-time progress indicators for large file operations
- Cross-Platform: Native desktop performance on Windows, macOS, and Linux

Format | Extensions | Description |
---|---|---|
JSON | .json |
Standard JSON localization files |
XML | .xml |
Android strings.xml and generic XML files |
XLIFF | .xliff , .xlf |
Translation industry standard format |
TMX | .tmx |
Translation Memory eXchange format |
CSV | .csv |
Comma-separated values |
YAML | .yaml , .yml |
YAML configuration files |
Properties | .properties |
Java properties files |
RESX | .resx |
.NET resource files |
Text | .txt |
Plain text files (line-by-line processing) |
Word | .docx |
Microsoft Word documents |
Language | .lang |
Android language files |
- Download or clone this repository
- Double-click
run_localizer_app.bat
in the project directory - The app will launch automatically
# Navigate to the project directory
cd LocalizerAppMain
# Install dependencies
flutter pub get
# Generate required code
flutter packages pub run build_runner build
# Launch the application
flutter run
# Build for your platform
flutter build windows # or macos, linux
# Find the executable in build/windows/runner/Release/
- OS: Windows 10 version 1903 (build 18362) or later
- Architecture: x64, ARM64
- Memory: 4GB RAM minimum, 8GB recommended
- Storage: ~10MB available space
-
Launch the Application
- Use
run_localizer_app.bat
(Windows) or runflutter run
from the terminal
- Use
-
Select Files to Compare
- Drag & Drop: Drag your source and target files directly onto the selection areas
- Browse: Click the "Browse" buttons to select files using the file picker
-
Start Comparison
- Click "Compare Files" to analyze the differences
- View results instantly in the main comparison view
-
Explore Results
- Basic View: See an overview with filters for Added, Removed, and Modified entries
- Advanced View: Detailed analysis with pagination for large datasets
- Export: Save results as CSV for documentation or further analysis
-
Configure Settings (Optional)
- Auto-Reload: Enable automatic recomparison when files change
- Themes: Choose Light, Dark, or Amoled mode
- File Formats: Set default formats and encoding preferences
- Ignore Patterns: Configure regex patterns to ignore specific keys
- Basic Comparison: Quick overview with filtering and analytics
- Advanced Diff: Detailed table view with pagination and export options
- History: Browse and reload previous comparison sessions
- Files: Directory-based comparison for batch operations
- Settings: Comprehensive customization options
- Filter Buttons: Quickly filter by Added, Removed, Modified, or All changes
- Analytics Bar: Real-time statistics showing total keys and change counts
- Auto-Reload Indicator: Shows when file watching is active
- Theme Toggle: Quick access to light/dark theme switching
Enable in Settings to automatically detect and recompare files when they change on disk. Perfect for active development workflows where you're editing localization files and want immediate feedback.
- Change Type: Filter by Added, Removed, or Modified entries
- Similarity Levels: For modified strings, filter by how much they've changed
- Custom Patterns: Use regex patterns to ignore specific keys during comparison
- Search: Find specific keys or values within comparison results
- Pagination: Large files (1000+ keys) are automatically paginated for smooth navigation
- Background Processing: File parsing happens in the background without blocking the UI
- Memory Efficient: Optimized data structures handle large datasets efficiently
- Progress Indicators: Clear feedback during processing operations
- Flutter 3.19+ installed and configured
- Dart SDK 3.0+
- Platform-specific development tools (Visual Studio on Windows, Xcode on macOS, etc.)
# Clone the repository
git clone https://github.com/KhazP/LocalizerAppMain.git
cd LocalizerAppMain
# Install dependencies
flutter pub get
# Generate code for data models
flutter packages pub run build_runner build
# Run in development mode
flutter run -d windows # or macos, linux
# Run tests
flutter test
lib/
βββ business_logic/blocs/ # State management (BLoC pattern)
βββ core/services/ # Core business services
βββ data/ # Data models and repositories
βββ presentation/ # UI components and screens
βββ main.dart # Application entry point
Contributions are welcome! This project uses:
- Flutter/Dart for cross-platform desktop development
- BLoC pattern for state management
- Hive for local data persistence
- Material Design 3 for UI components
- Additional file format parsers
- Enhanced export options (PDF, Excel)
- Git integration for version comparison
- Translation memory features
- Performance optimizations
Please see the issues page for current development priorities.
- Use auto-reload sparingly with very large files
- Consider using directory comparison for batch operations
- Export large comparison results to CSV for analysis in external tools
- Enable auto-reload during active development
- Use custom ignore patterns for generated or timestamp-based keys
- Save frequently used comparison settings as defaults
- Export results before making major changes to source files
- Very Large Files: Files with 50,000+ keys may require patience during initial parsing
- Complex XML: Highly nested XML structures might need preprocessing
- Memory Usage: Large comparison sessions consume RAM proportional to file size
- File Encoding: Works best with UTF-8 encoded files
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Maintainer: Alp Yalay (@KhazP)
Made with β€οΈ and Flutter
Streamline your localization workflow today!