Rename from `fluent_embed` to `l10n_embed`

finchie
Aug 7, 2025, 4:09 AM
RUCC2HKZZTUHN3G6IWS4NK3VYGXAI6PORJH2YZKPRAYSDWH63ESQC

Dependencies

  • [2] NB7K77TZ Update formatting of `InteractionEnvironment::new()`
  • [3] 3BUFFCHQ Return `Option<T>` instead of `T` from `interact()`
  • [4] S26YOXQI Update `Cargo.toml` in workspace and packages
  • [5] KDUI7LHJ
  • [6] ATWBK622 Update style of the `_TRACKED_PATHS` variable
  • [7] VNSHGQYN Support using glob paths in `localize` macro
  • [8] 7M4UI3TW Update dependencies to latest versions
  • [9] BAH2JCJP Add progress bar to `fluent_embed_interaction`
  • [10] 4MRF5E76 Generate simple locale matching code in `localize()`
  • [11] 6XEMHUGS Use full `Locale` instead of `LanguageIdentifier` subset
  • [12] RUFPE6OO Include canonical locale in list of available locales
  • [13] BANMRGRO Switch `wax` to temporary fork
  • [14] K3G4HK2J Track Fluent files using `include!`
  • [15] AE3AZFVK Add `Styled<L: Localize>` struct to support localizing colors
  • [16] 5I5NR4DQ Make `Localize::CANONICAL_LOCALE` a function instead of associated constant
  • [17] OWXLFLRM Merge `cli_macros` shim into `fluent_embed`
  • [18] E64LCUDQ Use `camino::Utf8PathBuf` instead of `std::path::PathBuf`
  • [19] UKFEFT6L Create basic `Output` proc-macro
  • [20] TIPBMFLW Migrate to edition 2024
  • [21] PKTZQIGZ Move clippy lints table above dependencies
  • [22] AL3CCMWZ Remove deprecated `output-macros` crate
  • [23] JWZT34UC Add `Localize`` trait bound for each field in the derived item
  • [24] 73C6NOJ7 Fix minimal `Localize` implementation on errors
  • [25] C6W7N6N5 Implement `Localize` for `FixedDecimal` and primitive number types
  • [26] QM64L3XO Replace `duplicate` macro with `macro_rules!`
  • [27] GJMBIJOE Migrate to latest env_preferences version
  • [28] 3NMKD6I5 Refactor `Localize` trait to use `std::io::Write`
  • [29] HHJDRLLN Create `fluent_embed_runtime` crate
  • [30] VQBJBFEX Improve error handling for missing Fluent messages
  • [31] NO3PDO7P Refactor `fluent_embed` to support structs
  • [32] QBPLOFFI Update `Cargo.lock`
  • [33] LIO32J4B Fix compiler error when `expand` feature is disabled
  • [34] CESJ4CTO Move macro-specific code into `macro_impl` module
  • [35] 7X4MEZJU Use Fluent AST when reporting error spans
  • [36] VZYZRAO4 Move `output-macros` crate into workspace
  • [37] 7U2DXFMP Refactor `fluent_embed::Localize` to support overriding locales
  • [38] UN2XEIEU Migrate from `locale_select` to `env_preferences`
  • [39] NFV26FRQ Improve glob error handling
  • [40] KZLFC7OW Rename `fluent_embed_runtime` to `fluent_embed`
  • [41] QFPQZR4K Refactor `fluent_embed`
  • [42] KF65O6OD Add tests for placeables
  • [43] YNEOCYMG Create `locale-select` crate
  • [44] XGRU7WZE Add `expand` feature for proc-macro debugging
  • [45] 5TEX4MNU Split `fluent_embed` into `group` and `parse` modules
  • [46] LYZBTYIW Replace `proc-macro-error` with `proc-macro-error2`
  • [47] LU6IFZFG Remove `std::io::Write` trait bound from `Localize`
  • [48] BFL2Y7GN Add relative timestamps using `jiff` and `icu_relativetime`
  • [49] O77KA6C4 Create `fluent_embed` crate
  • [50] SHNZZSZG Create `cli_macros` shim crate
  • [51] QJC4IQIT Refactor `Localize` functions to infallibly return `String`
  • [52] 7JPOCQEI Add explicit error handling for macro parsing
  • [53] OIH7UWAW Remove old `fluent_embed` `groups` example
  • [54] EAPOUW73 Fix compilation error with `fluent-syntax` span PR
  • [55] 56F2YE6H Use `prettyplease` to format macro output
  • [56] YZ6PVVQC Add error handling for common unsupported Rust code
  • [57] QSK7JRBA Add simple `attribute_path` function
  • [58] JUV7C6ET Create initial prototype of `fluent_embed_interaction`
  • [59] 4BMW4JJO Add support for deriving items with generics
  • [60] NEBSVXIA Apply Clippy fixes
  • [61] MABGENI7 Refactor `fluent_embed_derive` tests
  • [62] XEEXWJLG Add simple end-to-end test for selectors
  • [*] XGNME3WR Move `Group::derive_enum` to new `crate::parse_macro` module

Change contents

  • file move: fluent_embed_interaction (d--r------)l10n_embed_interaction (d--r------)
    [5.1]
    [5.36]
  • replacement in l10n_embed_interaction/src/prompt/select.rs at line 3
    [3.55][5.0:28](),[5.258][5.0:28]()
    use fluent_embed::Localize;
    [3.55]
    [5.307]
    use l10n_embed::Localize;
  • replacement in l10n_embed_interaction/src/prompt/password.rs at line 3
    [3.358][5.152:180](),[5.2163][5.152:180]()
    use fluent_embed::Localize;
    [3.358]
    [5.2212]
    use l10n_embed::Localize;
  • replacement in l10n_embed_interaction/src/prompt/macros.rs at line 25
    [5.4938][5.330:419]()
    pub fn with_prompt<L: fluent_embed::Localize>(mut self, prompt: L) -> Self {
    [5.4938]
    [5.419]
    pub fn with_prompt<L: l10n_embed::Localize>(mut self, prompt: L) -> Self {
  • replacement in l10n_embed_interaction/src/prompt/macros.rs at line 39
    [5.533][5.533:576]()
    L: fluent_embed::Localize,
    [5.533]
    [5.576]
    L: l10n_embed::Localize,
  • replacement in l10n_embed_interaction/src/prompt/input.rs at line 3
    [3.581][5.704:732](),[5.6639][5.704:732]()
    use fluent_embed::Localize;
    [3.581]
    [5.6688]
    use l10n_embed::Localize;
  • replacement in l10n_embed_interaction/src/progress.rs at line 2
    [5.549][5.866:894]()
    use fluent_embed::Localize;
    [5.549]
    [5.598]
    use l10n_embed::Localize;
  • replacement in l10n_embed_interaction/src/lib.rs at line 5
    [5.9295][2.0:28]()
    use fluent_embed::Localize;
    [5.9295]
    [5.1735]
    use l10n_embed::Localize;
  • replacement in l10n_embed_interaction/Cargo.toml at line 2
    [5.11376][5.11376:11410]()
    name = "fluent_embed_interaction"
    [5.11376]
    [4.0]
    name = "l10n_embed_interaction"
  • replacement in l10n_embed_interaction/Cargo.toml at line 17
    [5.11487][4.239:269]()
    fluent_embed.workspace = true
    [5.11487]
    [4.269]
    l10n_embed.workspace = true
  • replacement in l10n_embed_interaction/Cargo.toml at line 24
    [4.291][4.291:328]()
    fluent_embed_derive.workspace = true
    [4.291]
    l10n_embed_derive.workspace = true
  • file move: fluent_embed_derive (d--r------)l10n_embed_derive (d--r------)
    [5.1]
    [5.24]
  • edit in l10n_embed_derive/tests/selectors.rs at line 6
    [5.42][4.329:364]()
    use fluent_embed_derive::localize;
  • edit in l10n_embed_derive/tests/selectors.rs at line 7
    [5.34]
    [5.0]
    use l10n_embed_derive::localize;
  • replacement in l10n_embed_derive/tests/recursive.rs at line 1
    [5.164][5.165:255]()
    //! End-to-end test for recursive localization support in the `fluent_embed_derive` macro
    [5.164]
    [5.255]
    //! End-to-end test for recursive localization support in the `l10n_embed_derive` macro
  • edit in l10n_embed_derive/tests/recursive.rs at line 6
    [5.298][4.365:400]()
    use fluent_embed_derive::localize;
  • edit in l10n_embed_derive/tests/recursive.rs at line 7
    [5.616]
    [5.350]
    use l10n_embed_derive::localize;
  • edit in l10n_embed_derive/tests/placeables.rs at line 6
    [5.42][4.401:436]()
    use fluent_embed_derive::localize;
  • edit in l10n_embed_derive/tests/placeables.rs at line 7
    [5.695]
    [5.233]
    use l10n_embed_derive::localize;
  • replacement in l10n_embed_derive/tests/lifetimes.rs at line 1
    [5.1286][5.1287:1363]()
    //! End-to-end test for lifetime support in the `fluent_embed_derive` macro
    [5.1286]
    [5.1363]
    //! End-to-end test for lifetime support in the `l10n_embed_derive` macro
  • edit in l10n_embed_derive/tests/lifetimes.rs at line 6
    [5.1406][4.437:472]()
    use fluent_embed_derive::localize;
  • edit in l10n_embed_derive/tests/lifetimes.rs at line 7
    [5.801]
    [5.1458]
    use l10n_embed_derive::localize;
  • replacement in l10n_embed_derive/tests/generics.rs at line 1
    [5.1935][5.1936:2012]()
    //! End-to-end test for generics support in the `fluent_embed_derive` macro
    [5.1935]
    [5.2012]
    //! End-to-end test for generics support in the `l10n_embed_derive` macro
  • edit in l10n_embed_derive/tests/generics.rs at line 6
    [5.2055][4.473:508]()
    use fluent_embed_derive::localize;
  • edit in l10n_embed_derive/tests/generics.rs at line 7
    [5.880]
    [5.2107]
    use l10n_embed_derive::localize;
  • replacement in l10n_embed_derive/tests/empty_fields.rs at line 1
    [5.2477][5.2478:2574]()
    //! End-to-end test for unit struct support (empty messages) in the `fluent_embed_derive` macro
    [5.2477]
    [5.2574]
    //! End-to-end test for unit struct support (empty messages) in the `l10n_embed_derive` macro
  • edit in l10n_embed_derive/tests/empty_fields.rs at line 6
    [5.2617][4.509:544]()
    use fluent_embed_derive::localize;
  • edit in l10n_embed_derive/tests/empty_fields.rs at line 7
    [5.1061]
    [5.2669]
    use l10n_embed_derive::localize;
  • edit in l10n_embed_derive/tests/common/mod.rs at line 1
    [5.3053][5.3054:3082]()
    use fluent_embed::Localize;
  • edit in l10n_embed_derive/tests/common/mod.rs at line 2
    [5.1223]
    [5.3118]
    use l10n_embed::Localize;
  • replacement in l10n_embed_derive/src/macro_impl/mod.rs at line 151
    [5.2745][5.104:178]()
    parse_quote_spanned!(span=> #field: ::fluent_embed::Localize)
    [5.2745]
    [5.2822]
    parse_quote_spanned!(span=> #field: ::l10n_embed::Localize)
  • replacement in l10n_embed_derive/src/macro_impl/mod.rs at line 168
    [5.652][5.179:282](),[5.282][5.1319:1469]()
    impl #impl_generics ::fluent_embed::Localize for #ident #initial_type_generics #where_clause {
    fn canonical_locale(&self) -> ::fluent_embed::icu_locale::Locale {
    ::fluent_embed::icu_locale::locale!(#canonical_locale)
    [5.652]
    [5.398]
    impl #impl_generics ::l10n_embed::Localize for #ident #initial_type_generics #where_clause {
    fn canonical_locale(&self) -> ::l10n_embed::icu_locale::Locale {
    ::l10n_embed::icu_locale::locale!(#canonical_locale)
  • replacement in l10n_embed_derive/src/macro_impl/mod.rs at line 173
    [5.1714][5.1470:1555]()
    fn available_locales(&self) -> Vec<::fluent_embed::icu_locale::Locale> {
    [5.1714]
    [5.383]
    fn available_locales(&self) -> Vec<::l10n_embed::icu_locale::Locale> {
  • replacement in l10n_embed_derive/src/macro_impl/mod.rs at line 179
    [5.477][5.1556:1617]()
    locale: &::fluent_embed::icu_locale::Locale,
    [5.477]
    [5.1177]
    locale: &::l10n_embed::icu_locale::Locale,
  • replacement in l10n_embed_derive/src/macro_impl/derive.rs at line 45
    [5.2231][5.1188:1253](),[5.1253][5.598:652](),[5.598][5.598:652](),[5.652][5.427:640]()
    const PLURAL_RULE_TYPE: ::fluent_embed::PluralRuleType =
    ::fluent_embed::PluralRuleType::Cardinal;
    let plural_options = ::fluent_embed::PluralRulesOptions::default().with_type(PLURAL_RULE_TYPE);
    let plural_rules = ::fluent_embed::PluralRules::try_new(locale.into(), plural_options).unwrap();
    [5.2231]
    [5.712]
    const PLURAL_RULE_TYPE: ::l10n_embed::PluralRuleType =
    ::l10n_embed::PluralRuleType::Cardinal;
    let plural_options = ::l10n_embed::PluralRulesOptions::default().with_type(PLURAL_RULE_TYPE);
    let plural_rules = ::l10n_embed::PluralRules::try_new(locale.into(), plural_options).unwrap();
  • replacement in l10n_embed_derive/src/macro_impl/derive.rs at line 87
    [5.1776][5.1618:1708]()
    quote!(vec![self.canonical_locale(), #(::fluent_embed::locale!(#locale_literals)),*])
    [5.1776]
    [5.1841]
    quote!(vec![self.canonical_locale(), #(::l10n_embed::locale!(#locale_literals)),*])
  • replacement in l10n_embed_derive/src/lib.rs at line 16
    [5.5274][5.5274:5365]()
    // No errors found, emit the generated `fluent_embed::Localize` implementation
    [5.5274]
    [5.1709]
    // No errors found, emit the generated `l10n_embed::Localize` implementation
  • replacement in l10n_embed_derive/src/lib.rs at line 27
    [5.53][5.3658:3721](),[5.3658][5.3658:3721]()
    expander::Expander::new("fluent_embed_derive")
    [5.53]
    [5.1711]
    expander::Expander::new("l10n_embed_derive")
  • replacement in l10n_embed_derive/src/lib.rs at line 45
    [5.1795][5.338:405](),[5.2371][5.338:405]()
    impl ::fluent_embed::Localize for #ident {
    [5.1795]
    [5.1352]
    impl ::l10n_embed::Localize for #ident {
  • replacement in l10n_embed_derive/src/lib.rs at line 48
    [5.2976][5.1796:1873]()
    locale: &::fluent_embed::icu_locale::Locale,
    [5.2976]
    [5.1404]
    locale: &::l10n_embed::icu_locale::Locale,
  • replacement in l10n_embed_derive/src/fluent/ast.rs at line 37
    [5.1755][5.1755:1869]()
    parse_quote!(::fluent_embed::icu_plurals::PluralCategory::#ident_pascal_case)
    [5.1755]
    [5.7266]
    parse_quote!(::l10n_embed::icu_plurals::PluralCategory::#ident_pascal_case)
  • replacement in l10n_embed_derive/src/fluent/ast.rs at line 101
    [5.2046][5.902:1034]()
    parse_quote!(::fluent_embed::Decimal::try_from_f64(#float_literal, ::fluent_embed::FloatPrecision::RoundTrip).unwrap())
    [5.2046]
    [5.2330]
    parse_quote!(::l10n_embed::Decimal::try_from_f64(#float_literal, ::l10n_embed::FloatPrecision::RoundTrip).unwrap())
  • replacement in l10n_embed_derive/Cargo.toml at line 2
    [5.1311][5.746:775]()
    name = "fluent_embed_derive"
    [5.1311]
    [4.545]
    name = "l10n_embed_derive"
  • replacement in l10n_embed_derive/Cargo.toml at line 35
    [5.258][4.893:923]()
    fluent_embed.workspace = true
    [5.258]
    [4.923]
    l10n_embed.workspace = true
  • file move: fluent_embed (d--r------)l10n_embed (d--r------)
    [5.1]
    [5.32]
  • replacement in l10n_embed/Cargo.toml at line 2
    [5.1089][5.925:947]()
    name = "fluent_embed"
    [5.1089]
    [4.925]
    name = "l10n_embed"
  • replacement in l10n_embed/Cargo.toml at line 17
    [5.1196][4.1181:1241]()
    fluent_embed_derive = { workspace = true, optional = true }
    [5.1196]
    [4.1241]
    l10n_embed_derive = { workspace = true, optional = true }
  • replacement in l10n_embed/Cargo.toml at line 32
    [4.1263][4.1263:1300]()
    fluent_embed_derive.workspace = true
    [4.1263]
    [4.1300]
    l10n_embed_derive.workspace = true
  • replacement in l10n_embed/Cargo.toml at line 37
    [4.1428][4.1428:1465]()
    fluent_embed_derive.workspace = true
    [4.1428]
    l10n_embed_derive.workspace = true
  • replacement in Cargo.toml at line 2
    [5.210][5.11614:11692]()
    members = ["fluent_embed", "fluent_embed_derive", "fluent_embed_interaction"]
    [5.210]
    [5.36]
    members = ["l10n_embed", "l10n_embed_derive", "l10n_embed_interaction"]
  • replacement in Cargo.toml at line 9
    [4.1597][4.1597:1657]()
    repository = "https://nest.pijul.com/finchie/cli_framework"
    [4.1597]
    [4.1657]
    repository = "https://nest.pijul.com/finchie/l10n_embed"
  • replacement in Cargo.toml at line 21
    [4.1725][4.1725:1863]()
    fluent_embed = { path = "fluent_embed/", version = "=0.1.0" }
    fluent_embed_derive = { path = "fluent_embed_derive/", version = "=0.1.0" }
    [4.1725]
    [4.1863]
    l10n_embed = { path = "l10n_embed/", version = "=0.1.0" }
    l10n_embed_derive = { path = "l10n_embed_derive/", version = "=0.1.0" }
  • edit in Cargo.lock at line 309
    [5.1719][5.1719:1740](),[5.1740][5.9040:9112](),[5.9040][5.9040:9112](),[5.9112][5.1548:1560](),[5.1560][5.9126:9259](),[5.9126][5.9126:9259](),[5.9259][5.1601:1621](),[5.1621][5.9259:9289](),[5.9259][5.9259:9289](),[5.1205][5.9318:9327](),[5.9318][5.9318:9327](),[5.9437][5.9437:9516](),[5.9516][5.1427:1438](),[5.1438][5.1500:1513](),[5.9516][5.1500:1513](),[5.1513][5.9516:9569](),[5.9516][5.9516:9569](),[5.9569][5.9569:9578](),[5.9594][5.9594:9609](),[5.1229][5.1229:1246](),[5.1246][5.9655:9677](),[5.9655][5.9655:9677](),[5.9677][5.187:209](),[5.209][5.9698:9735](),[5.9698][5.9698:9735](),[5.9752][5.210:218](),[5.218][5.9767:9796](),[5.9767][5.9767:9796](),[5.9796][5.12814:12929](),[5.12929][4.4181:4205](),[4.4205][5.2226:2240](),[5.12944][5.2226:2240]()
    "thiserror 2.0.12",
    ]
    [[package]]
    name = "fluent_embed"
    version = "0.1.0"
    dependencies = [
    "anstyle",
    "env_preferences",
    "fixed_decimal",
    "fluent-langneg",
    "fluent_embed_derive",
    "icu_decimal",
    "icu_experimental",
    "icu_locale",
    "icu_locale_core",
    "icu_locid",
    "icu_plurals",
    "jiff",
    ]
    [[package]]
    name = "fluent_embed_derive"
    version = "0.1.0"
    dependencies = [
    "camino",
    "expander",
    "fixed_decimal",
    "fluent-syntax",
    "fluent_embed",
    "heck",
    "icu_locale",
    "miette 7.6.0",
    "pretty_assertions",
    "proc-macro-error2",
    "proc-macro2",
    "quote",
    "rstest",
    "syn",
    "thiserror 2.0.12",
    "wax",
    ]
    [[package]]
    name = "fluent_embed_interaction"
    version = "0.1.0"
    dependencies = [
    "dialoguer",
    "fluent_embed",
    "fluent_embed_derive",
    "indicatif",
  • edit in Cargo.lock at line 796
    [5.2794]
    [5.2794]
    ]
    [[package]]
    name = "l10n_embed"
    version = "0.1.0"
    dependencies = [
    "anstyle",
    "env_preferences",
    "fixed_decimal",
    "fluent-langneg",
    "icu_decimal",
    "icu_experimental",
    "icu_locale",
    "icu_locale_core",
    "icu_locid",
    "icu_plurals",
    "jiff",
    "l10n_embed_derive",
  • edit in Cargo.lock at line 817
    [5.2809]
    [5.22031]
    name = "l10n_embed_derive"
    version = "0.1.0"
    dependencies = [
    "camino",
    "expander",
    "fixed_decimal",
    "fluent-syntax",
    "heck",
    "icu_locale",
    "l10n_embed",
    "miette 7.6.0",
    "pretty_assertions",
    "proc-macro-error2",
    "proc-macro2",
    "quote",
    "rstest",
    "syn",
    "thiserror 2.0.12",
    "wax",
    ]
    [[package]]
    name = "l10n_embed_interaction"
    version = "0.1.0"
    dependencies = [
    "dialoguer",
    "indicatif",
    "l10n_embed",
    "l10n_embed_derive",
    "thiserror 2.0.12",
    ]
    [[package]]