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

115
src/cv.rs
View File

@@ -1,4 +1,5 @@
use dioxus::prelude::*;
use dioxus_sdk::{i18n::use_i18, translate};
use crate::components::{H4, HR};
@@ -21,6 +22,8 @@ pub fn CV() -> Element {
}
fn Introduction() -> Element {
let i18 = use_i18();
rsx! {
div {
class: "flex",
@@ -28,71 +31,39 @@ fn Introduction() -> Element {
class: "rounded-full w-16 h-16 mx-16",
src: "/pictures/portrait.webp"
}
P {
"While studying for my bachelors degree I accumulated a lot of
industry and academic experience. My professional and personal
intererests are DevOps/IaC, Systems/Software Security and Computer
Networking. All of which I deepen in personal projects such as my
homelab and CTF challenges."
}
P { { translate!(i18, "cv.introduction") }}
}
}
}
fn WorkExperience() -> Element {
let i18 = use_i18();
rsx! {
div {
class: "ms-8 max-w-3/4",
H4 { "Work Experience" },
H4 { { translate!(i18, "cv.workexperience.title") } },
ol {
class:"relative border-s border-gray-200 dark:border-gray-700",
CVEntry {time: "2021 - now", title: "Research Assistant @ UDE",
CVEntry {time: translate!(i18, "cv.workexperience.ra_ude.time"), title: translate!(i18, "cv.workexperience.ra_ude.title"),
technologies: vec!["Rust".to_string(), "Python".to_string(), "P4".to_string(), "Linux".to_string(), "Docker".to_string(), "Kubernetes".to_string()],
description:
"While working for the Network Communication System Research
Group at the University Duisburg-Essen as a research assistant
I've assisted in research around software defined networking,
5G, congestion control algorithms and federated machine learning.
I've established and managed the research groups on-premise and
cloud infractructure, inventory system and online presence."
description: translate!(i18, "cv.workexperience.ra_ude.description")
},
CVEntry {time: "2021 - 2022", title: "Mentoring @ UDE",
CVEntry {time: translate!(i18, "cv.workexperience.ra_ude.time"), title: translate!(i18, "cv.workexperience.mentoring_ude.title"),
technologies: vec!["Powerpoint".to_string()],
description:
"As a mentor for students enrolling into the computer
science program of the University Duisburg-Essen I
introduced groups of ~20 freshmen to their new academic
environment at the beginning of each semester. Offering
additional organizational and technical guidance for
their first year in university."
description: translate!(i18, "cv.workexperience.mentoring_ude.description")
},
CVEntry {time: "2018 - 2020", title: "Software Engineer @ gefeba Engineering GmbH",
CVEntry {time: translate!(i18, "cv.workexperience.ra_ude.time"), title: translate!(i18, "cv.workexperience.se2_gefeba.title"),
technologies: vec!["C#".to_string(), "Angular".to_string(), "bootstrap".to_string(), "Entity Framework".to_string()],
description:
"As a software engineer at gefeba Engineering I worked
on the companies main software product, which was a
frame-based data exchange system to monitor industry
machinery using C# and Entity Framework. Another project
I worked on was a real time log visualization application
for the same machinery."
description: translate!(i18, "cv.workexperience.se2_gefeba.description")
},
CVEntry {time: "2016 - 2019", title: "Student Council Member @ UDE",
CVEntry {time: translate!(i18, "cv.workexperience.ra_ude.time"), title: translate!(i18, "cv.workexperience.student_fse.title"),
technologies: vec!["Linux".to_string(), "Networking".to_string(), "LaTeX".to_string()],
description:
"As a student council member I participated in faculty
committees and organized social events. My
main responsibilities as a member were the management
of the IT infrastructure and supporting students, be it
organizationally or subject-specific."
description: translate!(i18, "cv.workexperience.student_fse.description")
},
CVEntry {time: "2013 - 2015", title: "Software Engineer @ gefeba Engineering GmbH",
CVEntry {time: translate!(i18, "cv.workexperience.ra_ude.time"), title: translate!(i18, "cv.workexperience.se1_gefeba.title"),
technologies: vec!["C#".to_string(), "HTML".to_string(), "Javascript".to_string(), "CSS".to_string()],
description:
"After a school internship I got offered a job as a
Software Engineer. I mostly worked on internal ERP
projects, designed a tool which aided in managing
project related mail traffic and worked on the
internal master data management tool."
description: translate!(i18, "cv.workexperience.se1_gefeba.description")
},
}
},
@@ -112,59 +83,67 @@ fn Miscellaneous() -> Element {
}
fn Education() -> Element {
let i18 = use_i18();
rsx! {
div {
H4 {"Education"},
H4 { { translate!(i18, "cv.education.title") } },
Entry {
title: "BSc Systems Engineering",
time { class:"mb-1 text-sm font-normal leading-none text-gray-400 dark:text-gray-500", "2015 - now"},
title: translate!(i18, "cv.education.bachelor.title"),
time { class:"mb-1 text-sm font-normal leading-none text-gray-400 dark:text-gray-500", { translate!(i18, "cv.education.bachelor.time") } },
},
}
}
}
fn Skills() -> Element {
let i18 = use_i18();
rsx! {
div {
H4 {"Skills"},
H4 { { translate!(i18, "cv.skills.title") }},
Entry {
title: "DevOps",
P { "Ansible" },
P { "Kubernetes" },
P { "GitOps" },
title: translate!(i18, "cv.skills.devops.title"),
P { { translate!(i18, "cv.skills.devops.ansible") } },
P { { translate!(i18, "cv.skills.devops.kubernetes") } },
P { { translate!(i18, "cv.skills.devops.gitops") } },
}Entry {
title: "Software Development",
P { "Rust" },
P { "Python" },
P { "C#" },
title: translate!(i18, "cv.skills.software_engineering.title"),
P { { translate!(i18, "cv.skills.software_engineering.rust") } },
P { { translate!(i18, "cv.skills.software_engineering.python") } },
P { { translate!(i18, "cv.skills.software_engineering.csharp") } },
}
}
}
}
fn Languages() -> Element {
let i18 = use_i18();
rsx! {
div {
H4 {"Languages"},
H4 { { translate!(i18, "cv.languages.title") } },
Entry {
P { "German (Native)" },
P { "English (C2)" },
P { "Vietnamese (B1)" },
P { "Japanese (A1)" },
P { {translate!(i18, "cv.languages.german") } },
P { {translate!(i18, "cv.languages.english") } },
P { {translate!(i18, "cv.languages.vietnamese") } },
P { {translate!(i18, "cv.languages.japanese") } },
}
}
}
}
fn Interests() -> Element {
let i18 = use_i18();
rsx! {
div {
H4 {"Interests"}
H4 { { translate!(i18, "cv.interests.title") } },
Entry {
P { "Coffee" },
P { "Tech/IT" },
P { "Guitar" },
P { "Mechanical Keyboards" },
P { { translate!(i18, "cv.interests.coffee") } },
P { { translate!(i18, "cv.interests.tech_it") } },
P { { translate!(i18, "cv.interests.guitar") } },
P { { translate!(i18, "cv.interests.mechanical_keyboards") } },
}
}
}