feat: internationalize the app interface
This commit is contained in:
@ -1,12 +1,16 @@
|
||||
use crate::components::task_list::TaskList;
|
||||
use crate::components::task_list_item::TaskListItem;
|
||||
use crate::internationalization::LocaleFromLanguageIdentifier;
|
||||
use crate::models::category::Category;
|
||||
use crate::models::task::TaskWithSubtasks;
|
||||
use crate::query::tasks::{use_tasks_with_subtasks_in_category_query};
|
||||
use crate::query::tasks::use_tasks_with_subtasks_in_category_query;
|
||||
use crate::query::QueryValue;
|
||||
use chrono::{Local, Locale};
|
||||
use chrono::Local;
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_query::prelude::QueryResult;
|
||||
use crate::components::task_list_item::TaskListItem;
|
||||
use dioxus_sdk::i18n::use_i18;
|
||||
use dioxus_sdk::translate;
|
||||
use voca_rs::Voca;
|
||||
|
||||
#[component]
|
||||
pub(crate) fn CategoryTodayPage() -> Element {
|
||||
@ -22,6 +26,8 @@ pub(crate) fn CategoryTodayPage() -> Element {
|
||||
let long_term_tasks_query = use_tasks_with_subtasks_in_category_query(Category::LongTerm);
|
||||
let long_term_tasks_query_result = long_term_tasks_query.result();
|
||||
|
||||
let i18 = use_i18();
|
||||
|
||||
rsx! {
|
||||
div {
|
||||
class: "pt-4 flex flex-col gap-8",
|
||||
@ -40,7 +46,7 @@ pub(crate) fn CategoryTodayPage() -> Element {
|
||||
}
|
||||
div {
|
||||
class: "mt-1",
|
||||
"Long-term"
|
||||
{translate!(i18, "long_term")._upper_first()}
|
||||
}
|
||||
}
|
||||
div {
|
||||
@ -103,7 +109,7 @@ pub(crate) fn CategoryTodayPage() -> Element {
|
||||
}
|
||||
div {
|
||||
class: "mt-1",
|
||||
"Overdue"
|
||||
{translate!(i18, "overdue")._upper_first()}
|
||||
}
|
||||
}
|
||||
TaskList {
|
||||
@ -122,9 +128,23 @@ pub(crate) fn CategoryTodayPage() -> Element {
|
||||
div {
|
||||
class: "mt-1",
|
||||
{
|
||||
today_date
|
||||
.format_localized("Today, %A %-d. %B", Locale::en_US)
|
||||
.to_string()
|
||||
let format = translate!(i18, "formats.date_weekday_format");
|
||||
let today_date = today_date.format_localized(
|
||||
format.as_str(),
|
||||
LocaleFromLanguageIdentifier::from(
|
||||
&(i18.selected_language)()
|
||||
).into()
|
||||
).to_string();
|
||||
format!(
|
||||
"{} – {}",
|
||||
translate!(i18, "today")._upper_first(),
|
||||
if translate!(i18, "formats.weekday_lowercase_first")
|
||||
.parse().unwrap() {
|
||||
today_date._lower_first()
|
||||
} else {
|
||||
today_date
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user