From b7062e15cddbb8947743c9b16e98dccfa3757840 Mon Sep 17 00:00:00 2001 From: Yep_Q Date: Mon, 8 Sep 2025 07:21:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=92=8C=E5=BF=AB=E9=80=9F=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 LAUNCH.md 完整启动指南文档 * 包含快速启动、手动启动、开发模式说明 * 详细的中文翻译特性介绍 * 环境变量配置说明 * 故障排除指南 * 项目结构说明 - 新增 start.sh 智能启动脚本 * 支持正常启动和开发模式 * 自动检查系统依赖和端口占用 * 智能处理现有进程 * 彩色日志输出和进度显示 * 支持强制构建和仅检查模式 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- n8n-n8n-1.109.2/LAUNCH.md | 154 +++++++++++++++++++++ n8n-n8n-1.109.2/start.sh | 278 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 432 insertions(+) create mode 100644 n8n-n8n-1.109.2/LAUNCH.md create mode 100755 n8n-n8n-1.109.2/start.sh diff --git a/n8n-n8n-1.109.2/LAUNCH.md b/n8n-n8n-1.109.2/LAUNCH.md new file mode 100644 index 00000000..e07eeffb --- /dev/null +++ b/n8n-n8n-1.109.2/LAUNCH.md @@ -0,0 +1,154 @@ +# n8n 中文版启动指南 + +## 项目概述 + +这是一个完全中文化的 n8n 工作流自动化平台,集成了来自 `n8n-i18n-chinese` 项目的完整中文翻译。 + +## 快速启动 + +### 使用启动脚本(推荐) +```bash +./start.sh +``` + +### 手动启动 +```bash +# 设置中文语言环境 +export N8N_DEFAULT_LOCALE=zh-CN + +# 启动 n8n 服务 +pnpm start +``` + +### 开发模式启动 +```bash +# 设置中文语言环境 +export N8N_DEFAULT_LOCALE=zh-CN + +# 启动开发服务器(支持热重载) +pnpm dev +``` + +## 访问地址 + +启动成功后,可通过以下地址访问: +- **主页**: http://localhost:5678 +- **登录页**: http://localhost:5678/signin + +## 中文翻译特性 + +### 已翻译的界面元素 +- ✅ 登录界面:登录、电子邮件、密码、忘记密码 +- ✅ 错误消息:完全中文化的错误提示 +- ✅ 工作流界面:所有操作按钮和菜单 +- ✅ 节点配置:各种节点的配置选项 +- ✅ 凭据管理:凭据创建和配置界面 + +### 翻译文件信息 +- **翻译文件**: `packages/frontend/@n8n/i18n/src/locales/zh-CN.json` +- **行数**: 3465 行 +- **来源**: [n8n-i18n-chinese](https://github.com/other-blowsnow/n8n-i18n-chinese) 项目 + +## 技术配置 + +### 环境变量 +```bash +# 主要配置 +N8N_DEFAULT_LOCALE=zh-CN +N8N_SECURE_COOKIE=false + +# 可选优化配置 +DB_SQLITE_POOL_SIZE=5 +N8N_RUNNERS_ENABLED=true +N8N_BLOCK_ENV_ACCESS_IN_NODE=false +``` + +### 修改的文件 +1. **i18n 配置**: `packages/frontend/@n8n/i18n/src/index.ts` + - 导入中文翻译文件 + - 设置默认语言为中文 + - 添加中文消息配置 + +2. **bug 修复**: `packages/frontend/editor-ui/src/components/CredentialEdit/CredentialConfig.vue` + - 添加 null 检查防止翻译错误 + +3. **环境配置**: `.env` + - 设置默认语言环境 + +## 故障排除 + +### 常见问题 + +1. **端口被占用** + ```bash + # 查看端口占用 + lsof -i :5678 + + # 杀死占用进程 + kill -9 + ``` + +2. **翻译不生效** + - 确认环境变量:`echo $N8N_DEFAULT_LOCALE` + - 检查服务器日志中的 `Locale: zh-CN` 信息 + - 清除浏览器缓存并刷新页面 + +3. **启动失败** + ```bash + # 清理并重新安装依赖 + pnpm clean + pnpm install + + # 重新构建 + pnpm build + ``` + +4. **开发模式编译错误** + ```bash + # 停止所有相关进程 + pkill -f "pnpm dev" + pkill -f "turbo" + + # 使用生产模式启动 + ./start.sh + ``` + +### 日志查看 +服务启动后会显示: +``` +Locale: zh-CN +Editor is now accessible via: +http://localhost:5678 +``` + +## 版本信息 + +- **n8n 版本**: 1.109.2 +- **Node.js**: v22.18.0 +- **pnpm**: 10.12.1 +- **翻译版本**: 基于 n8n-i18n-chinese 项目最新版本 + +## 开发说明 + +### 项目结构 +``` +n8n-n8n-1.109.2/ +├── packages/frontend/@n8n/i18n/ # 国际化配置 +│ └── src/locales/zh-CN.json # 中文翻译文件 +├── packages/frontend/editor-ui/ # 前端界面 +├── packages/cli/ # 后端服务 +├── .env # 环境配置 +├── LAUNCH.md # 本文档 +└── start.sh # 启动脚本 +``` + +### Git 分支 +- **当前分支**: `My_N8N` +- **基于版本**: n8n-1.109.2 +- **主要修改**: 集成中文翻译支持 + +--- + +**最后更新**: 2025-09-07 +**维护者**: 小齐 +**项目状态**: ✅ 可用于生产环境 \ No newline at end of file diff --git a/n8n-n8n-1.109.2/start.sh b/n8n-n8n-1.109.2/start.sh new file mode 100755 index 00000000..a1667bac --- /dev/null +++ b/n8n-n8n-1.109.2/start.sh @@ -0,0 +1,278 @@ +#!/bin/bash + +# n8n 中文版快速启动脚本 +# 作者: 小齐 +# 最后更新: 2025-09-07 + +set -e + +# 颜色定义 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# 打印带颜色的信息 +print_info() { + echo -e "${BLUE}[信息]${NC} $1" +} + +print_success() { + echo -e "${GREEN}[成功]${NC} $1" +} + +print_warning() { + echo -e "${YELLOW}[警告]${NC} $1" +} + +print_error() { + echo -e "${RED}[错误]${NC} $1" +} + +# 显示启动横幅 +show_banner() { + echo -e "${BLUE}" + echo "======================================" + echo " n8n 中文版快速启动脚本" + echo " 版本: n8n-1.109.2 with 中文翻译" + echo " 维护者: 小齐" + echo "======================================" + echo -e "${NC}" +} + +# 检查依赖 +check_dependencies() { + print_info "正在检查系统依赖..." + + # 检查 Node.js + if ! command -v node &> /dev/null; then + print_error "Node.js 未安装或未在 PATH 中" + exit 1 + fi + + # 检查 pnpm + if ! command -v pnpm &> /dev/null; then + print_error "pnpm 未安装或未在 PATH 中" + print_info "请先安装 pnpm: npm install -g pnpm" + exit 1 + fi + + print_success "依赖检查通过" +} + +# 检查端口占用 +check_port() { + local port=5678 + if lsof -Pi :$port -sTCP:LISTEN -t >/dev/null 2>&1; then + print_warning "端口 $port 已被占用" + print_info "正在查看占用进程..." + lsof -i :$port + + read -p "是否杀死占用进程?(y/N): " kill_process + if [[ $kill_process =~ ^[Yy]$ ]]; then + print_info "正在终止占用进程..." + lsof -ti:$port | xargs kill -9 + print_success "进程已终止" + else + print_error "无法启动 n8n,端口被占用" + exit 1 + fi + fi +} + +# 停止现有的 n8n 进程 +stop_existing() { + print_info "正在停止现有的 n8n 进程..." + + # 停止可能存在的 pnpm dev 进程 + pkill -f "pnpm.*dev" 2>/dev/null || true + pkill -f "pnpm.*start" 2>/dev/null || true + pkill -f "turbo.*dev" 2>/dev/null || true + pkill -f "n8n" 2>/dev/null || true + + sleep 2 + print_success "已停止现有进程" +} + +# 设置环境变量 +setup_environment() { + print_info "正在设置环境变量..." + + export N8N_DEFAULT_LOCALE=zh-CN + export N8N_SECURE_COOKIE=false + export DB_SQLITE_POOL_SIZE=5 + export N8N_RUNNERS_ENABLED=true + export N8N_BLOCK_ENV_ACCESS_IN_NODE=false + + print_success "环境变量已设置" + echo " - N8N_DEFAULT_LOCALE=zh-CN" + echo " - N8N_SECURE_COOKIE=false" + echo " - DB_SQLITE_POOL_SIZE=5" +} + +# 检查构建状态 +check_build() { + if [ ! -d "packages/cli/dist" ] || [ ! -d "packages/core/dist" ]; then + print_warning "检测到项目需要构建" + read -p "是否现在构建项目?这可能需要几分钟时间 (y/N): " build_project + + if [[ $build_project =~ ^[Yy]$ ]]; then + print_info "正在构建项目..." + pnpm build > build.log 2>&1 & + BUILD_PID=$! + + # 显示构建进度 + while kill -0 $BUILD_PID 2>/dev/null; do + echo -n "." + sleep 2 + done + echo + + if wait $BUILD_PID; then + print_success "项目构建完成" + else + print_error "构建失败,请查看 build.log" + tail -20 build.log + exit 1 + fi + fi + fi +} + +# 启动 n8n +start_n8n() { + print_info "正在启动 n8n 中文版..." + + # 创建日志文件 + local log_file="n8n-$(date +%Y%m%d-%H%M%S).log" + + # 启动 n8n + echo -e "${GREEN}正在启动 n8n 服务...${NC}" + pnpm start > "$log_file" 2>&1 & + N8N_PID=$! + + # 等待启动 + echo -n "等待 n8n 启动" + for i in {1..30}; do + if curl -s http://localhost:5678 >/dev/null 2>&1; then + break + fi + echo -n "." + sleep 1 + done + echo + + # 检查是否启动成功 + if curl -s http://localhost:5678 >/dev/null 2>&1; then + print_success "n8n 启动成功!" + echo + echo -e "${GREEN}========== 启动信息 ==========${NC}" + echo -e "📱 访问地址: ${BLUE}http://localhost:5678${NC}" + echo -e "🌏 界面语言: ${GREEN}中文 (zh-CN)${NC}" + echo -e "📋 进程 PID: ${YELLOW}$N8N_PID${NC}" + echo -e "📝 日志文件: ${YELLOW}$log_file${NC}" + echo -e "${GREEN}=============================${NC}" + echo + print_info "使用 Ctrl+C 停止服务" + + # 保持脚本运行并显示日志 + trap 'print_info "正在停止 n8n..."; kill $N8N_PID 2>/dev/null; exit 0' INT + tail -f "$log_file" + else + print_error "n8n 启动失败" + print_info "查看日志文件: $log_file" + tail -20 "$log_file" + exit 1 + fi +} + +# 显示使用帮助 +show_help() { + echo "用法: $0 [选项]" + echo + echo "选项:" + echo " -h, --help 显示此帮助信息" + echo " -d, --dev 使用开发模式启动 (支持热重载)" + echo " -b, --build 强制重新构建项目" + echo " -c, --check 仅检查系统状态,不启动" + echo + echo "示例:" + echo " $0 # 正常启动" + echo " $0 -d # 开发模式启动" + echo " $0 -b # 重新构建并启动" + echo +} + +# 主函数 +main() { + # 解析命令行参数 + while [[ $# -gt 0 ]]; do + case $1 in + -h|--help) + show_help + exit 0 + ;; + -d|--dev) + DEV_MODE=true + shift + ;; + -b|--build) + FORCE_BUILD=true + shift + ;; + -c|--check) + CHECK_ONLY=true + shift + ;; + *) + print_error "未知选项: $1" + show_help + exit 1 + ;; + esac + done + + # 显示横幅 + show_banner + + # 检查依赖 + check_dependencies + + # 检查端口 + check_port + + # 停止现有进程 + stop_existing + + # 设置环境变量 + setup_environment + + # 仅检查模式 + if [ "$CHECK_ONLY" = true ]; then + print_success "系统状态检查完成,一切正常" + exit 0 + fi + + # 强制构建或检查构建状态 + if [ "$FORCE_BUILD" = true ]; then + print_info "强制重新构建项目..." + pnpm build + print_success "构建完成" + else + check_build + fi + + # 开发模式 + if [ "$DEV_MODE" = true ]; then + print_info "正在以开发模式启动 n8n..." + print_warning "开发模式启动时间较长,请耐心等待..." + exec pnpm dev + else + # 正常启动 + start_n8n + fi +} + +# 运行主函数 +main "$@" \ No newline at end of file