diff --git a/src/i18n/translations.ts b/src/i18n/translations.ts index 8b6abfd..0d3d36d 100644 --- a/src/i18n/translations.ts +++ b/src/i18n/translations.ts @@ -1,40 +1,43 @@ export const languages = { - en: 'English', - zh: '简体中文', + en: "English", + zh: "简体中文", } as const; -export const defaultLang = 'en'; +export const defaultLang = "en"; export const translations = { en: { nav: { - home: 'Home', - about: 'About', - projects: 'Projects', - blog: 'Blog', - hire: 'Hire', - uses: 'Uses', - contact: 'Contact', - now: 'Now', + home: "Home", + about: "About", + projects: "Projects", + blog: "Blog", + hire: "Hire", + uses: "Uses", + contact: "Contact", + now: "Now", }, site: { - title: 'Joey Z. - AI Full-stack Engineer', - description: 'AI full-stack engineer focused on complex systems, product delivery, and long-term maintainability', + title: "Joey Z. - AI Full-stack Engineer", + description: + "AI full-stack engineer focused on complex systems, product delivery, and long-term maintainability", }, hero: { greeting: "Hello, I'm", - viewProjects: 'View Projects', - contactMe: 'Get in Touch', - lookingForJob: 'Looking for a Frontend/TS Full-stack Engineer (Remote)? Contact me!', - digitalNomad: 'Exploring the freelance journey, striving to become a digital nomad', - contactInfo: 'Contact Me', - githubLink: 'GitHub Profile', - linkedinLink: 'LinkedIn Profile', - tagline: 'Full-stack + AI Product Builder', + viewProjects: "View Projects", + contactMe: "Get in Touch", + lookingForJob: + "Looking for a Frontend/TS Full-stack Engineer (Remote)? Contact me!", + digitalNomad: + "Exploring the freelance journey, striving to become a digital nomad", + contactInfo: "Contact Me", + githubLink: "GitHub Profile", + linkedinLink: "LinkedIn Profile", + tagline: "Full-stack + AI Product Builder", ctaPrimary: "Let's Build Together", - ctaSecondary: 'View My Work', + ctaSecondary: "View My Work", }, footer: { - rights: 'All rights reserved', + rights: "All rights reserved", }, project: { featured: "Featured", @@ -42,184 +45,242 @@ export const translations = { all: "All", }, tag: { - business: 'Business Project', - opensource: 'Open Source', - personal: 'Personal Product', - portfolio: 'Portfolio', - ecommerce: 'E-Commerce', + business: "Business Project", + opensource: "Open Source", + personal: "Personal Product", + portfolio: "Portfolio", + ecommerce: "E-Commerce", }, type: { - product: 'Product', - client: 'Client Project', - experiment: 'Experiment', + product: "Product", + client: "Client Project", + experiment: "Experiment", }, status: { - building: 'Building', - completed: 'Completed', - archived: 'Archived', + building: "Building", + completed: "Completed", + archived: "Archived", }, - role: 'Role', - impact: 'Impact', - visit: 'Visit', - demo: 'Live Demo', + role: "Role", + impact: "Impact", + visit: "Visit", + demo: "Live Demo", }, projects: { - title: 'My Projects', - description: 'A collection of my recent work, showcasing innovative solutions and clean code. Explore the details of each project below.', - slogan: 'Crafting elegant solutions to complex problems with clean code and innovative thinking.', + title: "My Projects", + description: + "A collection of my recent work, showcasing innovative solutions and clean code. Explore the details of each project below.", + slogan: + "Crafting elegant solutions to complex problems with clean code and innovative thinking.", }, blog: { - slogan: 'This is where innovative thinking meets complex problems.', - backToList: 'Back to Writing', + slogan: "This is where innovative thinking meets complex problems.", + backToList: "Back to Writing", }, services: { - title: 'What I Do', - viewAll: 'Learn More', + title: "What I Do", + viewAll: "Learn More", }, about: { - title: 'About Me', - description: 'Learn more about my background, skills, and experiences', + title: "About Me", + description: "Learn more about my background, skills, and experiences", intro: { - title: 'Introduction', - content: "I'm a TypeScript Full Stack Engineer who loves development, technology, and exploring new possibilities. I enjoy bringing digital projects to life. 🚀", - belief: "I believe this is where ideas become reality. I'm exploring the freelance journey, striving to become a digital nomad.", + title: "Introduction", + content: + "I'm a TypeScript Full Stack Engineer who loves development, technology, and exploring new possibilities. I enjoy bringing digital projects to life. 🚀", + belief: + "I believe this is where ideas become reality. I'm exploring the freelance journey, striving to become a digital nomad.", }, me: { - title: 'About me 🧠', - content: "I started my programming journey in 2016 when I accidentally encountered programming. This opportunity became the catalyst for my coding adventure, and I fell in love with programming during my subsequent self-learning journey. \n\nI enjoy creating websites and applications with code and sharing them with users. The sense of achievement I get from this process makes me increasingly fascinated. My dream is to become a lifelong coder.", + title: "About me 🧠", + content: + "I started my programming journey in 2016 when I accidentally encountered programming. This opportunity became the catalyst for my coding adventure, and I fell in love with programming during my subsequent self-learning journey. \n\nI enjoy creating websites and applications with code and sharing them with users. The sense of achievement I get from this process makes me increasingly fascinated. My dream is to become a lifelong coder.", }, skills: { - title: 'My Skills 💪', - description: "Below are the technology stacks I'm currently familiar with or proficient in, as well as those I'm learning or planning to learn.", + title: "My Skills 💪", + description: + "Below are the technology stacks I'm currently familiar with or proficient in, as well as those I'm learning or planning to learn.", mastered: { title: "Skills I've Mastered", - items: ['HTML, CSS, JavaScript', 'Frontend Frameworks: Vue.js, React.js, Node.js, uniApp, WeChat Mini Program', 'TypeScript', 'Databases: MySQL, MongoDB', 'DevOps: Linux, Git', 'Others: Markdown, Docker, Kubernetes, Nginx, Apache, etc.'], + items: [ + "HTML, CSS, JavaScript", + "Frontend Frameworks: Vue.js, React.js, Node.js, uniApp, WeChat Mini Program", + "TypeScript", + "Databases: MySQL, MongoDB", + "DevOps: Linux, Git", + "Others: Markdown, Docker, Kubernetes, Nginx, Apache, etc.", + ], }, learning: { title: "Skills I'm Learning/Planning to Learn", - items: ['Programming Languages: Python, Java, Go', 'Mobile Development: Flutter, Dart', 'iOS Development: Swift, SwiftUI'], + items: [ + "Programming Languages: Python, Java, Go", + "Mobile Development: Flutter, Dart", + "iOS Development: Swift, SwiftUI", + ], }, }, interests: { - title: 'My Interests 🌈', + title: "My Interests 🌈", items: [ - { title: 'Reading', content: 'I enjoy reading various books, especially technical ones.' }, - { title: 'Travel', content: 'I like visiting different places, particularly on road trips.' }, - { title: 'Food', content: 'I enjoy various cuisines, especially hot pot.' }, - { title: 'Mobile Games', content: 'I like playing League of Legends, Honor of Kings, PUBG Mobile, and other mobile games.' }, + { + title: "Reading", + content: + "I enjoy reading various books, especially technical ones.", + }, + { + title: "Travel", + content: + "I like visiting different places, particularly on road trips.", + }, + { + title: "Food", + content: "I enjoy various cuisines, especially hot pot.", + }, + { + title: "Mobile Games", + content: + "I like playing League of Legends, Honor of Kings, PUBG Mobile, and other mobile games.", + }, ], }, contact: { - title: 'Contact Me 📫', - warning: 'Since everyone\'s time is valuable, please add a note when contacting me, such as: collaboration, consultation, project requirements, etc. I may not reply to or might ignore messages without notes. Thank you for your cooperation!', + title: "Contact Me 📫", + warning: + "Since everyone's time is valuable, please add a note when contacting me, such as: collaboration, consultation, project requirements, etc. I may not reply to or might ignore messages without notes. Thank you for your cooperation!", methods: [ - { label: 'Email', value: '2770723534@qq.com', icon: 'mail', link: 'mailto:2770723534@qq.com' }, - { label: 'Email (Secondary)', value: 'zhaoguiyang18@outlook.com', icon: 'mail', link: 'mailto:zhaoguiyang18@outlook.com' }, - { label: 'WeChat', value: 'Joey_Zhao_dev', icon: 'wechat' }, - { label: 'Telegram', value: 'joey_zgy', icon: 'send', link: 'https://t.me/joey_zgy' }, + { + label: "Email", + value: "zhaoguiyang18@outlook.com", + icon: "mail", + link: "mailto:zhaoguiyang18@outlook.com", + }, + { label: "WeChat", value: "Joey_Zhao_dev", icon: "wechat" }, + { + label: "Telegram", + value: "joey_zgy", + icon: "send", + link: "https://t.me/joey_zgy", + }, ], }, socials: { - title: 'Community & Media 🌐', + title: "Community & Media 🌐", items: [ - { label: 'GitHub', value: 'github.com/zhaoguiyang', icon: 'github', link: 'https://github.com/zhaoguiyang' }, - { label: 'Blog', value: 'zhaoguiyang.site', icon: 'globe', link: 'https://zhaoguiyang.site' }, + { + label: "GitHub", + value: "github.com/zhaoguiyang", + icon: "github", + link: "https://github.com/zhaoguiyang", + }, + { + label: "Blog", + value: "zhaoguiyang.site", + icon: "globe", + link: "https://zhaoguiyang.site", + }, ], }, }, home: { hero: { - eyebrow: 'Personal Brand', - summary: 'I design and build reliable digital products with clear user value, strong engineering foundations, and practical AI integration.', - ctaPrimary: 'About Me', - ctaSecondary: 'Work With Me', - terminalStatus: 'Open to remote roles and project collaboration', + eyebrow: "Personal Brand", + summary: + "I design and build reliable digital products with clear user value, strong engineering foundations, and practical AI integration.", + ctaPrimary: "About Me", + ctaSecondary: "Work With Me", + terminalStatus: "Open to remote roles and project collaboration", }, trust: { - item1: 'Remote Ready', - item2: 'Async Friendly Collaboration', - item3: 'Product + Engineering Mindset', - item4: 'Stable Delivery Rhythm', + item1: "Remote Ready", + item2: "Async Friendly Collaboration", + item3: "Product + Engineering Mindset", + item4: "Stable Delivery Rhythm", }, metrics: { - item1: 'Focused on long-term product quality', - item2: 'Strong in TypeScript, React, and Node.js', - item3: 'Comfortable with AI-enabled product workflows', - item4: 'Available for freelance and full-time opportunities', + item1: "Focused on long-term product quality", + item2: "Strong in TypeScript, React, and Node.js", + item3: "Comfortable with AI-enabled product workflows", + item4: "Available for freelance and full-time opportunities", }, services: { - eyebrow: 'What I Deliver', - title: 'Services', - description: 'Practical technical support from strategy to execution.', + eyebrow: "What I Deliver", + title: "Services", + description: "Practical technical support from strategy to execution.", }, career: { - eyebrow: 'Career Snapshot', - title: 'Career Highlights', - description: 'Mock milestones for layout. Real details can be swapped in later.', - cta: 'View Full Resume', + eyebrow: "Career Snapshot", + title: "Career Highlights", + description: + "Mock milestones for layout. Real details can be swapped in later.", + cta: "View Full Resume", card1: { - period: '2024 — Now', - title: 'AI Product Builder · Independent', - outcome: 'Built and iterated AI-first product concepts with fast prototyping and clear product direction.', + period: "2024 — Now", + title: "AI Product Builder · Independent", + outcome: + "Built and iterated AI-first product concepts with fast prototyping and clear product direction.", }, card2: { - period: '2021 — 2024', - title: 'Senior Frontend Engineer · Remote Team', - outcome: 'Led core front-end modules and improved team delivery efficiency through reusable architecture.', + period: "2021 — 2024", + title: "Senior Frontend Engineer · Remote Team", + outcome: + "Led core front-end modules and improved team delivery efficiency through reusable architecture.", }, card3: { - period: '2018 — 2021', - title: 'Full-stack Engineer · Growth Stage Startup', - outcome: 'Delivered multiple customer-facing features across web stack and supported stable product growth.', + period: "2018 — 2021", + title: "Full-stack Engineer · Growth Stage Startup", + outcome: + "Delivered multiple customer-facing features across web stack and supported stable product growth.", }, }, featured: { - eyebrow: 'Featured Work', - title: 'Representative Project', - challenge: 'Challenge', - approach: 'Approach', - outcome: 'Outcome', - ctaPrimary: 'View Project', - ctaSecondary: 'See More Opportunities', + eyebrow: "Featured Work", + title: "Representative Project", + challenge: "Challenge", + approach: "Approach", + outcome: "Outcome", + ctaPrimary: "View Project", + ctaSecondary: "See More Opportunities", }, final: { - title: 'Open to Meaningful Work', - description: 'If you are building quality products and need reliable execution, I would love to connect.', - ctaPrimary: 'Know Me Better', - ctaSecondary: 'Start a Conversation', + title: "Open to Meaningful Work", + description: + "If you are building quality products and need reliable execution, I would love to connect.", + ctaPrimary: "Know Me Better", + ctaSecondary: "Start a Conversation", }, }, }, zh: { nav: { - home: '首页', - about: '关于', - projects: '项目', - blog: '博客', - hire: '合作', - uses: '工具', - contact: '联系', - now: '现在', + home: "首页", + about: "关于", + projects: "项目", + blog: "博客", + hire: "合作", + uses: "工具", + contact: "联系", + now: "现在", }, site: { - title: 'Joey Z. - AI 全栈工程师', - description: '专注复杂系统、产品交付与长期可维护性的 AI 全栈工程师', + title: "Joey Z. - AI 全栈工程师", + description: "专注复杂系统、产品交付与长期可维护性的 AI 全栈工程师", }, hero: { - greeting: '你好,我是', - viewProjects: '查看项目', - contactMe: '联系我', - lookingForJob: '正在寻找前端/TS 全栈工程师(远程)?联系我!', - digitalNomad: '探索自由职业道路,努力成为数字游民', - contactInfo: '联系我', - githubLink: 'GitHub 主页', - linkedinLink: 'LinkedIn 主页', - tagline: '全栈 + AI 产品构建者', - ctaPrimary: '一起构建', - ctaSecondary: '查看作品', + greeting: "你好,我是", + viewProjects: "查看项目", + contactMe: "联系我", + lookingForJob: "正在寻找前端/TS 全栈工程师(远程)?联系我!", + digitalNomad: "探索自由职业道路,努力成为数字游民", + contactInfo: "联系我", + githubLink: "GitHub 主页", + linkedinLink: "LinkedIn 主页", + tagline: "全栈 + AI 产品构建者", + ctaPrimary: "一起构建", + ctaSecondary: "查看作品", }, footer: { - rights: '版权所有', + rights: "版权所有", }, project: { featured: "精选", @@ -227,151 +288,191 @@ export const translations = { all: "全部", }, tag: { - business: '商业项目', - opensource: '开源项目', - personal: '个人项目', - portfolio: '作品集', - ecommerce: '电子商务', + business: "商业项目", + opensource: "开源项目", + personal: "个人项目", + portfolio: "作品集", + ecommerce: "电子商务", }, type: { - product: '产品', - client: '客户项目', - experiment: '实验', + product: "产品", + client: "客户项目", + experiment: "实验", }, status: { - building: '开发中', - completed: '已完成', - archived: '已归档', + building: "开发中", + completed: "已完成", + archived: "已归档", }, - role: '角色', - impact: '成果', - visit: '访问', - demo: '在线演示', + role: "角色", + impact: "成果", + visit: "访问", + demo: "在线演示", }, projects: { - title: '我的项目', - description: '这里展示了我最近的作品集,展现了创新解决方案和整洁的代码。请浏览下方了解每个项目的详细信息。', - slogan: '用优雅的代码和创新的思维,为复杂问题打造精致的解决方案。', + title: "我的项目", + description: + "这里展示了我最近的作品集,展现了创新解决方案和整洁的代码。请浏览下方了解每个项目的详细信息。", + slogan: "用优雅的代码和创新的思维,为复杂问题打造精致的解决方案。", }, blog: { - slogan: '这里是创新思维与复杂问题相遇的地方。', - backToList: '返回写作列表', + slogan: "这里是创新思维与复杂问题相遇的地方。", + backToList: "返回写作列表", }, services: { - title: '我能做什么', - viewAll: '了解更多', + title: "我能做什么", + viewAll: "了解更多", }, about: { - title: '关于我', - description: '了解更多关于我的背景、技能和经验', + title: "关于我", + description: "了解更多关于我的背景、技能和经验", intro: { - title: '简介', - content: '我是Joey Z., 一名Ts全栈工程师,也是本站的站长。\n\n热爱生活、阅读以及编程,寻找远程工作的机会,探索自由职业的可能性。\n喜欢自驾,去追寻那些美丽的风景,尝试新的事物。', - belief: '我相信这里是想法变为现实的地方。我正在探索自由职业者之路,努力成为数字游民中的一员。', + title: "简介", + content: + "我是Joey Z., 一名Ts全栈工程师,也是本站的站长。\n\n热爱生活、阅读以及编程,寻找远程工作的机会,探索自由职业的可能性。\n喜欢自驾,去追寻那些美丽的风景,尝试新的事物。", + belief: + "我相信这里是想法变为现实的地方。我正在探索自由职业者之路,努力成为数字游民中的一员。", }, me: { - title: '自我介绍 🧠', - content: '在2016年一次偶然的机会中接触到了编程,以此为契机,开始了我的编程之旅,并在后续的自学之旅中爱上了编程,我喜欢用代码编写出一个个的网页、应用,分享给用户使用,这其中获得的成就感让我愈发着迷。梦想是成为一名终身编码者。', + title: "自我介绍 🧠", + content: + "在2016年一次偶然的机会中接触到了编程,以此为契机,开始了我的编程之旅,并在后续的自学之旅中爱上了编程,我喜欢用代码编写出一个个的网页、应用,分享给用户使用,这其中获得的成就感让我愈发着迷。梦想是成为一名终身编码者。", }, skills: { - title: '我的技能 💪', - description: '以下展示了我目前熟悉或精通的技术栈,以及正在/准备学习的技术栈。', + title: "我的技能 💪", + description: + "以下展示了我目前熟悉或精通的技术栈,以及正在/准备学习的技术栈。", mastered: { - title: '已掌握的技能', - items: ['HTML、CSS、JavaScript', 'Vue.js、React.js、Node.js、uniApp、微信小程序等前端框架', 'TypeScript', 'MySQL、MongoDB', 'Linux、Git', '其他:Markdown、Docker、Kubernetes、Nginx、Apache等技术'], + title: "已掌握的技能", + items: [ + "HTML、CSS、JavaScript", + "Vue.js、React.js、Node.js、uniApp、微信小程序等前端框架", + "TypeScript", + "MySQL、MongoDB", + "Linux、Git", + "其他:Markdown、Docker、Kubernetes、Nginx、Apache等技术", + ], }, learning: { - title: '正在/准备学习的技能', - items: ['Python、Java、Go', 'Flutter、Dart', 'Swift、SwiftUI'], + title: "正在/准备学习的技能", + items: ["Python、Java、Go", "Flutter、Dart", "Swift、SwiftUI"], }, }, interests: { - title: '兴趣爱好 🌈', + title: "兴趣爱好 🌈", items: [ - { title: '阅读', content: '喜欢阅读各种书籍,尤其是技术类书籍。' }, - { title: '旅游', content: '喜欢去不同的地方看看,尤其是自驾游。' }, - { title: '美食', content: '喜欢吃各种美食,尤其是火锅。' }, - { title: '手游', content: '喜欢玩英雄联盟、王者荣耀、绝地求生等手游。' }, + { title: "阅读", content: "喜欢阅读各种书籍,尤其是技术类书籍。" }, + { title: "旅游", content: "喜欢去不同的地方看看,尤其是自驾游。" }, + { title: "美食", content: "喜欢吃各种美食,尤其是火锅。" }, + { + title: "手游", + content: "喜欢玩英雄联盟、王者荣耀、绝地求生等手游。", + }, ], }, contact: { - title: '联系我 📫', - warning: '由于大家的时间都很宝贵,所以请在联系我时添加备注,如:合作、咨询、项目需求等,不予备注的我可能不会回复或直接忽略,谢谢合作!', + title: "联系我 📫", + warning: + "由于大家的时间都很宝贵,所以请在联系我时添加备注,如:合作、咨询、项目需求等,不予备注的我可能不会回复或直接忽略,谢谢合作!", methods: [ - { label: '邮箱', value: '2770723534@qq.com', icon: 'mail', link: 'mailto:2770723534@qq.com' }, - { label: '邮箱(备用)', value: 'zhaoguiyang18@outlook.com', icon: 'mail', link: 'mailto:zhaoguiyang18@outlook.com' }, - { label: '微信', value: 'Joey_Zhao_dev', icon: 'wechat' }, - { label: 'Telegram', value: 'joey_zgy', icon: 'send', link: 'https://t.me/joey_zgy' }, + { + label: "邮箱", + value: "zhaoguiyang18@outlook.com", + icon: "mail", + link: "mailto:zhaoguiyang18@outlook.com", + }, + { label: "微信", value: "Joey_Zhao_dev", icon: "wechat" }, + { + label: "Telegram", + value: "joey_zgy", + icon: "send", + link: "https://t.me/joey_zgy", + }, ], }, socials: { - title: '社区与媒体 🌐', + title: "社区与媒体 🌐", items: [ - { label: 'GitHub', value: 'github.com/zhaoguiyang', icon: 'github', link: 'https://github.com/zhaoguiyang' }, - { label: 'Blog', value: 'zhaoguiyang.site', icon: 'globe', link: 'https://zhaoguiyang.site' }, + { + label: "GitHub", + value: "github.com/zhaoguiyang", + icon: "github", + link: "https://github.com/zhaoguiyang", + }, + { + label: "Blog", + value: "zhaoguiyang.site", + icon: "globe", + link: "https://zhaoguiyang.site", + }, ], }, }, home: { hero: { - eyebrow: '个人品牌', - summary: '我专注于打造可靠且有业务价值的数字产品,兼顾工程质量、产品思维与 AI 实践落地。', - ctaPrimary: '了解我', - ctaSecondary: '合作咨询', - terminalStatus: '可远程合作,开放全职与项目机会', + eyebrow: "个人品牌", + summary: + "我专注于打造可靠且有业务价值的数字产品,兼顾工程质量、产品思维与 AI 实践落地。", + ctaPrimary: "了解我", + ctaSecondary: "合作咨询", + terminalStatus: "可远程合作,开放全职与项目机会", }, trust: { - item1: '支持远程协作', - item2: '擅长异步协作流程', - item3: '产品与工程双视角', - item4: '稳定可预期的交付节奏', + item1: "支持远程协作", + item2: "擅长异步协作流程", + item3: "产品与工程双视角", + item4: "稳定可预期的交付节奏", }, metrics: { - item1: '重视长期可维护的产品质量', - item2: '核心技术栈 TypeScript / React / Node.js', - item3: '具备 AI 产品化与工程化经验', - item4: '可承接项目合作与全职机会', + item1: "重视长期可维护的产品质量", + item2: "核心技术栈 TypeScript / React / Node.js", + item3: "具备 AI 产品化与工程化经验", + item4: "可承接项目合作与全职机会", }, services: { - eyebrow: '可交付能力', - title: '服务方向', - description: '从技术方案到落地交付,提供务实可靠的支持。', + eyebrow: "可交付能力", + title: "服务方向", + description: "从技术方案到落地交付,提供务实可靠的支持。", }, career: { - eyebrow: '履历速览', - title: '关键经历', - description: '当前为布局示例数据,后续可替换为你的真实履历。', - cta: '查看完整履历', + eyebrow: "履历速览", + title: "关键经历", + description: "当前为布局示例数据,后续可替换为你的真实履历。", + cta: "查看完整履历", card1: { - period: '2024 — 至今', - title: 'AI 产品构建者 · 独立开发', - outcome: '围绕 AI 场景进行产品探索与快速原型迭代,持续验证方向与可行性。', + period: "2024 — 至今", + title: "AI 产品构建者 · 独立开发", + outcome: + "围绕 AI 场景进行产品探索与快速原型迭代,持续验证方向与可行性。", }, card2: { - period: '2021 — 2024', - title: '高级前端工程师 · 远程团队', - outcome: '负责核心前端模块建设,通过可复用架构提升团队交付效率与稳定性。', + period: "2021 — 2024", + title: "高级前端工程师 · 远程团队", + outcome: + "负责核心前端模块建设,通过可复用架构提升团队交付效率与稳定性。", }, card3: { - period: '2018 — 2021', - title: '全栈工程师 · 成长期团队', - outcome: '完成多项面向用户的功能交付,覆盖前后端协作并支撑产品稳定增长。', + period: "2018 — 2021", + title: "全栈工程师 · 成长期团队", + outcome: + "完成多项面向用户的功能交付,覆盖前后端协作并支撑产品稳定增长。", }, }, featured: { - eyebrow: '代表作品', - title: '精选项目', - challenge: '挑战', - approach: '方案', - outcome: '结果', - ctaPrimary: '查看项目', - ctaSecondary: '了解合作方式', + eyebrow: "代表作品", + title: "精选项目", + challenge: "挑战", + approach: "方案", + outcome: "结果", + ctaPrimary: "查看项目", + ctaSecondary: "了解合作方式", }, final: { - title: '期待长期且有价值的合作', - description: '如果你也在构建高质量产品,并需要稳定执行与协作,我很乐意进一步沟通。', - ctaPrimary: '进一步了解我', - ctaSecondary: '发起沟通', + title: "期待长期且有价值的合作", + description: + "如果你也在构建高质量产品,并需要稳定执行与协作,我很乐意进一步沟通。", + ctaPrimary: "进一步了解我", + ctaSecondary: "发起沟通", }, }, }, @@ -383,31 +484,31 @@ export const translations = { */ export function generateFlatTranslations() { const flattenedTranslations: Record> = {}; - + // Initialize for each language - Object.keys(translations).forEach(lang => { + Object.keys(translations).forEach((lang) => { flattenedTranslations[lang] = {}; }); - + // Recursive function to flatten nested objects - function flatten(obj: any, lang: string, prefix = '') { + function flatten(obj: any, lang: string, prefix = "") { for (const key in obj) { const value = obj[key]; const newKey = prefix ? `${prefix}.${key}` : key; - - if (typeof value === 'object' && value !== null) { + + if (typeof value === "object" && value !== null) { flatten(value, lang, newKey); } else { flattenedTranslations[lang][newKey] = value; } } } - + // Process each language - Object.keys(translations).forEach(lang => { + Object.keys(translations).forEach((lang) => { flatten(translations[lang as keyof typeof translations], lang); }); - + return flattenedTranslations; } diff --git a/src/lib/data/contact.ts b/src/lib/data/contact.ts index 51ac014..14648c8 100644 --- a/src/lib/data/contact.ts +++ b/src/lib/data/contact.ts @@ -1,64 +1,54 @@ -import type { ContactIntent, ContactMethod } from '@/types'; +import type { ContactIntent, ContactMethod } from "@/types"; export const contactIntents: ContactIntent[] = [ { - id: 'role-opportunity', + id: "role-opportunity", title: { - en: 'Role Opportunity', - zh: '岗位机会沟通', + en: "Role Opportunity", + zh: "岗位机会沟通", }, description: { - en: 'Open to senior frontend/full-stack roles where architecture and execution quality matter.', - zh: '欢迎资深前端/全栈岗位沟通,偏好重视架构与交付质量的团队。', + en: "Open to senior frontend/full-stack roles where architecture and execution quality matter.", + zh: "欢迎资深前端/全栈岗位沟通,偏好重视架构与交付质量的团队。", }, }, { - id: 'case-collaboration', + id: "case-collaboration", title: { - en: 'Case Collaboration', - zh: '专项协作讨论', + en: "Case Collaboration", + zh: "专项协作讨论", }, description: { - en: 'Best for a scoped module, architecture upgrade, or technical diagnosis with clear goals.', - zh: '适用于目标清晰的模块建设、架构升级或技术诊断类协作。', + en: "Best for a scoped module, architecture upgrade, or technical diagnosis with clear goals.", + zh: "适用于目标清晰的模块建设、架构升级或技术诊断类协作。", }, }, { - id: 'knowledge-exchange', + id: "knowledge-exchange", title: { - en: 'Knowledge Exchange', - zh: '内容与经验交流', + en: "Knowledge Exchange", + zh: "内容与经验交流", }, description: { - en: 'Happy to discuss engineering practice, AI workflow experiments, or case-study insights.', - zh: '欢迎交流工程实践、AI 协作实验与案例复盘经验。', + en: "Happy to discuss engineering practice, AI workflow experiments, or case-study insights.", + zh: "欢迎交流工程实践、AI 协作实验与案例复盘经验。", }, }, ]; export const contactMethods: ContactMethod[] = [ { - label: { en: 'Phone', zh: '电话' }, - value: '18190678380', - href: 'tel:18190678380', + label: { en: "Email (Secondary)", zh: "邮箱(备用)" }, + value: "zhaoguiyang18@outlook.com", + href: "mailto:zhaoguiyang18@outlook.com", }, { - label: { en: 'Email', zh: '邮箱' }, - value: '2770723534@qq.com', - href: 'mailto:2770723534@qq.com', + label: { en: "WeChat", zh: "微信" }, + value: "Joey_Zhao_dev", }, { - label: { en: 'Email (Secondary)', zh: '邮箱(备用)' }, - value: 'zhaoguiyang18@outlook.com', - href: 'mailto:zhaoguiyang18@outlook.com', - }, - { - label: { en: 'WeChat', zh: '微信' }, - value: 'Joey_Zhao_dev', - }, - { - label: { en: 'Telegram', zh: 'Telegram' }, - value: 'joey_zgy', - href: 'https://t.me/joey_zgy', + label: { en: "Telegram", zh: "Telegram" }, + value: "joey_zgy", + href: "https://t.me/joey_zgy", }, ]; diff --git a/src/lib/data/personal-info.ts b/src/lib/data/personal-info.ts index d963db5..3bf919a 100644 --- a/src/lib/data/personal-info.ts +++ b/src/lib/data/personal-info.ts @@ -1,47 +1,47 @@ -import type { PersonalInfo } from '@/types'; +import type { PersonalInfo } from "@/types"; export const personalInfo: PersonalInfo = { - name: 'Joey Z.', - location: 'Chengdu, China', - avatar: 'https://avatars.githubusercontent.com/u/24975063?v=4', - email: '2770723534@qq.com', - github: 'https://github.com/zguiyang', - linkedin: '', - website: 'https://zhaoguiyang.com', - twitter: '', + name: "Joey Z.", + location: "Chengdu, China", + avatar: "https://avatars.githubusercontent.com/u/24975063?v=4", + email: "zhaoguiyang18@outlook.com", + github: "https://github.com/zguiyang", + linkedin: "", + website: "https://zhaoguiyang.com", + twitter: "", position: { - en: 'AI Full-stack Engineer', - zh: 'AI 全栈工程师', + en: "AI Full-stack Engineer", + zh: "AI 全栈工程师", }, description: { - en: '8 years building enterprise systems, financial platforms, and blockchain infrastructure. Focused on architecture discipline, delivery quality, and long-term maintainability.', - zh: '8 年企业系统、金融平台与区块链基础设施研发经验,关注架构纪律、交付质量与长期可维护性。', + en: "8 years building enterprise systems, financial platforms, and blockchain infrastructure. Focused on architecture discipline, delivery quality, and long-term maintainability.", + zh: "8 年企业系统、金融平台与区块链基础设施研发经验,关注架构纪律、交付质量与长期可维护性。", }, about: { en: [ - 'I build reliable web systems with clear module boundaries and strong delivery ownership.', - 'My core experience comes from enterprise, fintech, and blockchain product domains.', - 'I use this site as an evolving knowledge base of projects, decisions, and practical learnings.', + "I build reliable web systems with clear module boundaries and strong delivery ownership.", + "My core experience comes from enterprise, fintech, and blockchain product domains.", + "I use this site as an evolving knowledge base of projects, decisions, and practical learnings.", ], zh: [ - '我专注构建稳定、可维护、可扩展的 Web 系统,并对交付结果负责。', - '核心经验来自企业级、金融科技与区块链产品场景。', - '我把这个网站当作持续更新的公开工作台,记录案例、方法与实践复盘。', + "我专注构建稳定、可维护、可扩展的 Web 系统,并对交付结果负责。", + "核心经验来自企业级、金融科技与区块链产品场景。", + "我把这个网站当作持续更新的公开工作台,记录案例、方法与实践复盘。", ], }, stats: { repositories: 152, - commits: '42K', + commits: "42K", contributions: 87, }, skills: { - frontend: ['TypeScript', 'React', 'Vue', 'Astro'], - backend: ['Node.js', 'NestJS', 'Fastify'], - database: ['PostgreSQL', 'MySQL', 'MongoDB'], - devops: ['Linux', 'Git', 'Docker', 'CI/CD', 'Jenkins', 'Nginx'], - mobile: ['React Native', 'Flutter'], + frontend: ["TypeScript", "React", "Vue", "Astro"], + backend: ["Node.js", "NestJS", "Fastify"], + database: ["PostgreSQL", "MySQL", "MongoDB"], + devops: ["Linux", "Git", "Docker", "CI/CD", "Jenkins", "Nginx"], + mobile: ["React Native", "Flutter"], }, terminal: { - username: 'joy@engineer', + username: "joy@engineer", }, };