Crate armature_i18n

Crate armature_i18n 

Source
Expand description

Internationalization (i18n) Support for Armature

Provides comprehensive internationalization features:

  • Message Translation: Load and format localized messages
  • Locale Detection: Parse Accept-Language headers
  • Pluralization: Handle plural forms correctly per locale
  • Date/Number Formatting: Locale-aware formatting

§Quick Start

use armature_i18n::{I18n, Locale};

// Create i18n instance
let i18n = I18n::new()
    .with_default_locale(Locale::en_US())
    .with_fallback(Locale::en())
    .load_from_dir("locales/")?;

// Get translation
let msg = i18n.t("hello", &Locale::es());  // "¡Hola!"

// With arguments
let msg = i18n.t_args("greeting", &Locale::fr(), &[("name", "Alice")]);
// "Bonjour, Alice!"

// Pluralization
let msg = i18n.t_plural("items", 5, &Locale::en());  // "5 items"

§Accept-Language Parsing

use armature_i18n::locale::parse_accept_language;

let header = "en-US,en;q=0.9,fr;q=0.8";
let locales = parse_accept_language(header);
// [Locale::en_US(), Locale::en(), Locale::fr()]

§Date/Number Formatting

use armature_i18n::format::{format_number, format_date, format_currency};

let locale = Locale::de_DE();
format_number(1234567.89, &locale);  // "1.234.567,89"
format_currency(99.99, "EUR", &locale);  // "99,99 €"

Modules§

prelude
Prelude for common imports

Structs§

CurrencyFormatter
Currency formatting configuration.
DateFormatter
Date formatting configuration.
FluentBundle
Fluent bundle wrapper.
I18n
Main i18n interface.
Locale
Represents a locale (language + optional region).
LocaleBuilder
Builder for creating locales.
MessageBundle
A bundle of messages for a single locale.
Messages
Collection of message bundles for multiple locales.
NumberFormatter
Number formatting configuration.

Enums§

DateStyle
Date formatting style.
I18nError
Errors that can occur during i18n operations.
PluralCategory
CLDR plural categories.
TimeStyle
Time formatting style.
TranslationSource
Source for translation messages.

Traits§

PluralRules
Plural rules for a specific language.

Functions§

format_currency
Format a currency amount for a locale.
format_date
Format a date for a locale.
format_number
Format a number for a locale.
format_percent
Format a percentage for a locale.
negotiate_locale
Negotiate the best locale from available locales.
parse_accept_language
Parse an Accept-Language header into a list of locales.
plural_category
Get the plural category for a number in a locale.

Type Aliases§

Result
Result type for i18n operations