mirror of
https://github.com/theoludwig/theoludwig.git
synced 2025-05-29 22:37:44 +02:00
feat: translate Curriculum Vitae in both English and French
This commit is contained in:
@ -12,7 +12,8 @@
|
||||
},
|
||||
"scripts": {
|
||||
"lint:eslint": "eslint src --max-warnings 0 --report-unused-disable-directives",
|
||||
"lint:typescript": "tsc --noEmit"
|
||||
"lint:typescript": "tsc --noEmit",
|
||||
"test": "vitest run"
|
||||
},
|
||||
"dependencies": {
|
||||
"deepmerge": "catalog:",
|
||||
@ -28,6 +29,7 @@
|
||||
"@types/react-dom": "catalog:",
|
||||
"@total-typescript/ts-reset": "catalog:",
|
||||
"eslint": "catalog:",
|
||||
"typescript": "catalog:"
|
||||
"typescript": "catalog:",
|
||||
"vitest": "catalog:"
|
||||
}
|
||||
}
|
||||
|
7
packages/i18n/src/tests/translations.test-d.ts
Normal file
7
packages/i18n/src/tests/translations.test-d.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import { expectTypeOf, test } from "vitest"
|
||||
import en from "../translations/en-US.json"
|
||||
import fr from "../translations/fr-FR.json"
|
||||
|
||||
test("translations types should match", () => {
|
||||
expectTypeOf(en).toEqualTypeOf(fr)
|
||||
})
|
@ -7,9 +7,6 @@
|
||||
"en-US": "English",
|
||||
"fr-FR": "French"
|
||||
},
|
||||
"common": {
|
||||
"others": "Others"
|
||||
},
|
||||
"footer": {
|
||||
"all-rights-reserved": "All rights reserved"
|
||||
},
|
||||
@ -58,7 +55,8 @@
|
||||
"frontend": "Frontend",
|
||||
"backend": "Backend",
|
||||
"software-tools": "Software and tools",
|
||||
"driving-license": "Permis B"
|
||||
"others": "Others",
|
||||
"driving-license": "Driving license"
|
||||
},
|
||||
"portfolio": {
|
||||
"title": "Portfolio",
|
||||
@ -77,54 +75,54 @@
|
||||
}
|
||||
},
|
||||
"curriculum-vitae": {
|
||||
"description": "Développeur Full Stack • Étudiant",
|
||||
"description": "Developer Full Stack • Student",
|
||||
"about": {
|
||||
"title": "À propos",
|
||||
"description": "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></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."
|
||||
"title": "About",
|
||||
"description": "I constantly wonder how to improve our present, to make our future better, particularly thanks to the advancements in computer science. <br></br> My priority is to craft intuitive user experiences (UX), that meet the needs of the users in the most efficient way possible."
|
||||
},
|
||||
"education": {
|
||||
"title": "Formations",
|
||||
"title": "Studies",
|
||||
"iut": {
|
||||
"study-type": "Bachelor Universitaire de Technologie (BUT) Informatique",
|
||||
"institution": "IUT Robert Schuman à Illkirch-Graffenstaden",
|
||||
"study-type": "University Bachelor of Technology (BUT) Computer Science",
|
||||
"institution": "IUT Robert Schuman in Illkirch-Graffenstaden",
|
||||
"years": {
|
||||
"2023-2024": {
|
||||
"title": "2023 - 2024",
|
||||
"description": "3ème année",
|
||||
"description": "3rd year",
|
||||
"courses": {
|
||||
"web": "Développement Web en Node.js et React.js",
|
||||
"ci-cd": "Intégration/Déploiement Continue et Docker",
|
||||
"complexity-algorithms": "Complexité Algorithmique Théorique et Pratique en C++",
|
||||
"no-sql": "Base de données NoSQL (Redis, MongoDB, Cassandra)"
|
||||
"web": "Web development in Node.js and React.js",
|
||||
"ci-cd": "Continuous Integration/Deployment (CI/CD) and Docker",
|
||||
"complexity-algorithms": "Theoretical and Practical Algorithmic Complexity in C++",
|
||||
"no-sql": "NoSQL database (Redis, MongoDB, Cassandra)"
|
||||
}
|
||||
},
|
||||
"2022-2023": {
|
||||
"title": "2022 - 2023",
|
||||
"description": "2ème année",
|
||||
"description": "2nd year",
|
||||
"courses": {
|
||||
"web": "Développement Web avec le framework Laravel en PHP",
|
||||
"tests": "Qualité de développement et Tests automatisés",
|
||||
"clean-code": "Patrons et Principes de conceptions (Code maintenable et réutilisable) en UML",
|
||||
"systems-c": "Programmation systèmes en C (Multi-Thread, Serveur/Client UDP/TCP)",
|
||||
"sql-security": "Sécurisation des accès à la base de données et PL/SQL"
|
||||
"web": "Web development with the Laravel framework in PHP",
|
||||
"tests": "Development Quality and Automated Testing",
|
||||
"clean-code": "Design Patterns and Principles (Maintainable and Reusable Code) in UML",
|
||||
"systems-c": "Systems programming in C (Multi-Thread, Server/Client UDP/TCP)",
|
||||
"sql-security": "Securing database access and PL/SQL"
|
||||
}
|
||||
},
|
||||
"2021-2022": {
|
||||
"title": "2021 - 2022",
|
||||
"description": "1ère année",
|
||||
"description": "1st year",
|
||||
"courses": {
|
||||
"java": "Développement Orientée Objet en Java",
|
||||
"systems-c": "Programmation systèmes en C (Allocation mémoire, Pointeurs, Structures)",
|
||||
"windows-forms": "Développement d'application Windows Forms (.NET Framework) en C#",
|
||||
"sql": "Base de données relationnelles et langage SQL"
|
||||
"java": "Object Oriented Development in Java",
|
||||
"systems-c": "Systems programming in C (Memory allocation, Pointers, Structures)",
|
||||
"windows-forms": "Windows Forms (.NET Framework) Application Development in C#",
|
||||
"sql": "Relational database and SQL language"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"lycee": {
|
||||
"study-type": "Baccalauréat Général (Mathématiques et Numériques Sciences Informatiques)",
|
||||
"institution": "Lycée Heinrich Nessel à Haguenau",
|
||||
"score": "Mention Assez Bien",
|
||||
"study-type": "General Baccalaureate (Mathematics and Computer Science)",
|
||||
"institution": "Heinrich Nessel High School in Haguenau",
|
||||
"score": "Mention Quite Good",
|
||||
"years": {
|
||||
"2019-2021": {
|
||||
"title": "2019 - 2021"
|
||||
@ -133,52 +131,21 @@
|
||||
}
|
||||
},
|
||||
"work": {
|
||||
"title": "Expériences",
|
||||
"title": "Work experiences",
|
||||
"ircad": {
|
||||
"summary": "Développement de WebSurg, une université virtuelle consacrée à la formation médico-chirurgicale, en React.js/Next.js et API Platform avec Symfony.",
|
||||
"website": "https://ircad.fr/",
|
||||
"name": "IRCAD",
|
||||
"location": "1 Place de l'Hôpital, 67000 Strasbourg",
|
||||
"position": "Alternant Développeur Web Full Stack",
|
||||
"startDate": "2023-08-28",
|
||||
"endDate": "2024-09-02",
|
||||
"duration": "1 an"
|
||||
"summary": "Development of WebSurg, a virtual university dedicated to medical-surgical training, in React.js/Next.js and API Platform with Symfony.",
|
||||
"position": "Full Stack Web Developer Apprentice",
|
||||
"duration": "1 year"
|
||||
},
|
||||
"numerize": {
|
||||
"summary": "Développement d'un outil GED (Gestion Électronique de Documents) en React.js, Laravel et GraphQL.",
|
||||
"website": "https://numerize.com/",
|
||||
"name": "Numerize",
|
||||
"location": "4 Rue Sophie Germain, 67720 Hœrdt",
|
||||
"position": "Stagiaire Développeur Web Full Stack",
|
||||
"startDate": "2023-04-11",
|
||||
"endDate": "2023-07-26",
|
||||
"duration": "4 mois"
|
||||
}
|
||||
},
|
||||
"interests-work": {
|
||||
"nuit-info-2021": {
|
||||
"summary": "Développement site web en React.js et Strapi.<br></br> Classé n°1 en France sur le Défi de l'entreprise <toolpad-link>ToolPad</toolpad-link>.",
|
||||
"website": "https://nuitdelinfo.com/",
|
||||
"name": "La Nuit de l'info 2021",
|
||||
"position": "Participation en équipe de 5 personnes",
|
||||
"startDate": "2021-12-02",
|
||||
"endDate": "2021-12-03",
|
||||
"duration": "1 semaine"
|
||||
},
|
||||
"wild-code-school": {
|
||||
"summary": "Hackathon développement d'une landing page et web scraping.",
|
||||
"website": "https://wildcodeschool.fr/",
|
||||
"name": "Wild Code School",
|
||||
"location": "32 Rue du Bassin d'Austerlitz, 67100 Strasbourg",
|
||||
"position": "Initiation métier Développeur web",
|
||||
"startDate": "2019-06-24",
|
||||
"endDate": "2019-06-28",
|
||||
"duration": "1 semaine"
|
||||
"summary": "Development of an DMS (Document Management System) tool in React.js, Laravel and GraphQL.",
|
||||
"position": "Full Stack Web Developer Intern",
|
||||
"duration": "4 months"
|
||||
}
|
||||
},
|
||||
"interests": {
|
||||
"open-source": "Enthousiaste de l'Open-Source",
|
||||
"high-tech": "Passionné de High-Tech"
|
||||
"open-source": "Open-Source Enthusiast",
|
||||
"high-tech": "Passionate about High-Tech"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,9 +7,6 @@
|
||||
"en-US": "Anglais",
|
||||
"fr-FR": "Français"
|
||||
},
|
||||
"common": {
|
||||
"others": "Autres"
|
||||
},
|
||||
"footer": {
|
||||
"all-rights-reserved": "Tous droits réservés"
|
||||
},
|
||||
@ -58,6 +55,7 @@
|
||||
"frontend": "Frontend",
|
||||
"backend": "Backend",
|
||||
"software-tools": "Logiciels et outils",
|
||||
"others": "Autres",
|
||||
"driving-license": "Permis B"
|
||||
},
|
||||
"portfolio": {
|
||||
@ -83,7 +81,7 @@
|
||||
"description": "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></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": {
|
||||
"title": "Formations",
|
||||
"title": "Études",
|
||||
"iut": {
|
||||
"study-type": "Bachelor Universitaire de Technologie (BUT) Informatique",
|
||||
"institution": "IUT Robert Schuman à Illkirch-Graffenstaden",
|
||||
@ -133,49 +131,18 @@
|
||||
}
|
||||
},
|
||||
"work": {
|
||||
"title": "Expériences",
|
||||
"title": "Expériences professionnelles",
|
||||
"ircad": {
|
||||
"summary": "Développement de WebSurg, une université virtuelle consacrée à la formation médico-chirurgicale, en React.js/Next.js et API Platform avec Symfony.",
|
||||
"website": "https://ircad.fr/",
|
||||
"name": "IRCAD",
|
||||
"location": "1 Place de l'Hôpital, 67000 Strasbourg",
|
||||
"position": "Alternant Développeur Web Full Stack",
|
||||
"startDate": "2023-08-28",
|
||||
"endDate": "2024-09-02",
|
||||
"position": "Apprenti Développeur Web Full Stack",
|
||||
"duration": "1 an"
|
||||
},
|
||||
"numerize": {
|
||||
"summary": "Développement d'un outil GED (Gestion Électronique de Documents) en React.js, Laravel et GraphQL.",
|
||||
"website": "https://numerize.com/",
|
||||
"name": "Numerize",
|
||||
"location": "4 Rue Sophie Germain, 67720 Hœrdt",
|
||||
"position": "Stagiaire Développeur Web Full Stack",
|
||||
"startDate": "2023-04-11",
|
||||
"endDate": "2023-07-26",
|
||||
"duration": "4 mois"
|
||||
}
|
||||
},
|
||||
"interests-work": {
|
||||
"nuit-info-2021": {
|
||||
"summary": "Développement site web en React.js et Strapi. <br></br> Classé n°1 en France sur le Défi de l'entreprise <toolpad-link>ToolPad</toolpad-link>.",
|
||||
"website": "https://nuitdelinfo.com/",
|
||||
"name": "La Nuit de l'info 2021",
|
||||
"position": "Participation en équipe de 5 personnes",
|
||||
"startDate": "2021-12-02",
|
||||
"endDate": "2021-12-03",
|
||||
"duration": "1 semaine"
|
||||
},
|
||||
"wild-code-school": {
|
||||
"summary": "Hackathon développement d'une landing page et web scraping.",
|
||||
"website": "https://wildcodeschool.fr/",
|
||||
"name": "Wild Code School",
|
||||
"location": "32 Rue du Bassin d'Austerlitz, 67100 Strasbourg",
|
||||
"position": "Initiation métier Développeur web",
|
||||
"startDate": "2019-06-24",
|
||||
"endDate": "2019-06-28",
|
||||
"duration": "1 semaine"
|
||||
}
|
||||
},
|
||||
"interests": {
|
||||
"open-source": "Enthousiaste de l'Open-Source",
|
||||
"high-tech": "Passionné de High-Tech"
|
||||
|
9
packages/i18n/vitest.config.ts
Normal file
9
packages/i18n/vitest.config.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import { defineConfig } from "vitest/config"
|
||||
|
||||
export default defineConfig({
|
||||
test: {
|
||||
typecheck: {
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
})
|
Reference in New Issue
Block a user