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.

