From 720686751a3d8e21d0368aa84681a2584ac40bbe Mon Sep 17 00:00:00 2001 From: joyzhao Date: Sun, 15 Jun 2025 09:34:17 +0800 Subject: [PATCH] feat(i18n): add multilingual support for all sections Implement internationalization across all components by adding lang prop and translation keys Update data structure to use translation keys instead of hardcoded text Add comprehensive English and Chinese translations in ui.ts --- src/components/AwardsSection.tsx | 18 +- src/components/EducationSection.tsx | 24 ++- src/components/ExperienceSection.tsx | 24 ++- src/components/HeroSection.tsx | 28 ++- src/components/ProjectsSection.tsx | 10 +- src/components/SkillsSection.tsx | 18 +- src/i18n/ui.ts | 266 ++++++++++++++++++++++++++- src/lib/data.ts | 148 +++++++-------- src/pages/index.astro | 12 +- src/pages/zh/index.astro | 12 +- 10 files changed, 415 insertions(+), 145 deletions(-) diff --git a/src/components/AwardsSection.tsx b/src/components/AwardsSection.tsx index 948e9d3..5604ee4 100644 --- a/src/components/AwardsSection.tsx +++ b/src/components/AwardsSection.tsx @@ -1,11 +1,13 @@ import React from "react"; import { awards } from "@/lib/data"; +import { useTranslations } from "@/i18n/utils"; import { Trophy } from "lucide-react"; import MotionWrapper from "./MotionWrapper"; import { GlassCard } from "./ui/glass-card"; import { motion } from "framer-motion"; -export default function AwardsSection() { +export default function AwardsSection({ lang }: { lang: "en" | "zh" }) { + const t = useTranslations(lang); return (

- 🏆 Awards + 🏆 {t('awards.title')}

@@ -30,29 +32,29 @@ export default function AwardsSection() { > -

{award.name}

+

{t(award.name as any)}

- 🏢 {award.issuer} + 🏢 {t(award.issuer as any)}

- 📅 {award.date} + 📅 {t(award.date as any)} - {award.position} + {t(award.position as any)}
- {award.type === "International" ? "🌎 " : "🇮🇳 "} - {award.type} + {award.type === "awards.type.international" ? "🌎 " : "🇮🇳 "} + {t(award.type as any)}
diff --git a/src/components/EducationSection.tsx b/src/components/EducationSection.tsx index 1154b30..7f694df 100644 --- a/src/components/EducationSection.tsx +++ b/src/components/EducationSection.tsx @@ -1,10 +1,12 @@ import { education } from "@/lib/data"; import TimelineItem from "./TimelineItem"; +import { useTranslations } from "@/i18n/utils"; import { Award } from "lucide-react"; import MotionWrapper from "./MotionWrapper"; import { motion } from "framer-motion"; -export default function EducationSection() { +export default function EducationSection({ lang }: { lang: "en" | "zh" }) { + const t = useTranslations(lang); return (

- 🎓 Education + 🎓 {t('education.title')}

- {education.map((edu, index) => ( + {education.map((edu, index) => { + const institutionKey = edu.institution.toLowerCase().replace(/[^a-z0-9]/g, ''); + return (

- 📍 {edu.location} + 📍 {t(`education.${institutionKey}.location` as any)}

{edu.achievements && edu.achievements.length > 0 && ( @@ -44,7 +48,7 @@ export default function EducationSection() {

- ✨ Achievements & Activities + ✨ {t('education.achievementsAndActivities')}

    @@ -57,14 +61,14 @@ export default function EducationSection() { transition={{ duration: 0.3, delay: 0.1 * i }} viewport={{ once: true }} > - {achievement} + {t(`education.${institutionKey}.achievements.${i}` as any)} ))}
)} - ))} + )})}
diff --git a/src/components/ExperienceSection.tsx b/src/components/ExperienceSection.tsx index 5ff8864..6aa6217 100644 --- a/src/components/ExperienceSection.tsx +++ b/src/components/ExperienceSection.tsx @@ -1,10 +1,12 @@ import { workExperience } from "@/lib/data"; import TimelineItem from "./TimelineItem"; +import { useTranslations } from "@/i18n/utils"; import { Briefcase } from "lucide-react"; import { motion } from "framer-motion"; import MotionWrapper from "./MotionWrapper"; -export default function ExperienceSection() { +export default function ExperienceSection({ lang }: { lang: "en" | "zh" }) { + const t = useTranslations(lang); return (
💼 - {" "} - Work Experience + + {t('experience.title')}
- {workExperience.map((job, index) => ( + {workExperience.map((job, index) => { + const companyKey = job.company.toLowerCase().replace(/ /g, ''); + return ( @@ -46,7 +50,7 @@ export default function ExperienceSection() {
-

Key Achievements

+

{t('experience.keyAchievements')}

    {job.achievements.map((achievement, i) => ( @@ -58,13 +62,13 @@ export default function ExperienceSection() { transition={{ duration: 0.3, delay: 0.1 * i }} viewport={{ once: true }} > - {achievement} + {t(`work.${companyKey}.achievements.${i}` as any)} ))}
- ))} + )})}
diff --git a/src/components/HeroSection.tsx b/src/components/HeroSection.tsx index 74233f0..cd616dc 100644 --- a/src/components/HeroSection.tsx +++ b/src/components/HeroSection.tsx @@ -1,9 +1,11 @@ import { personalInfo } from "@/lib/data"; import { Mail, Github, MapPin, Linkedin } from "lucide-react"; +import { useTranslations } from "@/i18n/utils"; import { motion } from "framer-motion"; import MotionWrapper from "./MotionWrapper"; -export default function HeroSection() { +export default function HeroSection({ lang }: { lang: "en" | "zh" }) { + const t = useTranslations(lang); const containerVariants = { hidden: { opacity: 0 }, visible: { @@ -40,7 +42,7 @@ export default function HeroSection() { className="text-4xl font-bold mb-2" variants={childVariants} > - {personalInfo.name}{" "} + {t('personal.name')}{" "} @@ -48,7 +50,7 @@ export default function HeroSection() { className="text-xl text-muted-foreground mb-6" variants={childVariants} > - Software Engineer 👨‍💻 + {t('personal.title')} - 📍 {personalInfo.location} + 📍 {t('personal.location')} - ✉️ {personalInfo.email} + ✉️ {t('personal.email')} - 🌟 GitHub + 🌟 {t('hero.githubLink')} - 🔗 LinkedIn + 🔗 {t('hero.linkedinLink')} @@ -122,15 +124,7 @@ export default function HeroSection() {

- 🚀 Passionate software engineer with a versatile skill set - spanning multiple domains. I thrive on solving complex challenges - across different platforms and environments, adapting quickly to - new technologies and methodologies. My holistic approach combines - technical expertise with creative problem-solving, allowing me to - develop solutions that are both innovative and practical. I'm - driven by continuous learning and a commitment to excellence, - whether working independently or collaborating with diverse teams - to create impactful, scalable solutions. + {t('hero.description')}

diff --git a/src/components/ProjectsSection.tsx b/src/components/ProjectsSection.tsx index 665675e..0d3791e 100644 --- a/src/components/ProjectsSection.tsx +++ b/src/components/ProjectsSection.tsx @@ -1,5 +1,6 @@ import React from "react"; import { projects } from "@/lib/data"; +import { useTranslations } from "@/i18n/utils"; import { CardContent, CardDescription, @@ -12,13 +13,14 @@ import { GlassCard } from "./ui/glass-card"; import MotionWrapper from "./MotionWrapper"; import { motion } from "framer-motion"; -export default function ProjectsSection() { +export default function ProjectsSection({ lang }: { lang: "en" | "zh" }) { + const t = useTranslations(lang); return (

- 🚀 Projects + 🚀 {t('projects.title')}

@@ -42,7 +44,7 @@ export default function ProjectsSection() { transition={{ delay: i * 0.1 }} viewport={{ once: true }} > - {desc} + {t(desc as any)} ))} @@ -57,7 +59,7 @@ export default function ProjectsSection() { whileTap={{ scale: 0.95 }} > - View on GitHub 🔗 + {t('projects.viewOnGithub')} 🔗 diff --git a/src/components/SkillsSection.tsx b/src/components/SkillsSection.tsx index 8094f12..2615b1e 100644 --- a/src/components/SkillsSection.tsx +++ b/src/components/SkillsSection.tsx @@ -1,5 +1,6 @@ import React from "react"; import { skills } from "@/lib/data"; +import { useTranslations } from "@/i18n/utils"; import { motion } from "framer-motion"; import MotionWrapper from "./MotionWrapper"; import { GlassCard } from "./ui/glass-card"; @@ -44,7 +45,8 @@ const skillCategoryVariants = { }, }; -export default function SkillsSection() { +export default function SkillsSection({ lang }: { lang: "en" | "zh" }) { + const t = useTranslations(lang); return (

- 🛠️ Skills + 🛠️ {t('skills.title')}

@@ -67,7 +69,7 @@ export default function SkillsSection() {

- 💻 Programming Languages + 💻 {t('skills.programmingLanguages')}

{skills.programmingLanguages.map((skill, index) => ( @@ -80,7 +82,7 @@ export default function SkillsSection() {

- 🎨 Frontend Development + 🎨 {t('skills.frontendDevelopment')}

{skills.frontendDevelopment.map((skill, index) => ( @@ -93,7 +95,7 @@ export default function SkillsSection() {

- ⚙️ Backend Development + ⚙️ {t('skills.backendDevelopment')}

{skills.backendDevelopment.map((skill, index) => ( @@ -106,7 +108,7 @@ export default function SkillsSection() {

- 🗄️ Database & Storage + 🗄️ {t('skills.databaseAndStorage')}

{skills.databaseAndStorage.map((skill, index) => ( @@ -119,7 +121,7 @@ export default function SkillsSection() {

- ☁️ Cloud & DevOps + ☁️ {t('skills.cloudAndDevOps')}

{skills.cloudAndDevOps.map((skill, index) => ( @@ -132,7 +134,7 @@ export default function SkillsSection() {

- 🧰 Tools & Services + 🧰 {t('skills.toolsAndServices')}

{skills.toolsAndServices.map((skill, index) => ( diff --git a/src/i18n/ui.ts b/src/i18n/ui.ts index 4c32b73..92d5a2e 100644 --- a/src/i18n/ui.ts +++ b/src/i18n/ui.ts @@ -16,7 +16,138 @@ export const ui = { 'nav.education': 'Education', 'footer.rights': 'All rights reserved.', 'site.title': 'My Portfolio', - // 根据您的项目实际情况添加更多翻译键值对 + + // Personal Info + 'personal.name': 'Rishikesh S', + 'personal.title': 'Software Engineer 👨‍💻', + 'personal.location': 'Coimbatore, India', + 'personal.email': 'rkesh2003@gmail.com', + + // Hero Section + 'hero.githubLink': 'GitHub', + 'hero.linkedinLink': 'LinkedIn', + 'hero.description': '🚀 Passionate software engineer with a versatile skill set spanning multiple domains. I thrive on solving complex challenges across different platforms and environments, adapting quickly to new technologies and methodologies. My holistic approach combines technical expertise with creative problem-solving, allowing me to develop solutions that are both innovative and practical. I\'m driven by continuous learning and a commitment to excellence, whether working independently or collaborating with diverse teams to create impactful, scalable solutions.', + + // Experience Section + 'experience.title': 'Work Experience', + 'experience.keyAchievements': 'Key Achievements', + + // Education Section + 'education.title': 'Education', + 'education.achievementsAndActivities': 'Achievements & Activities', + + // Skills Section + 'skills.title': 'Skills', + + // Projects Section + 'projects.title': 'Projects', + 'projects.viewOnGithub': 'View on GitHub', + + // Awards Section + 'awards.title': 'Awards', + + // Work Experience + 'work.chatbyte.company': 'Chatbyte GmbH', + 'work.chatbyte.location': 'Remote', + 'work.chatbyte.position': 'Software Engineer', + 'work.chatbyte.period': 'Mar 2024 - Present', + 'work.chatbyte.achievement1': 'Designed and implemented business logic for AWS Lambdas using the Serverless Framework, forming the backbone of the application\'s functionality and ensuring seamless backend operations.', + 'work.chatbyte.achievement2': 'Built a comprehensive admin panel for managing content, user data, and analytics.', + 'work.chatbyte.achievement3': 'Contributed to the development and integration of a scalable CMS for managing blog content and other platform data.', + 'work.chatbyte.achievement4': 'Reduced database costs by introducing materialized views, optimizing query performance and resource usage.', + 'work.chatbyte.achievement5': 'Drove the integration of a custom affiliate marketing system, enabling seamless tracking and reporting of referrals and user activities.', + 'work.chatbyte.achievement6': 'Integrated Text-to-Speech (TTS) services for enhanced user experiences, optimizing both frontend and backend systems.', + 'work.chatbyte.achievement7': 'Collaborated with cross-functional teams to deliver high-quality features, actively reviewing pull requests to ensure code quality, adherence to standards, and efficient implementation.', + + 'work.devcrew.company': 'DevCrew', + 'work.devcrew.location': 'Coimbatore, India', + 'work.devcrew.position': 'Software Engineer', + 'work.devcrew.period': 'Mar 2023 - Mar 2024', + 'work.devcrew.achievement1': 'Developed responsive frontend components using React.js, enhancing user experience and app performance.', + 'work.devcrew.achievement2': 'Optimized JavaScript solutions to improve load times and data-fetching efficiency.', + + 'work.phoenitags.company': 'Phoenitags', + 'work.phoenitags.location': 'Coimbatore, India', + 'work.phoenitags.position': 'Software Engineering Intern', + 'work.phoenitags.period': 'Jan 2023 - Mar 2023', + 'work.phoenitags.achievement1': 'Built interactive UIs with React.js, focusing on reusable components and performance optimization.', + 'work.phoenitags.achievement2': 'Implemented JavaScript-based features like user authentication and real-time updates.', + + // Education + 'education.skcet.institution': 'Sri Krishna College of Engineering and Technology', + 'education.skcet.location': 'Coimbatore, India', + 'education.skcet.degree': 'B Tech Information Technology', + 'education.skcet.period': 'Jun 2021 - Jun 2025', + 'education.skcet.achievement1': 'President of the Department of Information Technology', + 'education.skcet.achievement2': 'G20 student delegate', + 'education.skcet.achievement3': 'Organized multiple technical workshops and events', + 'education.skcet.achievement4': 'Represented my college in multiple national and international hackathons and won.', + + // Skills + 'skills.programmingLanguages': 'Programming Languages', + 'skills.frontendDevelopment': 'Frontend Development', + 'skills.backendDevelopment': 'Backend Development', + 'skills.databaseAndStorage': 'Database & Storage', + 'skills.cloudAndDevOps': 'Cloud & DevOps', + 'skills.toolsAndServices': 'Tools & Services', + + // Projects + 'projects.netzero.title': 'Net Zero Carbon Emissions', + 'projects.netzero.description1': 'WiFi-RTT: Developed indoor occupancy tracking for energy optimization.', + 'projects.netzero.description2': 'IoT Solutions: Implemented smart monitoring for energy efficiency and food waste reduction.', + 'projects.netzero.description3': 'Real-Time Tracking: Designed systems to monitor carbon emissions and optimize resources.', + 'projects.netzero.description4': 'Data-Driven Insights: Analyzed user patterns for adaptive energy and food management.', + 'projects.netzero.description5': 'Reward Integration: Built QR-based green points system to incentivize eco-friendly actions.', + + 'projects.mentalaarog.title': 'Mental Aarog', + 'projects.mentalaarog.description1': 'A holistic mental health app leveraging AI and blockchain for early detection and personalized solutions for depression.', + 'projects.mentalaarog.description2': 'Features include social media analysis (ML-based sentiment tracking), PHQ-9 assessments, smartwatch integration for sleep and activity data, guided meditation, and smart suggestions for food, travel, music, and movies.', + 'projects.mentalaarog.description3': 'Developed a rewards system using MAG crypto token on Ethereum, enabling user engagement through in-app incentives.', + 'projects.mentalaarog.description4': 'Secure storage implemented via web3.storage, IPFS, and FileCoin.', + 'projects.mentalaarog.description5': 'Built with React, Supabase, Node.js, Flask, and Solidity, showcasing seamless integration of health tech and blockchain.', + + // Awards + 'awards.ieee.name': 'IEEE YESIST12 Hackathon', + 'awards.ieee.issuer': 'IEEE', + 'awards.ieee.date': 'Sep 2022', + 'awards.ieee.type': 'International', + 'awards.ieee.position': 'Second Place', + + 'awards.prodigi.name': 'Prodigi Cognizant Hackathon', + 'awards.prodigi.issuer': 'Cognizant', + 'awards.prodigi.date': 'Feb 2023', + 'awards.prodigi.type': 'National', + 'awards.prodigi.position': 'Second Runner-up', + + 'awards.cisco.name': 'Cisco Thingqbator Hackathon', + 'awards.cisco.issuer': 'Cisco', + 'awards.cisco.date': 'Jan 2023', + 'awards.cisco.type': 'National', + 'awards.cisco.position': 'First Runner-up', + + 'awards.innovators.name': 'Innovators Day', + 'awards.innovators.issuer': 'Sri Manakula Vinayagar Engineering College, Pondicherry', + 'awards.innovators.date': 'Sep 2022', + 'awards.innovators.type': 'National', + 'awards.innovators.position': 'First Prize', + + 'awards.kghackfest.name': 'KG Hackfest\'22', + 'awards.kghackfest.issuer': 'KGiSL Institute of Technology, Coimbatore', + 'awards.kghackfest.date': 'Sep 2022', + 'awards.kghackfest.type': 'National', + 'awards.kghackfest.position': 'Second Prize', + + 'awards.innohacks.name': 'Innohacks\'22', + 'awards.innohacks.issuer': 'Innogeeks, KIET Group of Institutions, New Delhi', + 'awards.innohacks.date': 'May 2022', + 'awards.innohacks.type': 'National', + 'awards.innohacks.position': 'Second Runner-up', + + 'awards.hackskcet.name': 'Hack @ SKCET', + 'awards.hackskcet.issuer': 'Hackclub SKCET, SKCET, Coimbatore', + 'awards.hackskcet.date': 'Feb 2022', + 'awards.hackskcet.type': 'National', + 'awards.hackskcet.position': 'Most Impactful Hack', }, zh: { 'nav.home': '首页', @@ -27,6 +158,137 @@ export const ui = { 'nav.education': '教育背景', 'footer.rights': '版权所有。', 'site.title': '我的作品集', - // 根据您的项目实际情况添加更多翻译键值对 + + // Personal Info + 'personal.name': 'Rishikesh S', + 'personal.title': '软件工程师 👨‍💻', + 'personal.location': '哥印拜陀,印度', + 'personal.email': 'rkesh2003@gmail.com', + + // Hero Section + 'hero.githubLink': 'GitHub', + 'hero.linkedinLink': '领英', + 'hero.description': '🚀 我是一名充满热情的软件工程师,拥有跨越多个领域的多才多艺的技能。我乐于在不同平台和环境中解决复杂挑战,能够快速适应新技术和方法论。我的整体方法将技术专长与创造性问题解决相结合,使我能够开发出既创新又实用的解决方案。无论是独立工作还是与多元化团队合作创建有影响力、可扩展的解决方案,我都以持续学习和追求卓越为动力。', + + // Experience Section + 'experience.title': '工作经历', + 'experience.keyAchievements': '主要成就', + + // Education Section + 'education.title': '教育背景', + 'education.achievementsAndActivities': '成就与活动', + + // Skills Section + 'skills.title': '专业技能', + + // Projects Section + 'projects.title': '个人项目', + 'projects.viewOnGithub': '在 GitHub 上查看', + + // Awards Section + 'awards.title': '获奖经历', + + // Work Experience + 'work.chatbyte.company': 'Chatbyte GmbH', + 'work.chatbyte.location': '远程', + 'work.chatbyte.position': '软件工程师', + 'work.chatbyte.period': '2024年3月 - 至今', + 'work.chatbyte.achievement1': '使用无服务器框架设计并实现了 AWS Lambda 的业务逻辑,构成了应用程序功能的支柱,并确保了无缝的后端操作。', + 'work.chatbyte.achievement2': '构建了一个全面的管理面板,用于管理内容、用户数据和分析。', + 'work.chatbyte.achievement3': '参与了可扩展 CMS 的开发和集成,用于管理博客内容和其他平台数据。', + 'work.chatbyte.achievement4': '通过引入物化视图降低了数据库成本,优化了查询性能和资源使用。', + 'work.chatbyte.achievement5': '推动了自定义联盟营销系统的集成,实现了对推荐和用户活动的无缝跟踪和报告。', + 'work.chatbyte.achievement6': '集成了文本转语音 (TTS) 服务以增强用户体验,优化了前端和后端系统。', + 'work.chatbyte.achievement7': '与跨职能团队合作交付高质量功能,积极审查拉取请求以确保代码质量、遵守标准和高效实施。', + + 'work.devcrew.company': 'DevCrew', + 'work.devcrew.location': '哥印拜陀,印度', + 'work.devcrew.position': '软件工程师', + 'work.devcrew.period': '2023年3月 - 2024年3月', + 'work.devcrew.achievement1': '使用 React.js 开发了响应式前端组件,增强了用户体验和应用程序性能。', + 'work.devcrew.achievement2': '优化了 JavaScript 解决方案,以提高加载时间和数据获取效率。', + + 'work.phoenitags.company': 'Phoenitags', + 'work.phoenitags.location': '哥印拜陀,印度', + 'work.phoenitags.position': '软件工程实习生', + 'work.phoenitags.period': '2023年1月 - 2023年3月', + 'work.phoenitags.achievement1': '使用 React.js 构建了交互式 UI,专注于可重用组件和性能优化。', + 'work.phoenitags.achievement2': '实现了基于 JavaScript 的功能,如用户身份验证和实时更新。', + + // Education + 'education.skcet.institution': 'Sri Krishna 工程技术学院', + 'education.skcet.location': '哥印拜陀,印度', + 'education.skcet.degree': '信息技术学士', + 'education.skcet.period': '2021年6月 - 2025年6月', + 'education.skcet.achievement1': '信息技术系主席', + 'education.skcet.achievement2': 'G20 学生代表', + 'education.skcet.achievement3': '组织了多次技术研讨会和活动', + 'education.skcet.achievement4': '代表学院参加了多次国家级和国际级黑客马拉松并获奖。', + + // Skills + 'skills.programmingLanguages': '编程语言', + 'skills.frontendDevelopment': '前端开发', + 'skills.backendDevelopment': '后端开发', + 'skills.databaseAndStorage': '数据库与存储', + 'skills.cloudAndDevOps': '云计算与 DevOps', + 'skills.toolsAndServices': '工具与服务', + + // Projects + 'projects.netzero.title': '净零碳排放', + 'projects.netzero.description1': 'WiFi-RTT:开发了室内占用跟踪以优化能源。', + 'projects.netzero.description2': '物联网解决方案:实施了智能监控以提高能源效率和减少食物浪费。', + 'projects.netzero.description3': '实时跟踪:设计了监控碳排放和优化资源的系统。', + 'projects.netzero.description4': '数据驱动洞察:分析用户模式以进行自适应能源和食物管理。', + 'projects.netzero.description5': '奖励整合:构建了基于二维码的绿色积分系统以激励环保行为。', + + 'projects.mentalaarog.title': 'Mental Aarog', + 'projects.mentalaarog.description1': '一个利用人工智能和区块链进行早期检测和个性化抑郁症解决方案的整体心理健康应用程序。', + 'projects.mentalaarog.description2': '功能包括社交媒体分析(基于机器学习的情感跟踪)、PHQ-9 评估、智能手表集成用于睡眠和活动数据、引导冥想以及食物、旅行、音乐和电影的智能建议。', + 'projects.mentalaarog.description3': '使用以太坊上的 MAG 加密代币开发了奖励系统,通过应用内激励实现用户参与。', + 'projects.mentalaarog.description4': '通过 web3.storage、IPFS 和 FileCoin 实现安全存储。', + 'projects.mentalaarog.description5': '使用 React、Supabase、Node.js、Flask 和 Solidity 构建,展示了健康技术和区块链的无缝集成。', + + // Awards + 'awards.ieee.name': 'IEEE YESIST12 黑客马拉松', + 'awards.ieee.issuer': 'IEEE', + 'awards.ieee.date': '2022年9月', + 'awards.ieee.type': '国际', + 'awards.ieee.position': '第二名', + + 'awards.prodigi.name': 'Prodigi Cognizant 黑客马拉松', + 'awards.prodigi.issuer': 'Cognizant', + 'awards.prodigi.date': '2023年2月', + 'awards.prodigi.type': '国家级', + 'awards.prodigi.position': '季军', + + 'awards.cisco.name': 'Cisco Thingqbator 黑客马拉松', + 'awards.cisco.issuer': 'Cisco', + 'awards.cisco.date': '2023年1月', + 'awards.cisco.type': '国家级', + 'awards.cisco.position': '亚军', + + 'awards.innovators.name': '创新者日', + 'awards.innovators.issuer': 'Sri Manakula Vinayagar 工程学院,本地治里', + 'awards.innovators.date': '2022年9月', + 'awards.innovators.type': '国家级', + 'awards.innovators.position': '一等奖', + + 'awards.kghackfest.name': 'KG Hackfest\'22', + 'awards.kghackfest.issuer': 'KGiSL 理工学院,哥印拜陀', + 'awards.kghackfest.date': '2022年9月', + 'awards.kghackfest.type': '国家级', + 'awards.kghackfest.position': '二等奖', + + 'awards.innohacks.name': 'Innohacks\'22', + 'awards.innohacks.issuer': 'Innogeeks, KIET 集团机构,新德里', + 'awards.innohacks.date': '2022年5月', + 'awards.innohacks.type': '国家级', + 'awards.innohacks.position': '季军', + + 'awards.hackskcet.name': 'Hack @ SKCET', + 'awards.hackskcet.issuer': 'Hackclub SKCET, SKCET,哥印拜陀', + 'awards.hackskcet.date': '2022年2月', + 'awards.hackskcet.type': '国家级', + 'awards.hackskcet.position': '最具影响力黑客奖', }, } as const; \ No newline at end of file diff --git a/src/lib/data.ts b/src/lib/data.ts index 0cff5a0..2e7be59 100644 --- a/src/lib/data.ts +++ b/src/lib/data.ts @@ -1,60 +1,60 @@ export const personalInfo = { - name: "Rishikesh S", - location: "Coimbatore, India", - email: "rkesh2003@gmail.com", + name: "personal.name", + location: "personal.location", + email: "rkesh2003@gmail.com", // Email might not be a translated key, but a value github: "https://github.com/rishikesh2003", linkedin: "https://www.linkedin.com/in/rishikeshs/", }; export const workExperience = [ { - company: "Chatbyte GmbH", - location: "Remote", - position: "Software Engineer", - period: "Mar 2024 - Present", + company: "work.chatbyte.company", + location: "work.chatbyte.location", + position: "work.chatbyte.position", + period: "work.chatbyte.period", achievements: [ - "Designed and implemented business logic for AWS Lambdas using the Serverless Framework, forming the backbone of the application's functionality and ensuring seamless backend operations.", - "Built a comprehensive admin panel for managing content, user data, and analytics.", - "Contributed to the development and integration of a scalable CMS for managing blog content and other platform data.", - "Reduced database costs by introducing materialized views, optimizing query performance and resource usage.", - "Drove the integration of a custom affiliate marketing system, enabling seamless tracking and reporting of referrals and user activities.", - "Integrated Text-to-Speech (TTS) services for enhanced user experiences, optimizing both frontend and backend systems.", - "Collaborated with cross-functional teams to deliver high-quality features, actively reviewing pull requests to ensure code quality, adherence to standards, and efficient implementation.", + "work.chatbyte.achievements.0", + "work.chatbyte.achievements.1", + "work.chatbyte.achievements.2", + "work.chatbyte.achievements.3", + "work.chatbyte.achievements.4", + "work.chatbyte.achievements.5", + "work.chatbyte.achievements.6", ], }, { - company: "DevCrew", - location: "Coimbatore, India", - position: "Software Engineer", - period: "Mar 2023 - Mar 2024", + company: "work.devcrew.company", + location: "work.devcrew.location", + position: "work.devcrew.position", + period: "work.devcrew.period", achievements: [ - "Developed responsive frontend components using React.js, enhancing user experience and app performance.", - "Optimized JavaScript solutions to improve load times and data-fetching efficiency.", + "work.devcrew.achievements.0", + "work.devcrew.achievements.1", ], }, { - company: "Phoenitags", - location: "Coimbatore, India", - position: "Software Engineering Intern", - period: "Jan 2023 - Mar 2023", + company: "work.phoenitags.company", + location: "work.phoenitags.location", + position: "work.phoenitags.position", + period: "work.phoenitags.period", achievements: [ - "Built interactive UIs with React.js, focusing on reusable components and performance optimization.", - "Implemented JavaScript-based features like user authentication and real-time updates.", + "work.phoenitags.achievements.0", + "work.phoenitags.achievements.1", ], }, ]; export const education = [ { - institution: "Sri Krishna College of Engineering and Technology", - location: "Coimbatore, India", - degree: "B Tech Information Technology", - period: "Jun 2021 - Jun 2025", + institution: "education.skcet.institution", + location: "education.skcet.location", + degree: "education.skcet.degree", + period: "education.skcet.period", achievements: [ - "President of the Department of Information Technology", - "G20 student delegate", - "Organized multiple technical workshops and events", - "Represented my college in multiple national and international hackathons and won.", + "education.skcet.achievements.0", + "education.skcet.achievements.1", + "education.skcet.achievements.2", + "education.skcet.achievements.3", ], }, ]; @@ -92,77 +92,77 @@ export const skills = { export const projects = [ { - title: "Net Zero Carbon Emissions", + title: "projects.netZeroCarbonEmissions.title", github: "https://github.com/rishikesh2003/Prodigi", description: [ - "WiFi-RTT: Developed indoor occupancy tracking for energy optimization.", - "IoT Solutions: Implemented smart monitoring for energy efficiency and food waste reduction.", - "Real-Time Tracking: Designed systems to monitor carbon emissions and optimize resources.", - "Data-Driven Insights: Analyzed user patterns for adaptive energy and food management.", - "Reward Integration: Built QR-based green points system to incentivize eco-friendly actions.", + "projects.netZeroCarbonEmissions.description.0", + "projects.netZeroCarbonEmissions.description.1", + "projects.netZeroCarbonEmissions.description.2", + "projects.netZeroCarbonEmissions.description.3", + "projects.netZeroCarbonEmissions.description.4", ], }, { - title: "Mental Aarog", + title: "projects.mentalAarog.title", github: "https://github.com/rishikesh2003/mental-aarog", description: [ - "A holistic mental health app leveraging AI and blockchain for early detection and personalized solutions for depression.", - "Features include social media analysis (ML-based sentiment tracking), PHQ-9 assessments, smartwatch integration for sleep and activity data, guided meditation, and smart suggestions for food, travel, music, and movies.", - "Developed a rewards system using MAG crypto token on Ethereum, enabling user engagement through in-app incentives.", - "Secure storage implemented via web3.storage, IPFS, and FileCoin.", - "Built with React, Supabase, Node.js, Flask, and Solidity, showcasing seamless integration of health tech and blockchain.", + "projects.mentalAarog.description.0", + "projects.mentalAarog.description.1", + "projects.mentalAarog.description.2", + "projects.mentalAarog.description.3", + "projects.mentalAarog.description.4", ], }, ]; export const awards = [ { - name: "IEEE YESIST12 Hackathon", - issuer: "IEEE", + name: "awards.ieeeYesist12.name", + issuer: "awards.ieeeYesist12.issuer", date: "Sep 2022", - type: "International", - position: "Second Place", + type: "awards.type.international", + position: "awards.ieeeYesist12.position", }, { - name: "Prodigi Cognizant Hackathon", - issuer: "Cognizant", + name: "awards.prodigiCognizant.name", + issuer: "awards.prodigiCognizant.issuer", date: "Feb 2023", - type: "National", - position: "Second Runner-up", + type: "awards.type.national", + position: "awards.prodigiCognizant.position", }, { - name: "Cisco Thingqbator Hackathon", - issuer: "Cisco", + name: "awards.ciscoThingqbator.name", + issuer: "awards.ciscoThingqbator.issuer", date: "Jan 2023", - type: "National", - position: "First Runner-up", + type: "awards.type.national", + position: "awards.ciscoThingqbator.position", }, { - name: "Innovators Day", - issuer: "Sri Manakula Vinayagar Engineering College, Pondicherry", + name: "awards.innovatorsDay.name", + issuer: "awards.innovatorsDay.issuer", date: "Sep 2022", - type: "National", - position: "First Prize", + type: "awards.type.national", + position: "awards.innovatorsDay.position", }, { - name: "KG Hackfest'22", - issuer: "KGiSL Institute of Technology, Coimbatore", + name: "awards.kgHackfest22.name", + issuer: "awards.kgHackfest22.issuer", date: "Sep 2022", - type: "National", - position: "Second Prize", + type: "awards.type.national", + position: "awards.kgHackfest22.position", }, { - name: "Innohacks'22", - issuer: "Innogeeks, KIET Group of Institutions, New Delhi", + name: "awards.innohacks22.name", + issuer: "awards.innohacks22.issuer", date: "May 2022", - type: "National", - position: "Second Runner-up", + type: "awards.type.national", + position: "awards.innohacks22.position", }, { - name: "Hack @ SKCET", - issuer: "Hackclub SKCET, SKCET, Coimbatore", + name: "awards.hackAtSkcet.name", + issuer: "awards.hackAtSkcet.issuer", date: "Feb 2022", - type: "National", - position: "Most Impactful Hack", + type: "awards.type.national", + position: "awards.hackAtSkcet.position", }, ]; diff --git a/src/pages/index.astro b/src/pages/index.astro index 5afc2fc..ce94ee5 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -16,12 +16,12 @@ const lang = getLangFromUrl(Astro.url);
- - - - - - + + + + + +