feat: i18n

This commit is contained in:
2026-02-07 04:18:36 +08:00
parent d1dd75f7ab
commit 4b5d2b656b
17 changed files with 482 additions and 98 deletions

102
README.md
View File

@@ -1,88 +1,90 @@
# Mesh Drop
简易、快速的局域网文件传输工具,基于 Wails 和 Vue 构建。
English | [中文](./README.zh.md)
## 功能特性
Simple, fast LAN file transfer tool, built with Wails and Vue.
- **文件传输**:支持多文件发送,轻松共享。
- **文件夹传输**:支持发送整个文件夹结构。
- **文本传输**:快速同步设备间的文本内容。
- **加密传输**:确保数据在传输过程中的安全性。
- **安全身份**:基于 Ed25519 的签名验证,防止伪造。
## Features
## 安全机制
- **File Transfer**: Support multi-file sending, easily share.
- **Folder Transfer**: Support sending entire folder structures.
- **Text Transfer**: Quickly sync text content between devices.
- **Encrypted Transmission**: Ensure data security during transmission.
- **Secure Identity**: Ed25519-based signature verification to prevent spoofing.
Mesh Drop 采用多层安全设计来保护用户免受潜在的恶意攻击:
## Security Mechanisms
1. **身份验证 (Identity)**
- 每个设备在首次启动时生成一对唯一的 Ed25519 密钥。
- 所有广播包Presence Broadcast都使用私钥签名。
- 接收端通过公钥验证签名,确保身份未被篡改。
Mesh Drop uses a multi-layered security design to protect users from potential malicious attacks:
2. **信任机制 (Trust)**
- 采用 TOFU (Trust On First Use) 策略。
- 用户可以选择“信任”某个 Peer一旦信任该 Peer 的公钥将被固定Pinning
- 之后收到该 Peer ID 的所有数据包,必须通过已保存公钥的验证,否则会被标记为 **Mismatch**
- **防欺骗**:如果有人试图伪造已信任 Peer 的 IDUI 会显示明显的“Mismatch”安全警告并阻止元数据被覆盖。
1. **Identity**
- Each device generates a unique pair of Ed25519 keys on first startup.
- All presence broadcasts are signed with the private key.
- The receiver verifies the signature with the public key to ensure the identity has not been tampered with.
3. **传输加密 (Encryption)**
- 文件传输服务使用 HTTPS 协议。
- 自动生成自签名证书进行通信加密,防止传输内容被窃听。
2. **Trust**
- Uses TOFU (Trust On First Use) strategy.
- Users can choose to "Trust" a Peer. Once trusted, that Peer's public key is pinned.
- Subsequent packets from that Peer ID must be verified by the saved public key, otherwise they will be marked as **Mismatch**.
- **Anti-spoofing**: If someone tries to spoof a trusted Peer ID, the UI will display a clear "Mismatch" security warning and prevent metadata from being overwritten.
## 截图
3. **Encryption**
- File transfer service uses HTTPS protocol.
- Automatically generates self-signed certificates for communication encryption to prevent eavesdropping.
## Screenshots
| ![Mesh Drop](./screenshot/1.png) | ![Mesh Drop](./screenshot/2.png) |
| -------------------------------- | -------------------------------- |
## 待办事项
## Todo
- [x] 剪辑板传输
- [x] 文件夹传输
- [x] 取消传输
- [x] 多文件发送
- [x] 加密传输
- [x] 设置页面
- [x] 单例模式
- [x] 系统通知
- [x] 清理历史
- [x] 自动接收
- [x] 应用图标
- [x] 信任Peer
- [ ] 系统托盘(最小化到托盘)徽章 https://github.com/wailsapp/wails/issues/4494
- [ ] 多语言
- [x] Clipboard transfer
- [x] Folder transfer
- [x] Cancel transfer
- [x] Multi-file sending
- [x] Encrypted transmission
- [x] Settings page
- [x] Single instance mode
- [x] System notifications
- [x] Clear history
- [x] Auto accept
- [x] App icon
- [x] Trust Peer
- [x] Multi-language support
- [ ] System tray (minimize to tray) badges https://github.com/wailsapp/wails/issues/4494
## 技术栈
## Tech Stack
本项目使用现代化的技术栈构建:
This project is built using a modern tech stack:
- **后端**: [Go](https://go.dev/) + [Wails v3](https://v3.wails.io/)
- **前端**: [Vue 3](https://vuejs.org/) + [TypeScript](https://www.typescriptlang.org/)
- **UI 框架**: [Vuetify](https://vuetifyjs.com/)
- **Backend**: [Go](https://go.dev/) + [Wails v3](https://v3.wails.io/)
- **Frontend**: [Vue 3](https://vuejs.org/) + [TypeScript](https://www.typescriptlang.org/)
- **UI Framework**: [Vuetify](https://vuetifyjs.com/)
## 开发
## Development
### 前置条件
### Prerequisites
在开始之前,请确保您的开发环境已安装以下工具:
Before starting, ensure your development environment has the following tools installed:
1. **Go** (版本 >= 1.25)
1. **Go** (version >= 1.25)
2. **Node.js**
3. **Wails CLI**
4. **UPX**
### 安装依赖
### Install Dependencies
```bash
# 进入项目目录
# Enter project directory
cd mesh-drop
# 安装前端依赖 (通常 Wails 会自动处理,但手动安装可确保环境清晰)
# Install frontend dependencies (Wails usually handles this automatically, but manual installation ensures a clean environment)
cd frontend
npm install
cd ..
```
### 运行开发环境
### Run Development Environment
```bash
wails3 dev