Skip to main content
run, check, entries, status, and sync now treat SubRip (.srt) and WebVTT (.vtt) as first-class locale files. This release also speeds up run planning and several parsers, and keeps the bundled Crowdin client aligned with API v2. View the GitHub release · Full changelog

Breaking changes

None.

Features

  • Add SubRip and WebVTT support. Cue payload text is keyed as srt.0001 / vtt.0001. Cue numbers, timestamps, positioning, WebVTT headers, and NOTE / STYLE / REGION blocks stay in the file. Writeback reuses an existing target only when cue IDs and timings still match the source, so equal cue counts cannot attach new text to stale timestamps. WebVTT checks keep class spans (<c.red>), voice tags, and karaoke timestamps.

Fixes

  • When --config is omitted and i18n.yml is missing, fall back to i18n.jsonc only if that file exists; otherwise look for i18n.yml. (#1920)
  • Align the bundled Crowdin API client with v2 optional fields: report individualRates, TargetLanguageID on string comments, FileID / LabelIDs / CroQL on string translations, Force on app install, and pointer Config on custom fields. (#1980, #1972, #1960, #1930, #1898, #1886, #1871)

Performance

  • Faster run planning: skip FormatJS JSON detection when defaultMessage is absent, skip prompt token substitution on plain prompts, and hash source text without copying the string. About 14% faster on large catalogs and 27% fewer allocations (BenchmarkPlanTasksLarge: ~52.4 ms → ~45.0 ms; 150k → 110k allocs/op). (#1978)
  • Prompt-context sanitizer: single-line inputs allocate nothing; multiline inputs are about 4× faster and use 87% less memory. Large planning runs drop about 10,000 allocations. (#1927)
  • GNU gettext PO parse/marshal is about 18% faster; parse allocations are cut about 48%. (#1895)
  • JSONC comment extraction is about 15% faster. (#1957)
  • Extra-placeholder scan in segment validation is about 53% faster. (#1869)
  • Liquid, HTML, and Markdown segment keys use 1,000 fewer heap allocations per parser benchmark. (#1885)

Tests

  • Subtitle parser edges, lockfile codec, path resolver tokens, path-guard symlink chains, storage-adapter registry, and progress UI renderer.
  • Segment-validation fast paths.

Maintenance

  • Bump Go dependencies (Lip Gloss v2.0.6, golang.org/x/net v0.58.0, golang.org/x/text v0.41.0, protobuf v1.36.12). (#1873, #1850)