Skip to main content
$ string-catalog --version 2.0
===============================================================

> Automate iOS & Android Localization_

# Push your code and we'll manage your .xcstrings and strings.xml files for every language you choose. Each run opens a pull request with the updates, so you review everything in GitHub—no copy-paste, no guesswork.

>
strings_processed:
1m+
>
supported_languages:
40+
>
setup_time:
<5min
// Supports: .xcstrings strings.xml

// Quick auth methods:

xcode_preview.xcstrings
Xcode interface showing String Catalog localizations in multiple languages
//

featured_in:

  • iOS Dev Weekly Logo
/* PROCESS */

> How It Works

# Let String Catalog handle localization

// Take the manual work out of Xcode and Android string updates
step_01:

CONNECT_REPO()

// Sign in with GitHub, choose the repo and branch, and we look for .xcstrings or Android XML files on our own.

step_02:

SELECT_LANGUAGES()

// Choose from over 40 languages, add tone or glossary notes when you need them, then click "Localize" and let us do the heavy lifting.

step_03:

REVIEW_PR()

// We raise a pull request with the new strings. Review it in GitHub, merge, and we'll open another one any time the source text changes.

========================================================================================================
/* BENCHMARK */

> Save Time, Ship Faster

# Estimated engineering hours saved per release across 10+ languages

// Baseline: manual localization takes 8-12 hours per release
OPTIMAL string_catalog
~10hrs_saved
[████████████████████] 100%
// Set it up once and get back to the work that matters
  • Zero maintenance
  • Always up to date
  • Custom tone & glossary
  • Protected terms guardrails
  • Shareable review links
  • Just 15 minutes total
custom_scripts ~4-6hrs_saved
[██████████░░░░░░░░░░] 50%
// Write a script, keep patching it forever
  • ! Script maintenance
  • ! API version updates
  • ! Bug fixes & edge cases
  • ! Format changes
  • ! Team onboarding
  • ! Takes 4-6 hours
manual_localization 0hrs_saved
[░░░░░░░░░░░░░░░░░░░░] 0%
// Painful every single time
  • Extract strings manually
  • Spreadsheet management
  • Email back-and-forth
  • Format validation
  • Copy-paste errors
  • Takes 8-12 hours
/* ANNUAL_SAVINGS */

savings = ~3+ weeks of dev time each year

// Based on monthly releases to 10+ languages @ 10 hours saved per release

why_teams_choose_us:

  • Maximum time savings with zero maintenance burden
  • Costs less than a few hours of developer time per month
  • Ships with your existing workflow via GitHub PRs

vs_alternatives:

  • No brittle scripts that break with API changes
  • No manual spreadsheet juggling and email chains
  • No context switching between tools and platforms
========================================================================================================
/* FEATURES */

> Built For Teams

# The pieces we rely on to keep translations moving

fast_prs()

// Automated PR generation in seconds, not hours

native_files()

// Direct .xcstrings & .xml support, no conversion scripts

quality_check()

// AI reviews for placeholders, tone, and obvious errors

team_collab()

// Reviewers, PMs, and localization in one place

========================================================================================================
/* PLATFORMS */

> Native Platform Support

# Works directly with iOS and Android file formats

iOS

xcode_integration()

// We read and write Apple's String Catalog format with comments, notes, and device variations intact. No exports, no sync scripts, just the files Xcode expects.

  • Preserves all String Catalog metadata
  • Handles device-specific variations
  • Uses per-string comments as translation context
ANDROID

android_support()

// We generate strings.xml with plurals, placeholders, and all the Android quirks your app already uses. Comments stay in place so translators understand the intent, and it works with Gradle or Maven.

  • Supports plurals and quantities
  • Supports placeholders
  • Gradle and Maven compatible
========================================================================================================
execute_localization.sh
/* EXECUTE */

> Ready to Localize

// Join the teams relying on String Catalog to keep translations caught up

# 1 free language • no credit card required
$ _