1
1
mirror of https://github.com/theoludwig/theoludwig.git synced 2024-12-08 00:44:30 +01:00

fix: improve wording

This commit is contained in:
Théo LUDWIG 2024-01-23 23:59:10 +01:00
parent b91f3165b7
commit bac65ad61a
Signed by: theoludwig
GPG Key ID: ADFE5A563D718F3B
10 changed files with 93 additions and 71 deletions

View File

@ -1,7 +1,7 @@
<h1 align="center"><a href="https://theoludwig.fr/">Théo LUDWIG</a></h1> <h1 align="center"><a href="https://theoludwig.fr/">Théo LUDWIG</a></h1>
<p align="center"> <p align="center">
<strong>Developer Full Stack • Open-Source enthusiast</strong> <strong>Developer Full Stack • Open-Source Enthusiast</strong>
</p> </p>
<p align="center"> <p align="center">
@ -25,10 +25,10 @@
"pronouns": "He/Him", "pronouns": "He/Him",
"birthDate": "31/03/2003", "birthDate": "31/03/2003",
"nationality": "Alsace, France", "nationality": "Alsace, France",
"interests": ["Developer Full Stack", "Open-Source enthusiast"], "interests": ["Developer Full Stack", "Open-Source Enthusiast"],
"skills": { "skills": {
"programmingLanguages": ["JavaScript/TypeScript", "Python", "C/C++", "PHP"], "programmingLanguages": ["JavaScript/TypeScript", "Python", "C/C++", "PHP"],
"frontend": ["HTML", "CSS", "Tailwind CSS", "React.js/Next.js"], "frontend": ["HTML/CSS", "Tailwind CSS", "React.js/Next.js"],
"backend": ["Laravel", "Node.js", "Fastify", "PostgreSQL"], "backend": ["Laravel", "Node.js", "Fastify", "PostgreSQL"],
"tools": ["GNU/Linux", "Arch Linux", "Visual Studio Code", "Git", "Docker"] "tools": ["GNU/Linux", "Arch Linux", "Visual Studio Code", "Git", "Docker"]
} }

View File

@ -7,6 +7,10 @@
word-break: break-word; word-break: break-word;
} }
.text-base {
line-height: 1.75rem;
}
.prose { .prose {
@apply !max-w-5xl scroll-smooth text-gray dark:text-gray-300; @apply !max-w-5xl scroll-smooth text-gray dark:text-gray-300;
} }
@ -28,6 +32,11 @@
@apply text-yellow dark:text-yellow-dark; @apply text-yellow dark:text-yellow-dark;
} }
strong,
b {
@apply font-bold;
}
.prose h2, .prose h2,
.prose h3, .prose h3,
.prose h4, .prose h4,

View File

@ -12,7 +12,7 @@ import { getTheme } from "@/theme/theme.server"
const title = "Théo LUDWIG" const title = "Théo LUDWIG"
const description = const description =
"Théo LUDWIG - Developer Full Stack • Open-Source enthusiast" "Théo LUDWIG - Developer Full Stack • Open-Source Enthusiast"
const image = "/images/icon-96x96.png" const image = "/images/icon-96x96.png"
const url = new URL("https://theoludwig.fr") const url = new URL("https://theoludwig.fr")
const locale = "fr-FR, en-US" const locale = "fr-FR, en-US"

View File

