- Add BonusQuiz.vue component with 7 randomized questions - Add challenge-bonus.vue page with intro, quiz, and results - Redirect to bonus quiz after successful contact form submission - Add i18n translations for bonus.* (fr/en) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
344 lines
14 KiB
JSON
344 lines
14 KiB
JSON
{
|
|
"nav": {
|
|
"home": "Accueil",
|
|
"projects": "Projets",
|
|
"skills": "Compétences",
|
|
"testimonials": "Témoignages",
|
|
"journey": "Parcours",
|
|
"contact": "Contact",
|
|
"resume": "Résumé Express"
|
|
},
|
|
"common": {
|
|
"continue": "Continuer",
|
|
"back": "Retour",
|
|
"discover": "D\u00e9couvrir",
|
|
"close": "Fermer",
|
|
"loading": "Chargement...",
|
|
"language": "Langue",
|
|
"back_home": "Retour \u00e0 l'accueil",
|
|
"back_to_adventure": "Retour \u00e0 l'aventure",
|
|
"retry": "R\u00e9essayer"
|
|
},
|
|
"landing": {
|
|
"title": "Bienvenue dans mon univers",
|
|
"subtitle": "Développeur Full-Stack passionné",
|
|
"cta_adventure": "Partir à l'aventure",
|
|
"cta_express": "Mode express (30s)"
|
|
},
|
|
"hero": {
|
|
"question": "Qui êtes-vous, voyageur ?",
|
|
"select_label": "Sélectionnez votre profil",
|
|
"recruteur": {
|
|
"name": "Recruteur",
|
|
"description": "Je cherche un talent pour rejoindre mon équipe"
|
|
},
|
|
"client": {
|
|
"name": "Client",
|
|
"description": "J'ai un projet à réaliser et je cherche le bon développeur"
|
|
},
|
|
"dev": {
|
|
"name": "Développeur",
|
|
"description": "Je suis curieux de découvrir ton travail et tes compétences"
|
|
}
|
|
},
|
|
"error": {
|
|
"404": "Oups ! Cette page semble s'être perdue dans les méandres du code...",
|
|
"generic": "Une erreur inattendue s'est produite. Le Bug enquête..."
|
|
},
|
|
"meta": {
|
|
"title": "Skycel - Portfolio de Célian",
|
|
"description": "Découvrez mon portfolio interactif et gamifié"
|
|
},
|
|
"footer": {
|
|
"copyright": "© {year} Célian — Skycel",
|
|
"built_with": "Construit avec Nuxt & Laravel"
|
|
},
|
|
"consent": {
|
|
"aria_label": "Bandeau de consentement",
|
|
"message": "Pour m\u00e9moriser ton aventure et te permettre de la reprendre plus tard, j'ai besoin de ton accord pour stocker quelques informations sur ton appareil. Rien de personnel, juste ta progression !",
|
|
"accept": "D'accord, m\u00e9morise mon aventure",
|
|
"refuse": "Non merci, je pr\u00e9f\u00e8re rester anonyme"
|
|
},
|
|
"welcome_back": {
|
|
"message": "Content de te revoir, aventurier ! Tu avais commenc\u00e9 ton exploration...",
|
|
"continue": "Reprendre",
|
|
"restart": "Recommencer"
|
|
},
|
|
"resume": {
|
|
"title": "D\u00e9veloppeur Full-Stack",
|
|
"tagline": "Passionn\u00e9 par les exp\u00e9riences web innovantes et immersives",
|
|
"skills_title": "Stack technique",
|
|
"projects_title": "Projets r\u00e9cents",
|
|
"projects_loading_hint": "Projets disponibles bient\u00f4t...",
|
|
"cta_contact": "Me contacter",
|
|
"adventure_link": "Envie d'explorer ? D\u00e9couvrir l'aventure compl\u00e8te",
|
|
"meta_title": "C\u00e9lian - D\u00e9veloppeur Full-Stack | CV Express",
|
|
"meta_description": "D\u00e9veloppeur Full-Stack sp\u00e9cialis\u00e9 en Vue.js, Nuxt, Laravel. D\u00e9couvrez mon profil et mes projets en 30 secondes."
|
|
},
|
|
"projects": {
|
|
"title": "Mes Projets",
|
|
"page_title": "Projets | Skycel",
|
|
"page_description": "D\u00e9couvrez les projets r\u00e9alis\u00e9s par C\u00e9lian, d\u00e9veloppeur web full-stack.",
|
|
"discover": "D\u00e9couvrir",
|
|
"no_projects": "Aucun projet pour le moment",
|
|
"load_error": "Impossible de charger les projets...",
|
|
"view_all": "Voir tous les projets",
|
|
"not_found": "Projet introuvable",
|
|
"not_found_description": "Ce projet n'existe pas ou a \u00e9t\u00e9 supprim\u00e9.",
|
|
"back_to_gallery": "Retour \u00e0 la galerie",
|
|
"completed_on": "R\u00e9alis\u00e9 le",
|
|
"visit_site": "Voir le site",
|
|
"view_code": "Voir le code",
|
|
"skills_used": "Comp\u00e9tences utilis\u00e9es",
|
|
"skill_level": "Niveau",
|
|
"previous": "Projet pr\u00e9c\u00e9dent",
|
|
"next": "Projet suivant"
|
|
},
|
|
"skills": {
|
|
"title": "Mes Comp\u00e9tences",
|
|
"page_title": "Comp\u00e9tences | Skycel",
|
|
"page_description": "D\u00e9couvrez les comp\u00e9tences techniques et soft skills de C\u00e9lian, d\u00e9veloppeur web full-stack.",
|
|
"load_error": "Impossible de charger les comp\u00e9tences...",
|
|
"no_skills": "Aucune comp\u00e9tence pour le moment",
|
|
"skill_tree_placeholder": "Arbre de comp\u00e9tences interactif (bient\u00f4t disponible)",
|
|
"level": "Niveau",
|
|
"project": "projet",
|
|
"projects": "projets",
|
|
"related_projects": "Projets utilisant cette comp\u00e9tence",
|
|
"load_projects_error": "Impossible de charger les projets li\u00e9s",
|
|
"no_related_projects": "Aucun projet n'utilise encore cette comp\u00e9tence"
|
|
},
|
|
"testimonials": {
|
|
"page_title": "T\u00e9moignages | Skycel",
|
|
"page_description": "D\u00e9couvrez ce que disent mes collaborateurs et clients de mon travail.",
|
|
"load_error": "Impossible de charger les t\u00e9moignages...",
|
|
"no_testimonials": "Aucun t\u00e9moignage pour le moment",
|
|
"cta_title": "Envie de travailler ensemble ?",
|
|
"cta_description": "Discutons de votre projet et voyons comment je peux vous aider.",
|
|
"cta_button": "Me contacter",
|
|
"dialogue_mode": "Dialogue",
|
|
"list_mode": "Liste",
|
|
"click_to_continue": "Cliquez ou appuyez sur Espace pour continuer...",
|
|
"previous": "Pr\u00e9c\u00e9dent",
|
|
"next": "Suivant",
|
|
"finish": "Terminer",
|
|
"go_to": "Aller au t\u00e9moignage",
|
|
"keyboard_hint": "Utilisez les fl\u00e8ches \u2190 \u2192 pour naviguer, Espace pour acc\u00e9l\u00e9rer"
|
|
},
|
|
"journey": {
|
|
"title": "Mon Parcours",
|
|
"page_title": "Parcours | Skycel",
|
|
"page_description": "D\u00e9couvrez le parcours professionnel de C\u00e9lian, de ses d\u00e9buts \u00e0 aujourd'hui.",
|
|
"end_message": "L'aventure continue... Qui sait o\u00f9 le code me m\u00e8nera demain ?",
|
|
"milestones": [
|
|
{
|
|
"date": "2018",
|
|
"title": "Premiers pas en d\u00e9veloppement",
|
|
"description": "D\u00e9couverte du code \u00e0 travers des projets personnels. HTML, CSS, JavaScript deviennent mes nouveaux compagnons de route. L'\u00e9tincelle est l\u00e0.",
|
|
"icon": "\ud83d\ude80"
|
|
},
|
|
{
|
|
"date": "2019",
|
|
"title": "Formation intensive",
|
|
"description": "Plong\u00e9e dans le monde du d\u00e9veloppement web professionnel. Apprentissage de frameworks modernes, bonnes pratiques, et m\u00e9thodologies agiles.",
|
|
"icon": "\ud83d\udcda"
|
|
},
|
|
{
|
|
"date": "2020",
|
|
"title": "Premiers clients",
|
|
"description": "Lancement en freelance. Premiers projets concrets, premiers d\u00e9fis r\u00e9els. Chaque client m'apprend quelque chose de nouveau.",
|
|
"icon": "\ud83d\udcbc"
|
|
},
|
|
{
|
|
"date": "2021",
|
|
"title": "Sp\u00e9cialisation Vue.js & Laravel",
|
|
"description": "Le duo qui change tout. Vue.js c\u00f4t\u00e9 front, Laravel c\u00f4t\u00e9 back. Une stack qui me permet de cr\u00e9er des exp\u00e9riences web compl\u00e8tes et performantes.",
|
|
"icon": "\u26a1"
|
|
},
|
|
{
|
|
"date": "2022",
|
|
"title": "Cr\u00e9ation de la micro-entreprise",
|
|
"description": "Officialisation de l'aventure entrepreneuriale. L'araign\u00e9e devient la mascotte, le Bug devient le guide. L'identit\u00e9 Skycel prend forme.",
|
|
"icon": "\ud83d\udd77\ufe0f"
|
|
},
|
|
{
|
|
"date": "2023-2024",
|
|
"title": "Projets ambitieux",
|
|
"description": "Des applications web complexes aux sites e-commerce, chaque projet repousse les limites. TypeScript, Nuxt 4, et une obsession pour la qualit\u00e9.",
|
|
"icon": "\ud83c\udfaf"
|
|
},
|
|
{
|
|
"date": "2025",
|
|
"title": "Aujourd'hui",
|
|
"description": "Ce portfolio que vous explorez. Une aventure en soi, qui refl\u00e8te ma passion pour cr\u00e9er des exp\u00e9riences web m\u00e9morables. Et ce n'est que le d\u00e9but...",
|
|
"icon": "\u2728"
|
|
}
|
|
]
|
|
},
|
|
"narrator": {
|
|
"clickToSkip": "Cliquez ou appuyez sur Espace pour passer",
|
|
"bugAlt": "Le Bug - Stade {stage}"
|
|
},
|
|
"intro": {
|
|
"continue": "Continuer",
|
|
"startExploring": "Commencer l'exploration",
|
|
"skip": "Passer l'intro",
|
|
"fallback": {
|
|
"seq1": "Bienvenue dans mon domaine... Je suis Le Bug, ton guide pour cette aventure.",
|
|
"seq2": "Il y a quelqu'un ici que tu cherches... Un développeur mystérieux qui a créé tout ce que tu vois.",
|
|
"seq3": "Pour le trouver, explore ce monde. Chaque zone cache une partie de son histoire. Es-tu prêt ?"
|
|
}
|
|
},
|
|
"map": {
|
|
"ariaLabel": "Carte interactive du portfolio. Utilisez Tab pour naviguer entre les zones et Entrée pour explorer.",
|
|
"instructions": "Utilisez les touches Tab pour naviguer entre les zones et Entrée ou Espace pour explorer une zone.",
|
|
"locked": "Zone verrouillée - Explorez davantage",
|
|
"visited": "Déjà visité",
|
|
"clickToExplore": "Cliquez pour explorer",
|
|
"legend": {
|
|
"notVisited": "Non visité",
|
|
"visited": "Visité",
|
|
"locked": "Verrouillé"
|
|
}
|
|
},
|
|
"progress": {
|
|
"label": "Progression : {percent}%",
|
|
"title": "Exploration du portfolio",
|
|
"sections": {
|
|
"projects": "Projets",
|
|
"skills": "Compétences",
|
|
"testimonials": "Témoignages",
|
|
"journey": "Parcours"
|
|
},
|
|
"summary": "{visited} visité(s), {remaining} à découvrir"
|
|
},
|
|
"zone": {
|
|
"locked": "Verrouillé",
|
|
"visited": "Visité",
|
|
"new": "À découvrir",
|
|
"newBadge": "Nouveau"
|
|
},
|
|
"cheminLibre": {
|
|
"title": "Chemin Libre"
|
|
},
|
|
"bottomBar": {
|
|
"map": "Carte",
|
|
"progress": "Progression",
|
|
"settings": "Options"
|
|
},
|
|
"settings": {
|
|
"title": "Paramètres",
|
|
"language": "Langue",
|
|
"expressMode": "Mode Express",
|
|
"expressModeDesc": "Navigation rapide sans aventure",
|
|
"goToResume": "Voir le CV",
|
|
"saveProgress": "Sauvegarder ma progression",
|
|
"saveProgressDesc": "Permet de reprendre là où vous vous êtes arrêté",
|
|
"reset": "Réinitialiser ma progression",
|
|
"confirmReset": "Êtes-vous sûr de vouloir réinitialiser votre progression ?"
|
|
},
|
|
"pages": {
|
|
"projects": {
|
|
"title": "Projets",
|
|
"description": "D\u00e9couvrez mes projets et r\u00e9alisations"
|
|
},
|
|
"skills": {
|
|
"title": "Comp\u00e9tences",
|
|
"description": "Mes comp\u00e9tences techniques et humaines"
|
|
},
|
|
"testimonials": {
|
|
"title": "Témoignages",
|
|
"description": "Ce que l'on dit de mon travail"
|
|
},
|
|
"journey": {
|
|
"title": "Parcours",
|
|
"description": "Mon parcours professionnel et personnel"
|
|
},
|
|
"contact": {
|
|
"title": "Contact",
|
|
"description": "Prenez contact avec moi"
|
|
},
|
|
"resume": {
|
|
"title": "Résumé Express",
|
|
"description": "L'essentiel en un coup d'œil"
|
|
}
|
|
},
|
|
"easterEgg": {
|
|
"found": "Easter Egg trouve !",
|
|
"count": "{found} / {total} decouverts",
|
|
"difficulty": "Difficulte",
|
|
"collection": "Ma Collection",
|
|
"allFound": "Collection complete ! Tu es un vrai explorateur !",
|
|
"hint": "Continue d'explorer... des surprises sont cachees partout !"
|
|
},
|
|
"challenge": {
|
|
"title": "Une derniere epreuve...",
|
|
"intro": "Avant de rencontrer le developpeur, prouve que tu maitrises les bases du code. Rien de bien mechant, promis.",
|
|
"accept": "Relever le defi",
|
|
"skip": "Passer directement au contact",
|
|
"puzzleTitle": "Remets le code dans l'ordre",
|
|
"puzzleInstruction": "Glisse les lignes pour reconstituer la fonction qui debloque l'acces au developpeur.",
|
|
"hint1": "La fonction commence par function unlockDeveloper() {",
|
|
"hint2": "La variable secret est definie juste apres l'accolade ouvrante",
|
|
"hint3": "La derniere ligne avant l'accolade fermante est return Keep exploring...",
|
|
"hintLabel": "Indice",
|
|
"needHint": "Besoin d'aide ?",
|
|
"validate": "Verifier",
|
|
"validating": "Verification...",
|
|
"wrongOrder": "Ce n'est pas le bon ordre... Essaie encore !",
|
|
"moveUp": "Monter",
|
|
"moveDown": "Descendre",
|
|
"success": "Bravo !",
|
|
"successMessage": "Tu as prouve ta valeur. Le chemin vers le developpeur est maintenant ouvert...",
|
|
"redirecting": "Redirection en cours..."
|
|
},
|
|
"revelation": {
|
|
"loading": "Chargement...",
|
|
"bugSays": "Le Bug dit : Tu l'as trouve !",
|
|
"foundMe": "Tu m'as trouve !",
|
|
"message": "Bienvenue dans mon monde de code. Merci d'avoir explore tout ce chemin pour me trouver.",
|
|
"contactCta": "Me contacter",
|
|
"srDescription": "Page de revelation. Vous avez trouve le developpeur Celian. Un bouton permet de le contacter.",
|
|
"codeWorldAlt": "Un monde en ASCII art representant un paysage de code avec le message Tu m'as trouve au centre."
|
|
},
|
|
"contact": {
|
|
"statsTitle": "Ton parcours",
|
|
"zones": "Zones visitees",
|
|
"easterEggs": "Easter eggs",
|
|
"challenge": "Defi",
|
|
"title": "Me contacter",
|
|
"subtitle": "Felicitations pour avoir explore tout ce chemin ! Je serais ravi d'echanger avec toi.",
|
|
"name": "Nom",
|
|
"namePlaceholder": "Ton nom",
|
|
"email": "Email",
|
|
"emailPlaceholder": "ton.email(at)example.com",
|
|
"message": "Message",
|
|
"messagePlaceholder": "Qu'est-ce qui t'amene ?",
|
|
"send": "Envoyer",
|
|
"sending": "Envoi en cours...",
|
|
"success": "Message envoye !",
|
|
"successMessage": "Merci pour ton message. Je te repondrai dans les plus brefs delais.",
|
|
"error": "Une erreur s'est produite. Reessaie plus tard.",
|
|
"rateLimitError": "Trop de tentatives. Patiente un moment avant de reessayer."
|
|
},
|
|
"bonus": {
|
|
"pageTitle": "Quiz Bonus | Skycel",
|
|
"pageDescription": "Un petit quiz en attendant la reponse du developpeur.",
|
|
"exit": "Quitter",
|
|
"waitingTitle": "Message envoye !",
|
|
"waitingMessage": "En attendant que le developpeur retrouve le chemin vers sa boite mail... un petit quiz pour passer le temps ?",
|
|
"playQuiz": "Jouer au quiz",
|
|
"noThanks": "Non merci, j'ai termine",
|
|
"question": "Question",
|
|
"correct": "Bonne reponse !",
|
|
"incorrect": "Pas tout a fait...",
|
|
"resultTitle": "Quiz termine !",
|
|
"perfectMessage": "Score parfait ! Tu connais vraiment bien le developpement web... et Celian !",
|
|
"goodMessage": "Bien joue ! Tu as de bonnes bases en developpement web.",
|
|
"tryMessage": "Continue d'apprendre ! Le developpement web est un voyage sans fin.",
|
|
"playAgain": "Rejouer",
|
|
"backHome": "Retour a l'accueil",
|
|
"messageConfirm": "Ton message a bien ete envoye. Celian te repondra bientot !"
|
|
}
|
|
}
|