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§
- Currency
Formatter - Currency formatting configuration.
- Date
Formatter - Date formatting configuration.
- Fluent
Bundle - Fluent bundle wrapper.
- I18n
- Main i18n interface.
- Locale
- Represents a locale (language + optional region).
- Locale
Builder - Builder for creating locales.
- Message
Bundle - A bundle of messages for a single locale.
- Messages
- Collection of message bundles for multiple locales.
- Number
Formatter - Number formatting configuration.
Enums§
- Date
Style - Date formatting style.
- I18n
Error - Errors that can occur during i18n operations.
- Plural
Category - CLDR plural categories.
- Time
Style - Time formatting style.
- Translation
Source - Source for translation messages.
Traits§
- Plural
Rules - 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