Upgrade ICU4X crates to 0.15
This commit is contained in:
191
Cargo.lock
generated
191
Cargo.lock
generated
@@ -2380,9 +2380,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_calendar"
|
||||
version = "1.4.0"
|
||||
version = "1.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7eb932a690c92f87955e923106181ee0d5682e688ff37fb5c7b296e1fe806edb"
|
||||
checksum = "7265b2137f9a36f7634a308d91f984574bbdba8cfd95ceffe1c345552275a8ff"
|
||||
dependencies = [
|
||||
"calendrical_calculations",
|
||||
"displaydoc",
|
||||
@@ -2397,15 +2397,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_calendar_data"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "22aec7d032735d9acb256eeef72adcac43c3b7572f19b51576a63d664b524ca2"
|
||||
checksum = "8e009b7f0151ee6fb28c40b1283594397e0b7183820793e9ace3dcd13db126d0"
|
||||
|
||||
[[package]]
|
||||
name = "icu_collections"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "137d96353afc8544d437e8a99eceb10ab291352699573b0de5b08bda38c78c60"
|
||||
checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"yoke",
|
||||
@@ -2415,9 +2415,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_datetime"
|
||||
version = "1.4.0"
|
||||
version = "1.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1508c7ed627cc0b031c81203eb98f34433e24b32b39d5b2c0238e4962a00957d"
|
||||
checksum = "d115efb85e08df3fd77e77f52e7e087545a783fffba8be80bfa2102f306b1780"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"either",
|
||||
@@ -2438,20 +2438,19 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_datetime_data"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e6abc569cb4ee80b30707566f05c5c9ed4bed765f91ce41e7f5a37c5e6a75b3f"
|
||||
checksum = "2ba7e7f7a01269b9afb0a39eff4f8676f693b55f509b3120e43a0350a9f88bea"
|
||||
|
||||
[[package]]
|
||||
name = "icu_decimal"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dcf994f9ed8061c17bb313f28fba6cffc736f0a16c7fab827efc9b73fd3f7778"
|
||||
checksum = "fb8fd98f86ec0448d85e1edf8884e4e318bb2e121bd733ec929a05c0a5e8b0eb"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"fixed_decimal",
|
||||
"icu_decimal_data",
|
||||
"icu_locid",
|
||||
"icu_locid_transform",
|
||||
"icu_provider",
|
||||
"writeable",
|
||||
@@ -2459,35 +2458,51 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_decimal_data"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "df2de3548316b697c70f30dec1395c9212db09df1d86a27624ee24872b71326c"
|
||||
checksum = "8d424c994071c6f5644f999925fc868c85fec82295326e75ad5017bc94b41523"
|
||||
|
||||
[[package]]
|
||||
name = "icu_list"
|
||||
version = "1.4.0"
|
||||
name = "icu_experimental"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fe6c04ec71ad1bacdbfb47164d4801f80a0533d9340f94f1a880f521eff59f54"
|
||||
checksum = "844ad7b682a165c758065d694bc4d74ac67f176da1c499a04d85d492c0f193b7"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"icu_list_data",
|
||||
"fixed_decimal",
|
||||
"icu_collections",
|
||||
"icu_decimal",
|
||||
"icu_experimental_data",
|
||||
"icu_locid",
|
||||
"icu_locid_transform",
|
||||
"icu_normalizer",
|
||||
"icu_pattern",
|
||||
"icu_plurals",
|
||||
"icu_properties",
|
||||
"icu_provider",
|
||||
"regex-automata 0.2.0",
|
||||
"litemap",
|
||||
"num-bigint",
|
||||
"num-rational",
|
||||
"num-traits",
|
||||
"smallvec",
|
||||
"tinystr",
|
||||
"writeable",
|
||||
"zerofrom",
|
||||
"zerotrie",
|
||||
"zerovec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "icu_list_data"
|
||||
version = "1.4.0"
|
||||
name = "icu_experimental_data"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "42f6afcf7a9a7fedece70b7f17d7a7ecdfb8df145d37ae46d0277cd1e3932532"
|
||||
checksum = "9c178b9a34083fca5bd70d61f647575335e9c197d0f30c38e8ccd187babc69d0"
|
||||
|
||||
[[package]]
|
||||
name = "icu_locid"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c0aa2536adc14c07e2a521e95512b75ed8ef832f0fdf9299d4a0a45d2be2a9d"
|
||||
checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"litemap",
|
||||
@@ -2498,9 +2513,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_locid_transform"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57c17d8f6524fdca4471101dd71f0a132eb6382b5d6d7f2970441cb25f6f435a"
|
||||
checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"icu_locid",
|
||||
@@ -2512,15 +2527,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_locid_transform_data"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "545c6c3e8bf9580e2dafee8de6f9ec14826aaf359787789c7724f1f85f47d3dc"
|
||||
checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
|
||||
|
||||
[[package]]
|
||||
name = "icu_normalizer"
|
||||
version = "1.4.3"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "accb85c5b2e76f8dade22978b3795ae1e550198c6cfc7e915144e17cd6e2ab56"
|
||||
checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"icu_collections",
|
||||
@@ -2536,19 +2551,31 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_normalizer_data"
|
||||
version = "1.4.1"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e3744fecc0df9ce19999cdaf1f9f3a48c253431ce1d67ef499128fe9d0b607ab"
|
||||
checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
|
||||
|
||||
[[package]]
|
||||
name = "icu_pattern"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cb7f36aafd098d6717de34e668a8120822275c1fba22b936e757b7de8a2fd7e4"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"either",
|
||||
"writeable",
|
||||
"yoke",
|
||||
"zerofrom",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "icu_plurals"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "37d807b123eb2a9ae8f12080fb8cce479f5c8a761fba0bb5ab52da6dd5e31a03"
|
||||
checksum = "ba5a70e7c025dbd5c501b0a5c188cd11666a424f0dadcd4f0a95b7dafde3b114"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"fixed_decimal",
|
||||
"icu_locid",
|
||||
"icu_locid_transform",
|
||||
"icu_plurals_data",
|
||||
"icu_provider",
|
||||
@@ -2557,15 +2584,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_plurals_data"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c3acd5f1f2f988ed2dae9316c3d3560dfe4e03a7516d142b4b89b92252ada41a"
|
||||
checksum = "9e3e8f775b215d45838814a090a2227247a7431d74e9156407d9c37f6ef0f208"
|
||||
|
||||
[[package]]
|
||||
name = "icu_properties"
|
||||
version = "1.4.3"
|
||||
version = "1.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "db9e559598096627aeca8cdfb98138a70eb4078025f8d1d5f2416a361241f756"
|
||||
checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"icu_collections",
|
||||
@@ -2578,15 +2605,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_properties_data"
|
||||
version = "1.4.1"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e70a8b51ee5dd4ff8f20ee9b1dd1bc07afc110886a3747b1fec04cc6e5a15815"
|
||||
checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
|
||||
|
||||
[[package]]
|
||||
name = "icu_provider"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ba58e782287eb6950247abbf11719f83f5d4e4a5c1f2cd490d30a334bc47c2f4"
|
||||
checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"icu_locid",
|
||||
@@ -2601,9 +2628,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_provider_adapters"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a229f978260da7c3aabb68cb7dc7316589936680570fe55e50fdd3f97711a4dd"
|
||||
checksum = "d6324dfd08348a8e0374a447ebd334044d766b1839bb8d5ccf2482a99a77c0bc"
|
||||
dependencies = [
|
||||
"icu_locid",
|
||||
"icu_locid_transform",
|
||||
@@ -2614,47 +2641,23 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_provider_macros"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a"
|
||||
checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "icu_relativetime"
|
||||
version = "0.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "47825312a5eb0790bad7b718fa8d41a8ea1e0ba597b4f7bb84bcfe97d7fc5aba"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"fixed_decimal",
|
||||
"icu_decimal",
|
||||
"icu_locid_transform",
|
||||
"icu_plurals",
|
||||
"icu_provider",
|
||||
"icu_relativetime_data",
|
||||
"writeable",
|
||||
"zerovec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "icu_relativetime_data"
|
||||
version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "05b55cc15ea8981fbba78e9347d0c4003d4490c85f76e9adc7f270290046cae8"
|
||||
|
||||
[[package]]
|
||||
name = "icu_timezone"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b35aabe571a7c653c0f543ff1512b8a1b2ad481cfa24b3d25115298d2ff3b50f"
|
||||
checksum = "aa91ba6a585939a020c787235daa8aee856d9bceebd6355e283c0c310bc6de96"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"icu_calendar",
|
||||
"icu_locid",
|
||||
"icu_provider",
|
||||
"icu_timezone_data",
|
||||
"tinystr",
|
||||
@@ -2664,9 +2667,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icu_timezone_data"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6ceee21e181cce2ab44e95923da6b3418df75369f570df82264c29c51ca398d4"
|
||||
checksum = "c588878c508a3e2ace333b3c50296053e6483c6a7541251b546cc59dcd6ced8e"
|
||||
|
||||
[[package]]
|
||||
name = "id-arena"
|
||||
@@ -3338,13 +3341,12 @@ dependencies = [
|
||||
"camino",
|
||||
"icu_calendar",
|
||||
"icu_datetime",
|
||||
"icu_list",
|
||||
"icu_experimental",
|
||||
"icu_locid",
|
||||
"icu_locid_transform",
|
||||
"icu_plurals",
|
||||
"icu_provider",
|
||||
"icu_provider_adapters",
|
||||
"icu_relativetime",
|
||||
"pad",
|
||||
"pest",
|
||||
"pest_derive",
|
||||
@@ -3856,6 +3858,16 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-bigint"
|
||||
version = "0.4.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
|
||||
dependencies = [
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-bigint-dig"
|
||||
version = "0.8.4"
|
||||
@@ -3899,6 +3911,17 @@ dependencies = [
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-rational"
|
||||
version = "0.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
|
||||
dependencies = [
|
||||
"num-bigint",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-traits"
|
||||
version = "0.2.19"
|
||||
@@ -4861,15 +4884,6 @@ dependencies = [
|
||||
"regex-syntax 0.6.29",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-automata"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e9368763f5a9b804326f3af749e16f9abf378d227bcdee7634b13d8f17793782"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-automata"
|
||||
version = "0.4.9"
|
||||
@@ -7522,6 +7536,9 @@ name = "writeable"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
|
||||
dependencies = [
|
||||
"either",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "yansi"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[workspace]
|
||||
default-members = ["crates/cli"]
|
||||
members = ["crates/*"]
|
||||
resolver = "3"
|
||||
resolver = "2"
|
||||
|
||||
# Updated in the CI with a `sed` command
|
||||
package.version = "0.14.1"
|
||||
|
||||
@@ -18,7 +18,7 @@ chrono.workspace = true
|
||||
data-encoding = "2.8.0"
|
||||
headers.workspace = true
|
||||
http.workspace = true
|
||||
icu_locid = "1.4.0"
|
||||
icu_locid = "1.5.0"
|
||||
mime = "0.3.17"
|
||||
rand.workspace = true
|
||||
reqwest.workspace = true
|
||||
|
||||
@@ -13,15 +13,14 @@ workspace = true
|
||||
|
||||
[dependencies]
|
||||
camino.workspace = true
|
||||
icu_calendar = { version = "1.4.0", features = ["compiled_data", "std"] }
|
||||
icu_datetime = { version = "1.4.0", features = ["compiled_data", "std"] }
|
||||
icu_list = { version = "1.4.0", features = ["compiled_data", "std"] }
|
||||
icu_locid = { version = "1.4.0", features = ["std"] }
|
||||
icu_locid_transform = { version = "1.4.0", features = ["compiled_data", "std"] }
|
||||
icu_plurals = { version = "1.4.0", features = ["compiled_data", "std"] }
|
||||
icu_provider = { version = "1.4.0", features = ["std", "sync"] }
|
||||
icu_provider_adapters = { version = "1.4.0", features = ["std"] }
|
||||
icu_relativetime = { version = "0.1.4", features = ["compiled_data", "std"] }
|
||||
icu_calendar = { version = "1.5.2", features = ["compiled_data", "std"] }
|
||||
icu_datetime = { version = "1.5.1", features = ["compiled_data", "std"] }
|
||||
icu_locid = { version = "1.5.0", features = ["std"] }
|
||||
icu_locid_transform = { version = "1.5.0", features = ["compiled_data", "std"] }
|
||||
icu_plurals = { version = "1.5.0", features = ["compiled_data", "std"] }
|
||||
icu_provider = { version = "1.5.0", features = ["std", "sync"] }
|
||||
icu_provider_adapters = { version = "1.5.0", features = ["std"] }
|
||||
icu_experimental = { version = "0.1.0", features = ["compiled_data", "std"] }
|
||||
pad = "0.1.6"
|
||||
pest = "2.7.15"
|
||||
pest_derive = "2.7.15"
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
use std::{collections::HashMap, fs::File, io::BufReader, str::FromStr};
|
||||
|
||||
use camino::{Utf8Path, Utf8PathBuf};
|
||||
use icu_list::{ListError, ListFormatter, ListLength};
|
||||
use icu_experimental::relativetime::{
|
||||
RelativeTimeFormatter, RelativeTimeFormatterOptions, options::Numeric,
|
||||
};
|
||||
use icu_locid::{Locale, ParserError};
|
||||
use icu_locid_transform::fallback::{
|
||||
LocaleFallbackPriority, LocaleFallbackSupplement, LocaleFallbacker, LocaleFallbackerWithConfig,
|
||||
@@ -18,7 +20,6 @@ use icu_provider::{
|
||||
fallback::LocaleFallbackConfig,
|
||||
};
|
||||
use icu_provider_adapters::fallback::LocaleFallbackProvider;
|
||||
use icu_relativetime::{RelativeTimeFormatter, RelativeTimeFormatterOptions, options::Numeric};
|
||||
use thiserror::Error;
|
||||
use writeable::Writeable;
|
||||
|
||||
@@ -74,7 +75,6 @@ pub enum LoadError {
|
||||
pub struct Translator {
|
||||
translations: HashMap<DataLocale, TranslationTree>,
|
||||
plural_provider: LocaleFallbackProvider<icu_plurals::provider::Baked>,
|
||||
list_provider: LocaleFallbackProvider<icu_list::provider::Baked>,
|
||||
default_locale: DataLocale,
|
||||
}
|
||||
|
||||
@@ -87,13 +87,10 @@ impl Translator {
|
||||
icu_plurals::provider::Baked,
|
||||
fallbacker.clone(),
|
||||
);
|
||||
let list_provider =
|
||||
LocaleFallbackProvider::new_with_fallbacker(icu_list::provider::Baked, fallbacker);
|
||||
|
||||
Self {
|
||||
translations,
|
||||
plural_provider,
|
||||
list_provider,
|
||||
// TODO: make this configurable
|
||||
default_locale: icu_locid::locale!("en").into(),
|
||||
}
|
||||
@@ -293,56 +290,6 @@ impl Translator {
|
||||
Ok(message)
|
||||
}
|
||||
|
||||
/// Format a list of items with the "and" conjunction.
|
||||
///
|
||||
/// # Parameters
|
||||
///
|
||||
/// * `locale` - The locale to use.
|
||||
/// * `items` - The items to format.
|
||||
///
|
||||
/// # Errors
|
||||
///
|
||||
/// Returns an error if the requested locale is not found.
|
||||
pub fn and_list<'a, W: Writeable + 'a, I: Iterator<Item = W> + Clone + 'a>(
|
||||
&'a self,
|
||||
locale: &DataLocale,
|
||||
items: I,
|
||||
) -> Result<String, ListError> {
|
||||
let formatter = ListFormatter::try_new_and_with_length_unstable(
|
||||
&self.list_provider,
|
||||
locale,
|
||||
ListLength::Wide,
|
||||
)?;
|
||||
|
||||
let list = formatter.format_to_string(items);
|
||||
Ok(list)
|
||||
}
|
||||
|
||||
/// Format a list of items with the "or" conjunction.
|
||||
///
|
||||
/// # Parameters
|
||||
///
|
||||
/// * `locale` - The locale to use.
|
||||
/// * `items` - The items to format.
|
||||
///
|
||||
/// # Errors
|
||||
///
|
||||
/// Returns an error if the requested locale is not found.
|
||||
pub fn or_list<'a, W: Writeable + 'a, I: Iterator<Item = W> + Clone + 'a>(
|
||||
&'a self,
|
||||
locale: &DataLocale,
|
||||
items: I,
|
||||
) -> Result<String, ListError> {
|
||||
let formatter = ListFormatter::try_new_or_with_length_unstable(
|
||||
&self.list_provider,
|
||||
locale,
|
||||
ListLength::Wide,
|
||||
)?;
|
||||
|
||||
let list = formatter.format_to_string(items);
|
||||
Ok(list)
|
||||
}
|
||||
|
||||
/// Format a relative date
|
||||
///
|
||||
/// # Parameters
|
||||
@@ -358,7 +305,7 @@ impl Translator {
|
||||
&self,
|
||||
locale: &DataLocale,
|
||||
days: i64,
|
||||
) -> Result<String, icu_relativetime::RelativeTimeError> {
|
||||
) -> Result<String, icu_experimental::relativetime::RelativeTimeError> {
|
||||
// TODO: this is not using the fallbacker
|
||||
let formatter = RelativeTimeFormatter::try_new_long_day(
|
||||
locale,
|
||||
@@ -529,29 +476,4 @@ mod tests {
|
||||
assert_eq!(formatted, "1 active session.");
|
||||
assert_eq!(locale, locale!("en").into());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_list() {
|
||||
let translator = translator();
|
||||
|
||||
let list = translator
|
||||
.and_list(&locale!("en").into(), ["one", "two", "three"].iter())
|
||||
.unwrap();
|
||||
assert_eq!(list, "one, two, and three");
|
||||
|
||||
let list = translator
|
||||
.and_list(&locale!("fr").into(), ["un", "deux", "trois"].iter())
|
||||
.unwrap();
|
||||
assert_eq!(list, "un, deux et trois");
|
||||
|
||||
let list = translator
|
||||
.or_list(&locale!("en").into(), ["one", "two", "three"].iter())
|
||||
.unwrap();
|
||||
assert_eq!(list, "one, two, or three");
|
||||
|
||||
let list = translator
|
||||
.or_list(&locale!("fr").into(), ["un", "deux", "trois"].iter())
|
||||
.unwrap();
|
||||
assert_eq!(list, "un, deux ou trois");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user