feat: initialize AeroStart browser start page project

Implement a modern, customizable browser start page with comprehensive features:

- Multi-theme support with 8 preset color schemes
- Custom wallpaper system supporting images and videos with multiple fit modes
- Integrated search functionality with 5 major search engines (Google, Baidu, Bing, DuckDuckGo, Bilibili)
- Real-time clock component with 12/24 hour format options
- Dynamic background blur effect during search for enhanced focus
- Complete i18n system with English and Chinese language support
- Responsive design with smooth animations and transitions
- Local storage integration for persistent user preferences
- Context menu system for quick settings access
- Toast notification system for user feedback
- Error boundary for robust error handling

Tech Stack:
- React 19 with TypeScript
- Vite 6 for build tooling
- Tailwind CSS for styling
- Local storage for data persistence

Project Structure:
- Core components: Clock, SearchBox, SettingsModal, ThemeSettings, WallpaperManager
- Utility modules: storage management, search suggestions
- Context providers: Toast notifications, i18n
- Type definitions and constants configuration

🤖 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 02:55:50 +08:00
parent aa197e4e48
commit 56dd6d8bf2
31 changed files with 5270 additions and 0 deletions

95
i18n/types.ts Normal file
View File

@@ -0,0 +1,95 @@
export type Language = 'en' | 'zh';
export interface Translation {
// Common
settings: string;
appearance: string;
searchEngines: string;
// Theme Settings
themeColor: string;
showSeconds: string;
use24HourFormat: string;
maskBlurEffect: string;
searchHistory: string;
backgroundBlur: string;
searchBoxOpacity: string;
// Wallpaper Settings
wallpaperSettings: string;
uploadImageVideo: string;
enterImageVideoUrl: string;
apply: string;
cover: string;
contain: string;
fill: string;
repeat: string;
center: string;
deleteWallpaper: string;
// Search Engine Manager
addCustomEngine: string;
editSearchEngine: string;
name: string;
searchUrl: string;
svgIconCode: string;
optional: string;
preview: string;
cancel: string;
save: string;
add: string;
current: string;
setDefault: string;
edit: string;
delete: string;
// Search Box
search: string;
searchOn: string;
recentSearches: string;
clearHistory: string;
// Context Menu
copy: string;
cut: string;
paste: string;
// Error Boundary
somethingWentWrong: string;
errorMessage: string;
retry: string;
refreshPage: string;
// Toast Messages
searchEngineDeleted: string;
searchEngineUpdated: string;
newSearchEngineAdded: string;
duplicateEngineName: string;
customWallpaperApplied: string;
wallpaperUploaded: string;
wallpaperDeleted: string;
fileSizeExceeded: string;
unsupportedFileType: string;
fileContentMismatch: string;
storageFull: string;
invalidUrlFormat: string;
unsupportedProtocol: string;
invalidSearchUrl: string;
copyFailed: string;
cutFailed: string;
cannotReadClipboard: string;
// Clock
monday: string;
tuesday: string;
wednesday: string;
thursday: string;
friday: string;
saturday: string;
sunday: string;
// Language
language: string;
english: string;
chinese: string;
}