Added en-GB and de-DE

Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
This commit is contained in:
Tuan-Dat Tran
2024-05-21 16:39:11 +02:00
parent 4b56557d15
commit 6ca89b3bd5
16 changed files with 594 additions and 277 deletions

View File

@@ -1,22 +1,29 @@
#![allow(non_snake_case)]
use dioxus::fullstack::Config;
use std::str::FromStr;
use dioxus::prelude::*;
use dioxus_sdk::i18n::*;
use tracing::Level;
pub mod components;
mod consulting;
mod cv;
mod home;
mod impressum;
mod languages;
mod layout;
mod publications;
use crate::consulting::Consulting;
use crate::cv::CV;
use crate::home::Home;
use crate::impressum::Impressum;
use crate::languages::DE_DE;
use crate::languages::EN_GB;
use crate::layout::Layout;
use crate::publications::ProjectsPublications;
use crate::publications::PublicationsProjects;
#[derive(Clone, Routable, Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum Route {
@@ -26,9 +33,11 @@ pub enum Route {
#[route("/impressum")]
Impressum {},
#[route("/publications")]
ProjectsPublications {},
PublicationsProjects {},
#[route("/resume")]
CV {},
#[route("/consulting")]
Consulting {},
#[end_layout]
#[route("/:..route")]
PageNotFound { route: Vec<String> },
@@ -36,16 +45,20 @@ pub enum Route {
fn main() {
dioxus_logger::init(Level::DEBUG).expect("failed to init logger");
let config = server_only!(
dioxus::fullstack::Config::new().addr(std::net::SocketAddrV4::new(
std::net::Ipv4Addr::new(0, 0, 0, 0),
8080,
))
);
LaunchBuilder::fullstack().with_cfg(config).launch(App)
LaunchBuilder::fullstack()
.with_cfg(server_only!(dioxus::fullstack::Config::new().addr(
std::net::SocketAddrV4::new(std::net::Ipv4Addr::new(0, 0, 0, 0), 8080,)
)))
.launch(App)
}
fn App() -> Element {
use_init_i18n("en-GB".parse().unwrap(), "en-GB".parse().unwrap(), || {
let en_gb = Language::from_str(EN_GB).unwrap();
let de_de = Language::from_str(DE_DE).unwrap();
vec![en_gb, de_de]
});
rsx! {
meta {
name: "robots",
@@ -79,11 +92,8 @@ pub struct BodyProp {
pub fn Body(prop: BodyProp) -> Element {
rsx! {
div {
class: "flex justify-center my-4",
div {
class: "max-w-screen-xl min-w-full",
class: "justify-center my-4",
{prop.children}
}
}
}
}