Repository navigation
fluent-zero and fluent-zero-build on the same version; generated code now checks this at compile time.
- Public API trimmed: lookup functions,
CacheStore,BundleCollectionand dependency re-exports (phf,fluent_syntax,FluentError, bundle types) moved behind the hidden__privatemodule. Uset!/t_in!.get_lang()returnsArc<LocaleState>;LocaleStatehasid()andkey(). - Fallible builder:
try_generate()returnsfluent_zero_build::Error(parse errors withpath:line:col, duplicate IDs, missing or invalid fallback locale, denied missing translations, I/O);generate()panics with the same message.crate_path(...)supports renamed dependencies. - Locales: negotiation with a fallback chain (
set_lang("pt-BR")findspt-PT), configurablefallback_locale, per-callt_in!, generatedCATALOG. - Correctness: charset covers select variants, attributes and terms; quotes in static messages no longer break the build; duplicate IDs are reported with both locations; message attributes via
message.attributekeys; deterministic generated output. - Compile-time checks: literal keys passed to
t!/t_in!must exist; generatedkeysmodule with one constant per key. - Diagnostics:
set_error_handler/LookupError(or thetracingfeature) for missing keys and arguments; translation coverage warnings viamissing_translations. - Options:
use_isolating(false)to drop U+2068/U+2069 bidi marks. - Packaging: MIT
LICENSEshipped in both crates, MSRV 1.88, hardened CI, benchmarks and a zero-allocation test. - Dependency upgrades:
arc-swap1.9.fluent-langnegstays on 0.13 to matchfluent-bundle0.16 (0.14 moved to ICU4X identifiers).