ferro_lang/lib.rs
1//! # Ferro Lang
2//!
3//! Localization for the Ferro web framework.
4//!
5//! Provides JSON-based translation loading, `:param` interpolation,
6//! pipe-separated pluralization, and locale fallback chains.
7//!
8//! ## Example
9//!
10//! ```rust,ignore
11//! use ferro_lang::Translator;
12//!
13//! // Load translations from lang/ directory with "en" as fallback
14//! let translator = Translator::load("lang", "en").unwrap();
15//!
16//! // Simple translation with parameter interpolation
17//! let msg = translator.get("en", "welcome", &[("name", "Alice")]);
18//! assert_eq!(msg, "Welcome, Alice!");
19//!
20//! // Pluralized translation
21//! let msg = translator.choice("en", "items.count", 5, &[]);
22//! assert_eq!(msg, "5 items");
23//! ```
24
25pub mod config;
26mod error;
27mod interpolation;
28mod loader;
29mod pluralization;
30mod translator;
31
32pub use config::{LangConfig, LangConfigBuilder};
33pub use error::LangError;
34pub use loader::normalize_locale;
35pub use translator::Translator;