Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions i18n/de/libcosmic.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,24 @@ designers = Designer*innen
artists = Künstler*innen
translators = Übersetzer*innen
documenters = Dokumentierer*innen

# Calendar
january = Januar { $year }
february = Februar { $year }
march = März { $year }
april = April { $year }
may = Mai { $year }
june = Juni { $year }
july = Juli { $year }
august = August { $year }
september = September { $year }
october = Oktober { $year }
november = November { $year }
december = Dezember { $year }
monday = Mo
tuesday = Di
wednesday = Mi
thursday = Do
friday = Fr
saturday = Sa
sunday = So
21 changes: 21 additions & 0 deletions i18n/en/libcosmic.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,24 @@ designers = Designers
artists = Artists
translators = Translators
documenters = Documenters

# Calendar
january = January { $year }
february = February { $year }
march = March { $year }
april = April { $year }
may = May { $year }
june = June { $year }
july = July { $year }
august = August { $year }
september = September { $year }
october = October { $year }
november = November { $year }
december = December { $year }
monday = Mon
tuesday = Tue
wednesday = Wed
thursday = Thu
friday = Fri
saturday = Sat
sunday = Sun
42 changes: 39 additions & 3 deletions src/widget/calendar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ use std::cmp;
use crate::iced_core::{Alignment, Length, Padding};
use crate::widget::{Grid, button, column, grid, icon, row, text};
use apply::Apply;
use chrono::{Datelike, Days, Local, Months, NaiveDate, Weekday};
use chrono::{Datelike, Days, Local, Month, Months, NaiveDate, Weekday};
use crate::fl;

/// A widget that displays an interactive calendar.
pub fn calendar<M>(
Expand Down Expand Up @@ -129,7 +130,42 @@ where
icon.padding([0, 12]).on_press($on_press)
}};
}
let date = text(this.model.visible.format("%B %Y").to_string()).size(18);
macro_rules! translate_month {
($month:expr, $year:expr) => {{
match $month {
chrono::Month::January => fl!("january", year=$year),
chrono::Month::February => fl!("february", year=$year),
chrono::Month::March => fl!("march", year=$year),
chrono::Month::April => fl!("april", year=$year),
chrono::Month::May => fl!("may", year=$year),
chrono::Month::June => fl!("june", year=$year),
chrono::Month::July => fl!("july", year=$year),
chrono::Month::August => fl!("august", year=$year),
chrono::Month::September => fl!("september", year=$year),
chrono::Month::October => fl!("october", year=$year),
chrono::Month::November => fl!("november", year=$year),
chrono::Month::December => fl!("december", year=$year)
}
}}
}
macro_rules! translate_weekday {
($weekday:expr) => {{
match $weekday {
Weekday::Mon => fl!("monday"),
Weekday::Tue => fl!("tuesday"),
Weekday::Wed => fl!("wednesday"),
Weekday::Thu => fl!("thursday"),
Weekday::Fri => fl!("friday"),
Weekday::Sat => fl!("saturday"),
Weekday::Sun => fl!("sunday")
}
}}
}

let date = text(translate_month!(
Month::try_from(this.model.visible.month() as u8)
.expect("Previously valid month is suddenly invalid"),
this.model.visible.year())).size(18);

let month_controls = row::with_capacity(2)
.push(icon!("go-previous-symbolic", (this.on_prev)()))
Expand All @@ -142,7 +178,7 @@ where
let mut first_day_of_week = this.first_day_of_week;
for _ in 0..7 {
calendar_grid = calendar_grid.push(
text(first_day_of_week.to_string())
text(translate_weekday!(first_day_of_week))
.size(12)
.width(Length::Fixed(36.0))
.align_x(Alignment::Center),
Expand Down
Loading