crowdin status now reports translation and approval progress for local and CI workflows. This release also treats Markdown and MDX as whole-file documents during Cloud sync, imports character limits from Apple localization files, and speeds up several parsers.
View the GitHub release · Full changelog
Breaking changes
hyperlocalise entriesnow emits an object containingtextand its metadata for Markdown, MDX, and entries with imported constraints. Consumers that assume every value is a string must accept both strings and objects. Entries without metadata remain plain strings. (#2102, #2035)
Features
- Add
hyperlocalise crowdin statuswith per-language translation and approval progress. Filter by branch or language, choose text or JSON output, and use--fail-if-incompleteto gate CI until every requested language reaches 100% translation and approval. (#2083) - Treat Markdown and MDX as structured whole-file documents.
entries --sourcealigns translated documents with stable source slots, while Hyperlocalise Cloudsync pulldownloads the complete edited file instead of reconstructing it from string exports. (#2102) - Import maximum-length constraints from Apple
.stringscomments and.xcstringsmetadata.entriesincludes{ text, maxLength }when a source entry defines a limit. Supported comment forms includehl:max-length=,max.length:,max length:, andcharacter limit:. (#2035)
Fixes
None.Performance
- HTML tag parity checks are about 17% faster and allocate no heap memory in the benchmark (1,596 ns/op → 1,326 ns/op; 2 allocs / 320 B → 0). (#2068)
- Subtitle parsing is about 25% faster with 49% fewer allocations; marshaling is about 21% faster with 39% fewer allocations. A second pass removes another 1,000 marshal allocations per operation and saves about 15 KB. (#2001, #2049)
- PHP array parsing is about 27% faster with 22% fewer allocations; marshaling is about 29% faster with 27% fewer allocations. (#2019)
- JSONC comment parsing now uses direct byte checks to avoid intermediate allocations. (#2031)
Tests
- Crowdin status output, language filtering, branch progress, pagination, and incomplete CI gates.
- Markdown and MDX document metadata, whole-file Cloud sync, and source-slot alignment.
- Character-limit imports, Flutter ARB and Apple
.xcstringsparser edges, eval-set validation, Hyperlocalise sync helpers, and local JSON storage.

