1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
use super::super::{Language, TimeUnit}; #[derive(Default)] pub struct French; impl Language for French { fn clone_boxed(&self) -> super::super::BoxedLanguage { Box::new(Self{}) } fn too_low (&self) -> &'static str { "maintenant" } fn too_high(&self) -> &'static str { "ancien" } fn ago(&self) -> &'static str { "il y a" } fn get_word(&self, tu: TimeUnit, x: u64) -> &'static str { use TimeUnit::*; if x == 1 { match tu { Nanoseconds => "nanoseconde", Microseconds => "microseconde", Milliseconds => "milliseconde", Seconds => "seconde", Minutes => "minute", Hours => "heure", Days => "jour", Weeks => "semaine", Months => "mois", Years => "année", } } else { match tu { Nanoseconds => "nanosecondes", Microseconds => "microsecondes", Milliseconds => "milisecondes", Seconds => "secondes", Minutes => "minutes", Hours => "heures", Days => "jours", Weeks => "semaines", Months => "mois", Years => "ans", } } } fn place_ago_before(&self) -> bool { true } } #[test] fn test() { use super::super::Formatter; use std::time::Duration; let f = Formatter::with_language(French); assert_eq!(f.convert(Duration::from_secs(60)), "il y a 1 minute"); }