Breaking changes
Compared to version 1.0.0:
ITranslatorandII18Nexthave new members (ExistsAsync,TranslateObjectAsync,TObject,T<TModel>, ...). Custom implementations have to add them.Newtonsoft.Jsonwas replaced bySystem.Text.Json.TranslationTree.GetAllValues()returns the full key paths (look.deepinstead ofdeep).- Translating a key which leads to an object returns i18next's
key '...' returned an object instead of string.message instead of throwing an exception. - JSON v1 plural suffixes for numbers use
_plural_Nlike i18next and negative counts use the absolute value. TraceLoggerrespects itsLogLevel.- .NET Standard 2.1 and .NET 5 are no longer separate targets, they use the .NET Standard 2.0 build.
DefaultInterpolator.HandleRegexMatchandHandleUnescapeRegexMatchwere removed, interpolation runs in a single pass. OverrideGetValueForExpressionorEscapeValueto customize values.- Values inserted by interpolation are not interpolated or nested again (
SkipOnVariables, like i18next). CompositeBackendis obsolete, useChainedBackend.- The missing key event is raised once per language, fallback languages equal to the requested language are skipped.
uppercaseandlowercaseare handled by theDefaultFormatterwithout registering a formatter.- Numbers inserted without a format are written culture invariant like in i18next (
1.5), use{{value, number}}for localized numbers.