feat: internationalize the app interface

This commit is contained in:
2024-09-10 16:15:47 +02:00
parent d4ee2b4154
commit f0f87cc58e
5 changed files with 122 additions and 37 deletions

View File

@ -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
}
)
}
}
}