@ -1,8 +1,17 @@
import htmlParser from "html-react-parser" import htmlParser from "html-react-parser"
import { faCode, faMicrochip } from "@fortawesome/free-solid-svg-icons"
import { faGit } from "@fortawesome/free-brands-svg-icons"
export const InterestsIcons = {
code: faCode,
"open-source": faGit,
"high-tech": faMicrochip,
} as const
export interface InterestParagraphProps { export interface InterestParagraphProps {
title: string title: string
description: string description: string
id: keyof typeof InterestsIcons
} }
export const InterestParagraph = ( export const InterestParagraph = (

View File

@ -1,18 +1,28 @@
import { faCode, faMicrochip } from "@fortawesome/free-solid-svg-icons" import { getI18n } from "@/i18n/i18n.server"
import { faGit } from "@fortawesome/free-brands-svg-icons"
import {
InterestsIcons,
type InterestParagraphProps,
} from "../InterestParagraph"
import { InterestItem } from "./InterestItem" import { InterestItem } from "./InterestItem"
export const InterestsList = (): JSX.Element => { export const InterestsList = (): JSX.Element => {
const i18n = getI18n()
let paragraphs = i18n.translate<InterestParagraphProps[]>(
"home.interests.paragraphs",
)
if (!Array.isArray(paragraphs)) {
paragraphs = []
}
return ( return (
<div className="my-4 flex justify-center"> <div className="my-4 flex justify-center">
<ul className="m-0 flex w-96 list-none justify-around p-0"> <ul className="m-0 flex w-96 list-none justify-around p-0">
<InterestItem title="Developer Full Stack" fontAwesomeIcon={faCode} /> {paragraphs.map(({ title, id }) => {
<InterestItem const icon = InterestsIcons[id]
title="Passionate about High-Tech" return <InterestItem key={id} title={title} fontAwesomeIcon={icon} />
fontAwesomeIcon={faMicrochip} })}
/>
<InterestItem title="Open-Source enthusiast" fontAwesomeIcon={faGit} />
</ul> </ul>
</div> </div>
) )

View File

@ -35,7 +35,7 @@ export const PortfolioItem = (props: PortfolioItemProps): JSX.Element => {
<h3 className="my-6 text-xl font-semibold text-yellow dark:text-yellow-dark"> <h3 className="my-6 text-xl font-semibold text-yellow dark:text-yellow-dark">
{title} {title}
</h3> </h3>
<p className="my-6">{description}</p> <p className="my-6 mx-2">{description}</p>
</div> </div>
</a> </a>
</ShadowContainer> </ShadowContainer>

View File

@ -1,23 +1,21 @@
import htmlParser from "html-react-parser"
import { getI18n } from "@/i18n/i18n.server" import { getI18n } from "@/i18n/i18n.server"
export const ProfileDescriptionBottom = (): JSX.Element => { export const ProfileDescriptionBottom = (): JSX.Element => {
const i18n = getI18n() const i18n = getI18n()
return ( return (
<p className="mb-8 mt-8 text-base font-normal text-gray dark:text-gray-dark"> <div className="my-6 text-gray dark:text-gray-dark text-center max-w-md text-base">
{i18n.translate("home.about.description-bottom")} <p>{htmlParser(i18n.translate("home.about.description-bottom"))}</p>
{i18n.locale === "fr-FR" ? (
<>
<br />
<br /> <br />
<a <a
href="/curriculum-vitae/index.html" href="/curriculum-vitae/index.html"
className="text-yellow hover:underline dark:text-yellow-dark" className="text-yellow hover:underline dark:text-yellow-dark"
> >
Curriculum vitæ Curriculum vitæ ({i18n.translate("common.fr-FR")})
</a> </a>
</> </div>
) : null}
</p>
) )
} }

View File

@ -7,10 +7,10 @@
"email": "contact@theoludwig.fr", "email": "contact@theoludwig.fr",
"age": "31/03/2003", "age": "31/03/2003",
"location": { "location": {
"address": "Alsace, France" "address": "Alsace, France",
}, },
"url": "https://theoludwig.fr", "url": "https://theoludwig.fr",
"summary": "Je suis étudiant à l'université suivant la formation \"BUT Informatique\" et me forme en autodidacte dans l'informatique en suivant des formations en ligne. <br/> Je mets en pratique tout ce que j'apprends et réalise de nombreux projets (disponible sur <a href=\"https://theoludwig.fr\">theoludwig.fr</a>)." "summary": "Je me demande constamment comment améliorer notre présent, afin de rendre notre futur meilleur, particulièrement grâce aux progrès de l'informatique. <br /> Ma priorité réside dans la création d'expériences utilisateurs (UX) intuitives, répondant aux besoins des utilisateurs de la manière la plus efficace que possible.",
}, },
"education": [ "education": [
{ {
@ -24,8 +24,8 @@
"Intégration/Déploiement Continue et Docker", "Intégration/Déploiement Continue et Docker",
"Complexité Algorithmique Théorique et Pratique en C++", "Complexité Algorithmique Théorique et Pratique en C++",
// "Projet développement LLM (Large Language Model) et NLP (Natural Language Processing)", // "Projet développement LLM (Large Language Model) et NLP (Natural Language Processing)",
"Base de données NoSQL (Redis, MongoDB, Cassandra)" "Base de données NoSQL (Redis, MongoDB, Cassandra)",
] ],
}, },
{ {
"startDate": "2022", "startDate": "2022",
@ -38,8 +38,8 @@
"Qualité de développement et Tests automatisés", "Qualité de développement et Tests automatisés",
"Patrons et Principes de conceptions (Code maintenable et réutilisable) en UML", "Patrons et Principes de conceptions (Code maintenable et réutilisable) en UML",
"Programmation systèmes en C (Multi-Thread, Serveur/Client UDP/TCP)", "Programmation systèmes en C (Multi-Thread, Serveur/Client UDP/TCP)",
"Sécurisation des accès à la base de données et PL/SQL" "Sécurisation des accès à la base de données et PL/SQL",
] ],
}, },
{ {
"startDate": "2021", "startDate": "2021",
@ -51,16 +51,16 @@
"Développement Orientée Objet en Java", "Développement Orientée Objet en Java",
"Programmation systèmes en C (Allocation mémoire, Pointeurs, Structures)", "Programmation systèmes en C (Allocation mémoire, Pointeurs, Structures)",
"Développement d'application Windows Forms (.NET Framework) en C#", "Développement d'application Windows Forms (.NET Framework) en C#",
"Base de données relationnelles et langage SQL" "Base de données relationnelles et langage SQL",
] ],
}, },
{ {
"startDate": "2019", "startDate": "2019",
"endDate": "2021", "endDate": "2021",
"studyType": "Baccalauréat Général (Mathématiques et Numériques Sciences Informatiques)", "studyType": "Baccalauréat Général (Mathématiques et Numériques Sciences Informatiques)",
"institution": "Lycée Heinrich Nessel à Haguenau", "institution": "Lycée Heinrich Nessel à Haguenau",
"score": "Mention Assez Bien" "score": "Mention Assez Bien",
} },
// { // {
// "startDate": "2014", // "startDate": "2014",
// "endDate": "2018", // "endDate": "2018",
@ -78,7 +78,7 @@
"position": "Alternant Développeur Web Full Stack", "position": "Alternant Développeur Web Full Stack",
"startDate": "2023-08-28", "startDate": "2023-08-28",
"endDate": "2024-09-02", "endDate": "2024-09-02",
"duration": "1 an" "duration": "1 an",
}, },
{ {
"summary": "Développement d'un outil GED (Gestion Électronique de Documents) en React.js, Laravel et GraphQL.", "summary": "Développement d'un outil GED (Gestion Électronique de Documents) en React.js, Laravel et GraphQL.",
@ -88,7 +88,7 @@
"position": "Stagiaire Développeur Web Full Stack", "position": "Stagiaire Développeur Web Full Stack",
"startDate": "2023-04-11", "startDate": "2023-04-11",
"endDate": "2023-07-26", "endDate": "2023-07-26",
"duration": "4 mois" "duration": "4 mois",
}, },
// { // {
// "summary": "Agent administratif - Numérisation et archivage des plans électriques initialement sous format papier calque.", // "summary": "Agent administratif - Numérisation et archivage des plans électriques initialement sous format papier calque.",
@ -108,7 +108,7 @@
"position": "Stage initiation métier développeur web", "position": "Stage initiation métier développeur web",
"startDate": "2019-06-17", "startDate": "2019-06-17",
"endDate": "2019-06-21", "endDate": "2019-06-21",
"duration": "1 semaine" "duration": "1 semaine",
}, },
{ {
"description": "interests", "description": "interests",
@ -118,7 +118,7 @@
"position": "Participation en équipe de 5 personnes", "position": "Participation en équipe de 5 personnes",
"startDate": "2021-12-02", "startDate": "2021-12-02",
"endDate": "2021-12-03", "endDate": "2021-12-03",
"duration": "1 semaine" "duration": "1 semaine",
}, },
{ {
"description": "interests", "description": "interests",
@ -129,8 +129,8 @@
"position": "Initiation métier Développeur web", "position": "Initiation métier Développeur web",
"startDate": "2019-06-24", "startDate": "2019-06-24",
"endDate": "2019-06-28", "endDate": "2019-06-28",
"duration": "1 semaine" "duration": "1 semaine",
} },
// { // {
// "summary": "Apprentissage du métier \"Chargé de communication\" et des logiciels de graphisme tels que \"Adobe Photoshop\".", // "summary": "Apprentissage du métier \"Chargé de communication\" et des logiciels de graphisme tels que \"Adobe Photoshop\".",
// "website": "https://es.fr/", // "website": "https://es.fr/",
@ -144,24 +144,24 @@
], ],
"interests": [ "interests": [
{ {
"name": "Enthousiaste de l'Open-Source" "name": "Enthousiaste de l'Open-Source",
}, },
{ {
"name": "Passionné de High-Tech" "name": "Passionné de High-Tech",
} },
], ],
"skills": [ "skills": [
{ {
"keywords": ["JavaScript/TypeScript", "Python", "C/C++", "PHP"], "keywords": ["JavaScript/TypeScript", "Python", "C/C++", "PHP"],
"name": "Langages de programmation" "name": "Langages de programmation",
}, },
{ {
"keywords": ["HTML", "CSS", "Tailwind CSS", "React.js/Next.js"], "keywords": ["HTML", "CSS", "Tailwind CSS", "React.js/Next.js"],
"name": "Frontend" "name": "Frontend",
}, },
{ {
"keywords": ["Laravel", "Node.js", "Fastify", "PostgreSQL"], "keywords": ["Laravel", "Node.js", "Fastify", "PostgreSQL"],
"name": "Backend" "name": "Backend",
}, },
{ {
"keywords": [ "keywords": [
@ -169,13 +169,13 @@
"Arch Linux", "Arch Linux",
"Visual Studio Code", "Visual Studio Code",
"Git", "Git",
"Docker" "Docker",
], ],
"name": "Logiciels et outils" "name": "Logiciels et outils",
}, },
{ {
"keywords": ["Permis B", "Anglais"], "keywords": ["Permis B", "Anglais"],
"name": "Autres" "name": "Autres",
} },
] ],
} }

