Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Swift
  3. BartyCrouch

BartyCrouch

MITSwift4.15.1

A command-line tool to incrementally update and translate iOS/macOS localization strings from Swift, Objective-C, and Interface Builder files.

GitHubGitHub
1.4k stars116 forks0 contributors

What is BartyCrouch?

BartyCrouch is a command-line tool for iOS and macOS developers that automates the management of localization strings. It extracts strings from Swift, Objective-C, and Interface Builder files, updates `.strings` files incrementally, and can integrate machine translation to fill missing translations. It solves the problem of keeping localization files in sync with code changes manually.

Target Audience

iOS and macOS developers working on apps that support multiple languages and need to maintain `.strings` files efficiently. It's particularly useful for teams with frequent UI or copy changes.

Value Proposition

Developers choose BartyCrouch for its incremental update approach that preserves existing translations, its ability to automate localization via build scripts, and its support for both code and Interface Builder files—reducing manual effort and errors in the i18n process.

Overview

Localization/I18n: Incrementally update/translate your Strings files from .swift, .h, .m(m), .storyboard or .xib files.

Use Cases

Best For

  • Automating localization updates in Xcode projects
  • Extracting strings from Swift and Objective-C code
  • Keeping Interface Builder (.storyboard/.xib) strings synchronized
  • Integrating machine translation into the development workflow
  • Linting `.strings` files for duplicates and empty values
  • Replacing custom translation calls with `NSLocalizedString` or SwiftGen `L10n` automatically

Not Ideal For

  • Projects already using Xcode 15's native String Catalogs for localization
  • Teams heavily reliant on Objective-C code wanting to use the automated transform feature
  • Apps requiring advanced string formatting or pluralization support beyond basic .strings files
  • Organizations needing cloud-based or real-time collaborative translation workflows

Pros & Cons

Pros

Incremental Update Preservation

BartyCrouch updates .strings files incrementally, preserving existing translations and comments, which prevents data loss during automation as highlighted in the README's core description.

Multi-Source String Extraction

It extracts strings from Swift, Objective-C (.swift, .h, .m), and Interface Builder files (.storyboard, .xib), covering both code and UI elements for comprehensive localization.

Machine Translation Integration

Supports Microsoft Translator and DeepL APIs to auto-translate missing strings, streamlining the translation process with configurable tasks in the .bartycrouch.toml file.

Build Script Automation

Can be integrated into Xcode build phases via a run script, ensuring localization updates and linting happen automatically on each build, reducing manual effort.

Cons

Limited Transform Support

The transform task does not support formatted localized strings as of version 4.x, and it only works with Swift code, excluding Objective-C, which limits its utility in mixed-language projects.

Reduced Active Maintenance

The README notes that BartyCrouch is now maintained by volunteers, with the original author recommending migration to Xcode 15's String Catalogs, indicating potential future instability or lack of updates.

Configuration Complexity

Setting up requires creating and fine-tuning a .bartycrouch.toml configuration file with specific paths and options, which can be error-prone and time-consuming for large projects.

Frequently Asked Questions

Quick Stats

Stars1,409
Forks116
Contributors0
Open Issues38
Last commit2 years ago
CreatedSince 2016

Tags

#ios-localization#incremental#strings-files#objective-c#machine-translation#internationalization#build-automation#command-line-tool#xib#language#localization#code#swift#xcode#translation#automation#storyboard

Built With

S
Swift

Included in

Swift26.0k
Auto-fetched 1 day ago

Related Projects

Localize-SwiftLocalize-Swift

Swift friendly localization and i18n with in-app language switching

Stars3,128
Forks328
Last commit2 years ago
LocalizationKitLocalizationKit

Realtime Dynamic localization translation delivery system for iOS and Mac OSX in Swift. Create and update texts from localization.com without needing to recompile or redeploy. Cocapod for iOS devices (iPad, iPhone, iPod Touch and Mac)

Stars1,213
Forks78
Last commit6 years ago
IBLocalizableIBLocalizable

Localize your views directly in Interface Builder with IBLocalizable

Stars454
Forks46
Last commit3 years ago
L10n-swiftL10n-swift

Localization of the application with ability to change language "on the fly" and support for plural form in any language.

Stars325
Forks31
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub