♻️ refactor: reorganize project structure and centralize search engine config

- Move all source files from root to src/ directory for better organization
- Create src/config/searchEngines.ts to centralize search engine configurations
  - Define unified SearchEngineConfig interface
  - Support both JSONP and Fetch request methods
  - Implement response parsers for Google, Baidu, Bing, DuckDuckGo, and Bilibili
- Refactor src/utils/suggestions.ts to use centralized config
  - Simplify code from 126 lines to 81 lines
  - Support hybrid JSONP/Fetch mode (Bilibili uses Fetch via Vite proxy)
  - Remove duplicate URL construction and parsing logic
- Update path alias configuration
  - Change @/* from ./* to ./src/* in tsconfig.json
  - Update vite.config.ts alias to point to ./src
- Add Bilibili proxy configuration in vite.config.ts for development
- Remove Bilibili rewrites from vercel.json (use Vite proxy instead)
- Add @vercel/node to devDependencies
- Remove unused files: README.md, i18n/README.md, metadata.json, vite-env.d.ts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
ZyphrZero
2025-12-05 10:41:17 +08:00
parent aa46cd16b7
commit 2993f9b859
34 changed files with 1274 additions and 405 deletions

95
src/i18n/locales/zh.ts Normal file
View File

@@ -0,0 +1,95 @@
import { Translation } from '../types';
export const zh: Translation = {
// Common
settings: '设置',
appearance: '外观',
searchEngines: '搜索引擎',
// Theme Settings
themeColor: '主题颜色',
showSeconds: '显示秒数',
use24HourFormat: '24小时制',
maskBlurEffect: '遮罩层毛玻璃',
searchHistory: '搜索历史记录',
backgroundBlur: '背景模糊度',
searchBoxOpacity: '搜索框不透明度',
// Wallpaper Settings
wallpaperSettings: '壁纸设置',
uploadImageVideo: '上传图片/视频',
enterImageVideoUrl: '输入图片或视频链接...',
apply: '应用',
cover: '填充',
contain: '适应',
fill: '拉伸',
repeat: '平铺',
center: '居中',
deleteWallpaper: '删除壁纸',
// Search Engine Manager
addCustomEngine: '添加自定义引擎',
editSearchEngine: '编辑搜索引擎',
name: '名称',
searchUrl: '搜索 URL (使用 %s 或直接结尾)',
svgIconCode: 'SVG 图标代码',
optional: '可选',
preview: '预览',
cancel: '取消',
save: '保存',
add: '添加',
current: '当前使用',
setDefault: '设为默认',
edit: '编辑',
delete: '删除',
// Search Box
search: 'Search',
searchOn: 'Search on',
recentSearches: '最近搜索',
clearHistory: '清空历史记录',
// Context Menu
copy: '复制',
cut: '剪切',
paste: '粘贴',
// Error Boundary
somethingWentWrong: '出错了',
errorMessage: '应用遇到了一个意外错误。请尝试刷新页面或重置应用。',
retry: '重试',
refreshPage: '刷新页面',
// Toast Messages
searchEngineDeleted: '搜索引擎已删除',
searchEngineUpdated: '搜索引擎更新成功',
newSearchEngineAdded: '新搜索引擎已添加',
duplicateEngineName: '该搜索引擎名称已存在,请使用其他名称',
customWallpaperApplied: '自定义壁纸已应用',
wallpaperUploaded: '壁纸上传并应用成功',
wallpaperDeleted: '自定义壁纸已删除',
fileSizeExceeded: '文件大小不能超过 3.5MB。建议使用URL方式添加。',
unsupportedFileType: '不支持的文件类型。仅支持JPEG, PNG, GIF, WebP, SVG, MP4, WebM, OGG',
fileContentMismatch: '文件内容与类型不匹配',
storageFull: '存储空间不足!文件过大,无法保存。建议使用 URL 方式。',
invalidUrlFormat: '无效的 URL 格式',
unsupportedProtocol: '仅支持 HTTP 或 HTTPS 协议的链接',
invalidSearchUrl: '生成的搜索 URL 无效',
copyFailed: '复制失败',
cutFailed: '剪切失败',
cannotReadClipboard: '无法读取剪贴板',
// Clock
monday: '星期一',
tuesday: '星期二',
wednesday: '星期三',
thursday: '星期四',
friday: '星期五',
saturday: '星期六',
sunday: '星期日',
// Language
language: '语言',
english: 'English',
chinese: '简体中文',
};