Skip to main content

Crate es_fluent_lang

Crate es_fluent_lang 

Source
Expand description

Docs Crates.io

§es-fluent-lang

Runtime support for es-fluent language management.

This crate provides the core language types (re-exporting unic-langid) and the optional “Language Enum” generator macro.

§Features

§#[es_fluent_language]

Generates a strongly-typed enum of all available languages in your project. It automatically scans your i18n.toml assets directory to find supported locales.

use es_fluent_lang::es_fluent_language;
use es_fluent::EsFluent;
use strum::EnumIter;

// Define an empty enum, and the macro fills it
#[es_fluent_language]
#[derive(Debug, Clone, Copy, PartialEq, Eq, EsFluent, EnumIter)]
pub enum Languages {}

If your assets_dir contains en, fr, and de folders, this generates:

pub enum Languages {
    En,
    Fr,
    De,
}

It also implements:

  • Default: Uses the fallback_language from your config.
  • FromStr: Parses string codes (e.g., “en-US”) into the enum variant.
  • Into<LanguageIdentifier>: Converts back to a standard locale ID.

§Standard Translations

The crate also includes a built-in module for translating language names themselves (e.g., “English”, “Français”, “Deutsch”). This means you can easily build a “Language Picker” UI without manually translating the names of every language.

Macros§

langid

Structs§

LanguageIdentifier
LanguageIdentifier is a core struct representing a Unicode Language Identifier.

Attribute Macros§

es_fluent_language
Attribute macro that expands a language enum based on the i18n.toml configuration. Which generates variants for each language in the i18n folder structure.