2 个稳定版本

1.2.4 2023 年 3 月 9 日
1.2.3 2023 年 3 月 8 日
1.1.1 2023 年 3 月 8 日
1.0.0 2023 年 3 月 8 日
0.1.0 2023 年 3 月 1 日

国际化(i18n) 中排名 #292

Download history 5/week @ 2024-03-10 7/week @ 2024-03-31 1/week @ 2024-04-07

每月下载 63
用于 rialight

ISC 许可证

61KB
1K SLoC

rialight::intl

国际化模块。

进展

使用 Ecma-262 Intl 或 ICU4X 项目 来实现一些功能。

由于不是所有浏览器都实现了所有 Ecma-262 Intl API,或者 ICU4X 没有涵盖所有的 Intl,所以我们暂时只能支持较少的 Intl 功能。此库的目标是实现所有的 Intl。在这里添加更多特定功能的复选框。

  • 目前 text_direction() 实现不正确。它比较的是语言部分,而不是脚本部分。要修复这个问题,LocaleExpandericu 提供了一个 maximize 方法,但构造函数需要数据提供者。 https://github.com/unicode-org/icu4x/issues/3172#issuecomment-1462282871
  • 仅对非 WebAssembly 目标包含 icu 数据。
  • 学习如何使用来自 stdwebjs! 宏。
  • Collator
    • 使用 icu
    • 使用浏览器可用的 Ecma-262 Intl
  • DateTimeFormat
    • 使用 icu
    • 使用浏览器可用的 Ecma-262 Intl
  • DisplayNames
    • 使用 icu。使用来自 icu_displaynames 的 LanguageDisplayNames 和 RegionDisplayNames
    • 使用浏览器可用的 Ecma-262 Intl
  • ListFormat
    • 使用 icu
    • 使用浏览器可用的 Ecma-262 Intl
  • Locale
  • NumberFormat
    • 使用 icu
    • 使用浏览器可用的 Ecma-262 Intl
  • PluralRules
    • 使用 icu
    • 使用浏览器可用的 Ecma-262 Intl
  • RelativeTimeFormat
    • 使用 icu
    • 使用浏览器可用的 Ecma-262 Intl
  • Segmenter
    • 使用 icu
    • 使用浏览器可用的 Ecma-262 Intl

FTL 进展

  • 参数
  • 参数!
  • FTL
    • 库内部应该使用 fluent::FluentBundle::new_concurrent() 吗?
    • initialize_locale()
ftl.initialize_locale(|locale, bundle| {
    // locale: intl::Locale
    match locale {
        _ => {},
    }
});

依赖关系

~20–34MB
~512K SLoC