View File

@ -1,27 +1,25 @@
{ {
"about": { "about": {
"description": "Developer Full Stack • Open-Source enthusiast", "description": "Developer Full Stack • Open-Source Enthusiast",
"pronouns": "Pronouns", "pronouns": "Pronouns",
"pronouns-value": "He/Him", "pronouns-value": "He/Him",
"birth-date": "Birth date", "birth-date": "Birth date",
"years-old": "years old", "years-old": "years old",
"nationality": "Nationality", "nationality": "Nationality",
"description-bottom": "I am a student in computer science following the French training \"BUT Informatique\" and I am also a self-taught." "description-bottom": "I wonder constantly how to <strong>improve our present, to make our future better</strong>, particularly in the advancements in <strong>computer science</strong>."
}, },
"interests": { "interests": {
"title": "Interests", "title": "Interests",
"paragraphs": [ "paragraphs": [
{ {
"title": "Developer Full Stack", "title": "Developer Full Stack",
"description": "Computer programming is my main hobby, I love it! <br/> Mostly web development for the moment but I'm programming in others programming language too." "description": "My priority is to craft intuitive user experiences (<abbr title=\"User Experience\">UX</abbr>), that meet the needs of the users <strong>in the most efficient way possible</strong>. <br/> Mainly focused on the development of <strong>Web Development solutions</strong>. <br/> I am also interested in mobile application development among other areas within the field of computer science.",
"id": "code"
}, },
{ {
"title": "Open-Source enthusiast", "title": "Open-Source Enthusiast",
"description": "For me, everyone should work, solve problems, build things and think together.<br/> The website is open-source on <a class='text-yellow dark:text-yellow-dark hover:underline' href='https://github.com/theoludwig/theoludwig' target='_blank' rel='noopener noreferrer'>GitHub</a>." "description": "I value the <strong>sharing of knowledge and collaboration</strong> to collectively resolve problems. <br /> The source of the website is available on <a class='text-yellow dark:text-yellow-dark hover:underline' href='https://github.com/theoludwig/theoludwig' target='_blank' rel='noopener noreferrer'>GitHub</a>.",
}, "id": "open-source"
{
"title": "Passionate about High-Tech",
"description": "I always wondered how the future would be. Every day I want to wake up and think that the future will be great and better than the past. Technologies improve gradually over time, which is very useful in many areas."
} }
] ]
}, },

View File

@ -6,22 +6,20 @@
"birth-date": "Date de naissance", "birth-date": "Date de naissance",
"years-old": "ans", "years-old": "ans",
"nationality": "Nationalité", "nationality": "Nationalité",
"description-bottom": "Je suis étudiant à l'université suivant la formation \"BUT Informatique\" et me forme en autodidacte dans l'informatique en suivant des formations en ligne." "description-bottom": "Je me demande constamment comment <strong>améliorer notre présent, afin de rendre notre futur meilleur</strong>, particulièrement grâce aux progrès de l'<strong>informatique</strong>."
}, },
"interests": { "interests": {
"title": "Intérêts", "title": "Intérêts",
"paragraphs": [ "paragraphs": [
{ {
"title": "Développeur Full Stack", "title": "Développeur Full Stack",
"description": "La programmation informatique est mon loisir principal, j'adore! <br/> Principalement du développement Web pour le moment, mais je programme aussi dans d'autres langages de programmation." "description": "Ma priorité réside dans la création d'expériences utilisateurs (<abbr title=\"User Experience\">UX</abbr>) intuitives, <strong>répondant aux besoins des utilisateurs de la manière la plus efficace que possible</strong>. <br/> Principalement axé sur l'élaboration de <strong>solutions en Développement Web</strong>. <br/>Je suis également intéressé par le développement d'applications mobiles parmis d'autres domaines de l'informatique.",
"id": "code"
}, },
{ {
"title": "Enthousiaste de l'Open-Source", "title": "Enthousiaste de l'Open-Source",
"description": "Pour moi, tout le monde devrait travailler, résoudre des problèmes, construire des choses et réfléchir ensemble. <br/> Le site est open-source sur <a class='text-yellow dark:text-yellow-dark hover:underline' href='https://github.com/theoludwig/theoludwig' target='_blank' rel='noopener noreferrer'>GitHub</a>." "description": "J'apprécie le <strong>partage des connaissances et la collaboration</strong> pour résoudre des défis collectivement. <br /> Le code source du site est accessible sur <a class='text-yellow dark:text-yellow-dark hover:underline' href='https://github.com/theoludwig/theoludwig' target='_blank' rel='noopener noreferrer'>GitHub</a>.",
}, "id": "open-source"
{
"title": "Passionné de High-Tech",
"description": "Je me suis toujours demandé comment l'avenir serait. Chaque jour, je veux me réveiller et penser que l'avenir sera formidable et meilleur que le passé. Les technolgies s'améliorent progressivement avec le temps, ce qui est très utile dans de nombreux domaines."
} }
] ]
}, },