v0.12.0
Changes
Add universal config schema
Introduce the new public lokit.yaml schema built around from, except, to, and template. The new shape replaces older public examples based on source, target, dir, pattern, pot, sources, records_path, key_field, and config while keeping runtime normalization for the internal target model.
Configuration changes:
- Add first-class from, except, to, and template fields.
- Support from as either a list of file/glob sources or an indexed source object.
- Support indexed source objects with index, records, key, and fields.
- Use to as the public output path template for translated files.
- Use template for generated intermediate catalogs such as gettext POT files.
- Keep source exclusions explicit through except instead of hardcoded vendor defaults.
Markdown changes:
- Fix source discovery for explicit Markdown files, glob patterns, and single-file targets.
- Support translated Markdown layouts based on {path} and {id}.
- Preserve fenced code blocks with placeholders so code is not sent to translation providers.
- Restore fenced code blocks verbatim when writing translated Markdown files.
Translation robustness:
- Parse the first complete JSON array from provider responses and ignore trailing extra text.
- Avoid failing otherwise valid translations when providers append comments or explanations.
Format fixes:
- Fix vue-i18n JSON output so HTML fragments such as
are not escaped as Unicode sequences. - Improve lock and status source collection for Markdown targets using the new schema.
Documentation:
- Update README, configuration, format, advanced, and command documentation for the new schema.
- Refresh examples for gettext, po4a, Markdown, i18next, vue-i18n, Android, YAML, properties, Flutter, JS-KV, desktop, and polkit.