Skip to content

Releases: Barbatos-Labs/Barbatos.i18n

v1.1.4: MAUI XAML Namespace Parity

Choose a tag to compare

@StHung StHung released this 19 Jul 19:48

v1.1.4: MAUI XAML Namespace Parity

🚀 Barbatos.i18n v1.1.4 is a small consistency fix that brings Barbatos.i18n.Maui in line with Barbatos.i18n.Wpf, so both platforms share the same clean XAML namespace syntax.

✨ What's Changed

  • Fixes / Consistency:
    • Registered xmlns:i18n="http://schemas.barbatos.co/i18n/2026/xaml" for Barbatos.i18n.Maui via XmlnsDefinition/XmlnsPrefix assembly attributes. Previously only Barbatos.i18n.Wpf exposed this short URI-based namespace — MAUI consumers had to fall back to the verbose xmlns:i18n="clr-namespace:Barbatos.i18n.Maui;assembly=Barbatos.i18n.Maui" syntax.
    • Updated the MAUI sample (MainPage.xaml) to use the new short-form namespace, matching the WPF sample.
    • No breaking changes — the old clr-namespace:...;assembly=... syntax still resolves correctly and continues to work for anyone already using it.

📦 Updating via NuGet

You can update your projects to use this latest version via the NuGet Package Manager:

dotnet add package Barbatos.i18n.Maui --version 1.1.4

# v1.1.3: Dynamic Supported Culture Detection

Choose a tag to compare

@StHung StHung released this 18 Jul 06:42

🚀 Barbatos.i18n v1.1.3 is a feature update that makes it easy to discover which cultures are available at runtime, so language-switcher UIs can be built without hardcoding the culture list.

✨ What's Changed

  • Feature / Enhancements:
    • Added GetSupportedCultures() to ILocalizationCultureManager. Returns the distinct CultureInfo set registered across your localization provider(s), so a ComboBox/Picker language switcher can bind directly to it instead of hardcoding the culture list.
    • Added GetOperatingSystemCultures() as a default interface method on ILocalizationCultureManager, used as the fallback for GetSupportedCultures() when no localization sets are registered yet. Returns every specific culture known to the OS/ICU globalization data via CultureInfo.GetCultures(CultureTypes.SpecificCultures), falling back further to CultureInfo.CurrentCulture if that data is unavailable (e.g. globalization-invariant mode on some mobile platforms). Since it ships as a default interface method, existing ILocalizationCultureManager implementations get this behavior for free — no code changes required, fully non-breaking.

📦 Updating via NuGet

You can update your projects to use this latest version via the NuGet Package Manager:

dotnet add package Barbatos.i18n --version 1.1.3 ​

v1.1.2: Strongly-typed RESX Keys & x:Static XAML Support

Choose a tag to compare

@StHung StHung released this 07 Jul 16:27

🚀 Barbatos.i18n v1.1.2 is a feature update that introduces strongly-typed RESX key patterns and improves XAML integration for a cleaner developer experience.

✨ What's Changed

  • Feature / Enhancements:
    • Added the FromResource<TResource>(CultureInfo, string name) overload to LocalizationBuilder. This allows RESX sets to be registered under a custom short name (e.g., nameof(Locales.Strings)) instead of the default fully-qualified type name.
    • Updated Strings.cs generation: Properties now return nameof(PropertyName) as the lookup key. This enables the use of {x:Static locales:Strings.Test} directly in XAML to pass the correct key string to the StringLocalizerExtension.

📦 Updating via NuGet

You can update your projects to use this latest version via the NuGet Package Manager:

dotnet add package Barbatos.i18n --version 1.1.2

v1.1.1: Culture Synchronization Fixes & Format Enhancements

Choose a tag to compare

@StHung StHung released this 14 Jun 11:23
90df89b

🚀 Barbatos.i18n v1.1.1 is a patch release focusing on fixing critical culture synchronization bugs and cleaning up the internal API.

🛠️ What's Changed

  • Refactor: Redesign Culture Synchronization
    • Removed the redundant UseFormatCulture property from LocalizationOptions. The library now relies entirely on FormatCultureBuilder to determine if a separate formatting culture is needed, making the API much cleaner.
    • Fixed an order-of-execution bug in LocalizationCultureManager.SetCulture to ensure system cultures (CurrentCulture and CurrentUICulture) are correctly established before notifying localized providers.
  • Bug Fixes:
    • Fixed an issue in the MAUI sample where CultureInfo.CurrentCulture was not updating alongside CurrentUICulture, causing numbers and dates to remain in the fallback English format. Added GetCultureManager() to MauiLocalization as a Service Locator bridge to properly route culture updates.
    • Updated StringLocalizerConverter and PluralStringLocalizerConverter unit tests to accurately test and assert based on the system's CurrentCulture.
  • Chore / Maintenance:
    • Enforced standard LF line endings and UTF-8 (without BOM) encoding across all files in the samples and tests directories for a perfectly clean codebase.

📦 Updating via NuGet

You can update your projects to use this latest version via the NuGet Package Manager:

dotnet add package Barbatos.i18n --version 1.1.1

v1.1.0: Cross-Platform Expansion - Enter .NET MAUI

Choose a tag to compare

@StHung StHung released this 11 Jun 18:34

v1.1.0: Cross-Platform Expansion - Enter .NET MAUI

We are thrilled to announce that Barbatos.i18n is now fully cross-platform with official support for .NET MAUI!

🚀 What's New

  • .NET MAUI Support: Introduced the Barbatos.i18n.Maui package. You can now use the exact same declarative {i18n:...} localization syntax you loved in WPF directly inside your MAUI applications.
  • MAUI Initialization Extensions: Easily integrate i18n into your MAUI app lifecycle using builder.UseStringLocalizer(...) and app.UseMauiLocalization().
  • MAUI XAML Tooling: Full port of StringLocalizerExtension, PluralStringLocalizerExtension, and LocalizeConverter tailored for MAUI's IMarkupExtension.

📚 Documentation & Developer Experience

  • Cross-Platform Rebranding: Updated README.md, NuGet metadata, and GitHub About to correctly reflect Barbatos.i18n as an ecosystem for MAUI, WPF, WebApi, WinForms, and CLI.
  • Comprehensive XAML Samples: Added an extensive collection of XAML use cases to the README, explicitly detailing:
    • Pluralization bindings (BindCount)
    • Custom StringFormat processing
    • Namespace and Multi-Provider targetings
    • DataTemplate translations using LocalizeConverter
  • Code-Behind Examples Cleanup: Simplified and clarified CustomFormattingCultureBuilder usage (removed redundant Clone() allocations) and improved the clarity of the C# ICompositeStringLocalizer examples.

📦 Upgrading

Update your NuGet packages to 1.1.0. For MAUI projects, simply install Barbatos.i18n.Maui.

v1.0.1 - Fix symbols package

Choose a tag to compare

@StHung StHung released this 09 Jun 18:25

Fix

  • Fixed symbols package (.snupkg) publishing — PDB files are now correctly
    distributed via the symbols package only, not embedded in the main .nupkg
  • Fixed dead links in README (API Reference, LICENSE) on NuGet.org
  • Improved NuGet package metadata (authors, descriptions, copyright)

v1.0.0

Choose a tag to compare

@StHung StHung released this 09 Jun 17:35

v1.0.0