Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. BartyCrouch

BartyCrouch

MITSwift4.15.1

Incrementally update and translate iOS/macOS app Strings files from Swift, Objective-C, Storyboard, and XIB files.

GitHubGitHub
1.4k stars116 forks0 contributors

What is BartyCrouch?

BartyCrouch is a command-line tool for iOS and macOS developers that automates the extraction and management of localization strings. It incrementally updates `.strings` files from Swift, Objective-C, Storyboard, and XIB files, preserving existing translations and comments. It also supports machine translation and integrates into Xcode build scripts to streamline the localization workflow.

Target Audience

iOS and macOS developers working on apps that require localization, especially teams managing multiple languages or large codebases where manual string updates are error-prone.

Value Proposition

Developers choose BartyCrouch for its incremental update approach that avoids overwriting translations, its integration with Xcode builds, and support for machine translation—reducing manual effort and keeping localization files in sync with code changes.

Overview

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

Use Cases

Best For

  • Automatically extracting new strings from Swift and Objective-C code into Localizable.strings
  • Keeping Storyboard and XIB string files synchronized with interface changes
  • Translating app content into multiple languages using machine translation APIs
  • Linting localization files for duplicate keys and empty values in CI pipelines
  • Integrating localization updates into Xcode build scripts for continuous synchronization
  • Managing large localization projects with many languages and frequent string additions

Not Ideal For

  • Projects already using or planning to migrate to Xcode 15's built-in String Catalogs, which offer similar incremental updates without external tooling.
  • Teams requiring high-accuracy, human-reviewed translations without relying on imperfect machine translation APIs.
  • Developers working primarily with SwiftUI or newer Apple frameworks where String Catalogs provide better native integration.
  • Apps with minimal localization needs or infrequent string changes, where the configuration overhead outweighs the benefits.

Pros & Cons

Pros

Incremental Update Safety

Preserves existing translations and comments when adding new keys from code and Interface Builder files, preventing data loss and manual rework.

Build Script Automation

Integrates into Xcode build phases to run automatically on each build, ensuring localization files stay synchronized with code changes seamlessly.

Machine Translation Integration

Supports translation into 60+ languages via Microsoft Translator or DeepL APIs, automating initial translations and reducing manual effort for multi-language apps.

Code Transformation Workflow

Replaces BartyCrouch.translate calls with NSLocalizedString or SwiftGen L10n calls during build, streamlining Swift localization without leaving the code editor.

Cons

Complex Configuration Burden

Requires detailed setup of a .bartycrouch.toml file and potential code modifications, which can be time-consuming and error-prone for new users.

External API Dependencies

Machine translation features depend on third-party subscription keys (e.g., Microsoft Translator), adding cost and external reliance that may not suit all teams.

Declining Relevance

The README explicitly recommends migrating to Apple's String Catalogs in Xcode 15, as BartyCrouch misses built-in support and is maintained only by volunteers, reducing long-term viability.

Limited SwiftUI Support

Primarily designed for UIKit/AppKit with Storyboards and XIBs, lacking direct integration for SwiftUI's localization patterns, which may require workarounds.

Frequently Asked Questions

Quick Stats

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

Tags

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

Built With

S
Swift

Included in

iOS51.7k
Auto-fetched 18 hours ago

Related Projects

Localize-SwiftLocalize-Swift

Swift friendly localization and i18n with in-app language switching

Stars3,126
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,211
Forks78
Last commit6 years ago
SwifternalizationSwifternalization

Localize iOS apps in a smarter way using JSON files. Swift framework.

Stars574
Forks46
Last commit3 years ago
HodorHodor

Simple solution to localize your iOS App.

Stars540
Forks56
Last commit7 years 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