Parser Overview

// Parsers

Parser Overview

How String Catalog detects and dispatches xcstrings, Android XML, and TestFlight localization files — understand parser selection before troubleshooting sync.

String Catalog picks a parser based on app localization file shape and path signals, then runs parser-specific logic for extraction, state updates, and write-back.

When To Use This Page

Use this page when you need to understand which parser handles a file and why.

It is especially useful if:

  • A file is not being localized as expected.
  • You are mixing iOS XCStrings, Android XML, and TestFlight files.
  • You want predictable behavior across repository and manual flows.

Supported Detection Signals

  • TestFlight files following TestFlight/WhatToTest.<locale>.txt
  • .xcstrings files for XCStrings parser
  • .xml localization files in supported Android resource paths for Android XML parser

Unsupported formats are rejected with explicit errors.

Standard Parser Responsibilities

Each parser page follows the same core responsibilities:

  1. Detection rules
  2. Supported file patterns
  3. Parsing behavior
  4. Locale normalization behavior
  5. Review state handling
  6. Rename handling
  7. Write-back normalization
  8. Edge cases handled

Why This Matters

Consistent parser behavior keeps sync runs predictable across different localization file formats.

Quick Dispatch Examples

  • Localizable.xcstrings -> iOS XCStrings parser.
  • app/src/main/res/values-es/strings.xml -> Android XML parser.
  • TestFlight/WhatToTest.fr-FR.txt -> TestFlight parser.

If a file does not match one of the supported parser patterns, it is rejected instead of being parsed ambiguously.

Common Misclassification Signals

  • File extension is valid, but directory or naming pattern is not.
  • Locale code shape does not match supported parser conventions.
  • Parser-specific structure is missing (for example invalid Android resource XML).

When this happens, validate both the file content and file path, not only the extension.