Update categories

This commit is contained in:
2026-02-03 15:25:23 +04:00
parent bc4cd21771
commit 0e174e0e34
9 changed files with 137 additions and 45 deletions

View File

@@ -51,7 +51,7 @@ let currentTime = $state(0);
// 歌曲总时长
let duration = $state(0);
// 音量
let volume = $state(0.5);
let volume = $state(0.15);
// 是否静音
let isMuted = $state(false);
// 是否正在加载

View File

@@ -70,9 +70,8 @@ enum I18nKey {
projects = "projects",
projectsSubtitle = "projectsSubtitle",
projectsAll = "projectsAll",
projectsWeb = "projectsWeb",
projectsMobile = "projectsMobile",
projectsDesktop = "projectsDesktop",
projectsProud = "projectsProud",
projectsOlder = "projectsOlder",
projectsOther = "projectsOther",
projectTechStack = "projectTechStack",
projectLiveDemo = "projectLiveDemo",
@@ -95,11 +94,11 @@ enum I18nKey {
skills = "skills",
skillsSubtitle = "skillsSubtitle",
skillsAI = "skillsAI",
skillsBackend = "skillsBackend",
skillsClient = "skillsClient",
skillsFrontend = "skillsFrontend",
skillsDatabase = "skillsDatabase",
skillsEngines = "skillsEngines",
skillsBackend = "skillsBackend",
skillsNative = "skillsNative",
skillsDevOps = "skillsDevOps",
skillsIDE = "skillsIDE",
skillsTools = "skillsTools",
skillsOthers = "skillsOthers",
skillLevel = "skillLevel",

View File

@@ -73,10 +73,9 @@ export const ru: Translation = {
[Key.projects]: "Проекты",
[Key.projectsSubtitle]: "Мое портфолио проектов",
[Key.projectsAll]: "Все",
[Key.projectsWeb]: "Веб-приложения",
[Key.projectsMobile]: "Мобильные приложения",
[Key.projectsDesktop]: "Десктопные приложения",
[Key.projectsOther]: "Другое",
[Key.projectsProud]: "Проекты, которыми я горжусь",
[Key.projectsOlder]: "Более старые проекты, которые показывают мой путь",
[Key.projectsOther]: "Прочие начинания",
[Key.projectTechStack]: "Технологический стек",
[Key.projectLiveDemo]: "Живая демонстрация",
[Key.projectSourceCode]: "Исходный код",
@@ -97,14 +96,14 @@ export const ru: Translation = {
// Страница навыков
[Key.skills]: "Навыки",
[Key.skillsSubtitle]: "Мои технические навыки и экспертиза",
[Key.skillsAI]: "AI разработка",
[Key.skillsBackend]: "Backend разработка",
[Key.skillsClient]: "Client разработка",
[Key.skillsFrontend]: "Frontend разработка",
[Key.skillsDatabase]: "База данных",
[Key.skillsEngines]: "Движки",
[Key.skillsTools]: "Инструменты разработки",
[Key.skillsOthers]: "Другие навыки",
[Key.skillsAI]: "ИИ",
[Key.skillsFrontend]: "Frontend",
[Key.skillsBackend]: "Backend",
[Key.skillsNative]: "Native",
[Key.skillsDevOps]: "DevOps",
[Key.skillsIDE]: "IDE",
[Key.skillsTools]: "Инструменты",
[Key.skillsOthers]: "Прочее",
[Key.skillLevel]: "Уровень владения",
[Key.skillLevelBeginner]: "Начинающий",
[Key.skillLevelIntermediate]: "Средний",

View File

@@ -44,12 +44,10 @@ const projectsByCategory = categories.reduce(
// 获取分类文本的国际化翻译
const getCategoryText = (category: string) => {
switch (category) {
case "web":
return i18n(I18nKey.projectsWeb);
case "mobile":
return i18n(I18nKey.projectsMobile);
case "desktop":
return i18n(I18nKey.projectsDesktop);
case "proud":
return i18n(I18nKey.projectsProud);
case "older":
return i18n(I18nKey.projectsOlder);
case "other":
return i18n(I18nKey.projectsOther);
case UNCATEGORIZED:

View File

@@ -45,16 +45,16 @@ const getCategoryText = (category: string) => {
switch (category) {
case "ai":
return i18n(I18nKey.skillsAI);
case "server":
return i18n(I18nKey.skillsBackend);
case "client":
return i18n(I18nKey.skillsClient);
case "web":
case "frontend":
return i18n(I18nKey.skillsFrontend);
case "database":
return i18n(I18nKey.skillsDatabase);
case "engines":
return i18n(I18nKey.skillsEngines);
case "backend":
return i18n(I18nKey.skillsBackend);
case "native":
return i18n(I18nKey.skillsNative);
case "devops":
return i18n(I18nKey.skillsDevOps);
case "ide":
return i18n(I18nKey.skillsIDE);
case "tools":
return i18n(I18nKey.skillsTools);
case "others":

View File

@@ -7,7 +7,7 @@ export interface Project {
title: string;
description: string;
image: string;
category: "library" | "ai" | "software" | "website" | "game";
category: "proud" | "older" | "other";
techStack: string[];
status: "completed" | "in-progress" | "planned";
demoUrl?: string;

View File

@@ -7,7 +7,7 @@ export interface Skill {
name: string;
description: string;
icon: string; // Iconify icon name
category: "ai" | "backend" | "client" | "frontend" | "database" | "engines" | "tools" | "others";
category: "ai" | "frontend" | "backend" | "native" | "devops" | "ide" | "tools" | "others";
level: "beginner" | "intermediate" | "advanced" | "expert";
experience: {
years: number;
@@ -35,12 +35,12 @@ export const getSkillStats = () => {
};
const byCategory = {
ai: skillsData.filter((s) => s.category === "ai").length,
backend: skillsData.filter((s) => s.category === "backend").length,
client: skillsData.filter((s) => s.category === "client").length,
frontend: skillsData.filter((s) => s.category === "frontend").length,
database: skillsData.filter((s) => s.category === "database").length,
backend: skillsData.filter((s) => s.category === "backend").length,
native: skillsData.filter((s) => s.category === "native").length,
devops: skillsData.filter((s) => s.category === "devops").length,
ide: skillsData.filter((s) => s.category === "ide").length,
tools: skillsData.filter((s) => s.category === "tools").length,
engines: skillsData.filter((s) => s.category === "engines").length,
others: skillsData.filter((s) => s.category === "others").length,
};
return { total, byLevel, byCategory };