fix: Arabic duration parsing

This commit is contained in:
ThetaDev 2023-11-15 01:42:04 +01:00
parent a13262a273
commit 48ccfc5c06
3 changed files with 40 additions and 31 deletions

View file

@ -253,46 +253,50 @@ pub(crate) fn entry(lang: Language) -> Entry {
},
Language::Ar => Entry {
timeago_tokens: ::phf::Map {
key: 2980949210194914378,
key: 14108922650502679131,
disps: &[
(1, 0),
(0, 3),
(2, 26),
(1, 11),
(25, 3),
(9, 5),
(3, 13),
(11, 32),
(0, 0),
(0, 0),
(4, 28),
(0, 1),
(5, 12),
],
entries: &[
("يوم\u{64b}ا", TaToken { n: 1, unit: Some(TimeUnit::Day) }),
("ثوان\u{650}", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("ساعات", TaToken { n: 1, unit: Some(TimeUnit::Hour) }),
("دقائق", TaToken { n: 1, unit: Some(TimeUnit::Minute) }),
("شهرين", TaToken { n: 2, unit: Some(TimeUnit::Month) }),
("أشهر", TaToken { n: 1, unit: Some(TimeUnit::Month) }),
("ثانية", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("ساعة", TaToken { n: 1, unit: Some(TimeUnit::Hour) }),
("يوم", TaToken { n: 1, unit: Some(TimeUnit::Day) }),
("ثوان", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("دقيقة", TaToken { n: 1, unit: Some(TimeUnit::Minute) }),
("يومين", TaToken { n: 2, unit: Some(TimeUnit::Day) }),
("ثانيتين", TaToken { n: 2, unit: Some(TimeUnit::Second) }),
("أسبوعين", TaToken { n: 2, unit: Some(TimeUnit::Week) }),
("دقيقتين", TaToken { n: 2, unit: Some(TimeUnit::Minute) }),
("سنوات", TaToken { n: 1, unit: Some(TimeUnit::Year) }),
("دقيقتان", TaToken { n: 2, unit: Some(TimeUnit::Minute) }),
("سنة", TaToken { n: 1, unit: Some(TimeUnit::Year) }),
("أسابيع", TaToken { n: 1, unit: Some(TimeUnit::Week) }),
("خلال", TaToken { n: 1, unit: Some(TimeUnit::Month) }),
("شهر\u{64b}ا", TaToken { n: 1, unit: Some(TimeUnit::Month) }),
("شهر", TaToken { n: 1, unit: Some(TimeUnit::Month) }),
("وثانية", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("سنتين", TaToken { n: 2, unit: Some(TimeUnit::Year) }),
("دقيقتان", TaToken { n: 2, unit: Some(TimeUnit::Minute) }),
("ثوان\u{64d}", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("يوم", TaToken { n: 1, unit: Some(TimeUnit::Day) }),
("شهر\u{64b}ا", TaToken { n: 1, unit: Some(TimeUnit::Month) }),
("سنة", TaToken { n: 1, unit: Some(TimeUnit::Year) }),
("يوم\u{64b}ا", TaToken { n: 1, unit: Some(TimeUnit::Day) }),
("دقيقة", TaToken { n: 1, unit: Some(TimeUnit::Minute) }),
("ثوان", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("ثانية", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("ساعات", TaToken { n: 1, unit: Some(TimeUnit::Hour) }),
("أيام", TaToken { n: 1, unit: Some(TimeUnit::Day) }),
("ساعتين", TaToken { n: 2, unit: Some(TimeUnit::Hour) }),
("أسبوع\u{64b}ا", TaToken { n: 1, unit: Some(TimeUnit::Week) }),
("أيام", TaToken { n: 1, unit: Some(TimeUnit::Day) }),
("سنوات", TaToken { n: 1, unit: Some(TimeUnit::Year) }),
("ساعة", TaToken { n: 1, unit: Some(TimeUnit::Hour) }),
("ثانيتين", TaToken { n: 2, unit: Some(TimeUnit::Second) }),
("أسابيع", TaToken { n: 1, unit: Some(TimeUnit::Week) }),
("أشهر", TaToken { n: 1, unit: Some(TimeUnit::Month) }),
("أسبوع", TaToken { n: 1, unit: Some(TimeUnit::Week) }),
("ثوان\u{64d}", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("شهرين", TaToken { n: 2, unit: Some(TimeUnit::Month) }),
("وثانيتان", TaToken { n: 2, unit: Some(TimeUnit::Second) }),
("يومين", TaToken { n: 2, unit: Some(TimeUnit::Day) }),
("س", TaToken { n: 1, unit: Some(TimeUnit::Hour) }),
("ث", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("دقيقتين", TaToken { n: 2, unit: Some(TimeUnit::Minute) }),
("خلال", TaToken { n: 1, unit: Some(TimeUnit::Month) }),
("ثوان\u{650}", TaToken { n: 1, unit: Some(TimeUnit::Second) }),
("د", TaToken { n: 1, unit: Some(TimeUnit::Minute) }),
("سنتين", TaToken { n: 2, unit: Some(TimeUnit::Year) }),
("أسبوعين", TaToken { n: 2, unit: Some(TimeUnit::Week) }),
("دقائق", TaToken { n: 1, unit: Some(TimeUnit::Minute) }),
],
},
date_order: &[DateCmp::D, DateCmp::M, DateCmp::Y],

View file

@ -967,6 +967,8 @@ mod tests {
#[case(Language::Ar, "19 دقيقة وثانيتان", 1142)]
#[case(Language::Ar, "دقيقة و13 ثانية", 73)]
#[case(Language::Sw, "dakika 1 na sekunde 13", 73)]
#[case(Language::Ar, "1 س و41 د", 6060)]
#[case(Language::Ar, "4 د و33 ث", 273)]
fn t_parse_video_duration2(
#[case] lang: Language,
#[case] video_duration: &str,

View file

@ -121,6 +121,7 @@
"equivalent": [],
"by_char": false,
"timeago_tokens": {
"ث": "s",
"ثانية": "s",
"ثوان": "s",
"ثوانٍ": "s",
@ -128,10 +129,12 @@
"وثانية": "s",
"ثانيتين": "2s",
"وثانيتان": "2s",
"د": "m",
"دقائق": "m",
"دقيقة": "m",
"دقيقتان": "2m",
"دقيقتين": "2m",
"س": "h",
"ساعات": "h",
"ساعة": "h",
"ساعتين": "2h",