369 lines
9.2 KiB
Markdown
369 lines
9.2 KiB
Markdown
|
|
# n8n汉化
|
|||
|
|
|
|||
|
|
## 📚 学习资源
|
|||
|
|
|
|||
|
|
- **汉化教程**:[n8n汉化指南](https://zhuanlan.zhihu.com/p/1937586953865372387)
|
|||
|
|
- **官方文档**:[n8n官方文档](https://docs.n8n.io)
|
|||
|
|
- **中文文档**:[n8n中文文档](https://docs.n8ncn.io)
|
|||
|
|
|
|||
|
|
在使用Docker部署时,可以通过添加环境变量和挂载中文语言包的方式实现界面汉化。
|
|||
|
|
|
|||
|
|
## 🌏 汉化的必要性
|
|||
|
|
|
|||
|
|
### 为什么需要汉化
|
|||
|
|
|
|||
|
|
<div class="feature-grid">
|
|||
|
|
<div class="feature-card">
|
|||
|
|
<div class="feature-icon">👥</div>
|
|||
|
|
<h3>团队协作</h3>
|
|||
|
|
<p>降低团队成员的学习门槛,提高工作效率</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="feature-card">
|
|||
|
|
<div class="feature-icon">📖</div>
|
|||
|
|
<h3>理解准确</h3>
|
|||
|
|
<p>避免因语言理解偏差导致的配置错误</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="feature-card">
|
|||
|
|
<div class="feature-icon">🎯</div>
|
|||
|
|
<h3>专注业务</h3>
|
|||
|
|
<p>减少语言障碍,专注于业务逻辑设计</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="feature-card">
|
|||
|
|
<div class="feature-icon">🚀</div>
|
|||
|
|
<h3>快速上手</h3>
|
|||
|
|
<p>新用户能更快熟悉界面和功能</p>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
## 🐳 Docker部署汉化方案
|
|||
|
|
|
|||
|
|
### 方案一:环境变量汉化
|
|||
|
|
|
|||
|
|
最简单的汉化方式是通过环境变量设置:
|
|||
|
|
|
|||
|
|
```yaml title="docker-compose.yml"
|
|||
|
|
version: '3.8'
|
|||
|
|
|
|||
|
|
services:
|
|||
|
|
n8n:
|
|||
|
|
image: n8nio/n8n
|
|||
|
|
container_name: n8n
|
|||
|
|
restart: unless-stopped
|
|||
|
|
ports:
|
|||
|
|
- "5678:5678"
|
|||
|
|
environment:
|
|||
|
|
# 基础配置
|
|||
|
|
- GENERIC_TIMEZONE=Asia/Shanghai
|
|||
|
|
- N8N_DEFAULT_LOCALE=zh-CN
|
|||
|
|
- N8N_DEFAULT_BINARY_DATA_MODE=filesystem
|
|||
|
|
|
|||
|
|
# 界面汉化
|
|||
|
|
- LOCALE=zh-CN
|
|||
|
|
- LC_ALL=zh_CN.UTF-8
|
|||
|
|
- LANG=zh_CN.UTF-8
|
|||
|
|
|
|||
|
|
# 认证配置
|
|||
|
|
- N8N_BASIC_AUTH_ACTIVE=true
|
|||
|
|
- N8N_BASIC_AUTH_USER=admin
|
|||
|
|
- N8N_BASIC_AUTH_PASSWORD=your-password
|
|||
|
|
volumes:
|
|||
|
|
- n8n_data:/home/node/.n8n
|
|||
|
|
- /data/n8n/files:/files
|
|||
|
|
|
|||
|
|
volumes:
|
|||
|
|
n8n_data:
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方案二:挂载语言包
|
|||
|
|
|
|||
|
|
更完整的汉化需要挂载自定义语言包:
|
|||
|
|
|
|||
|
|
```yaml title="docker-compose.zh.yml"
|
|||
|
|
version: '3.8'
|
|||
|
|
|
|||
|
|
services:
|
|||
|
|
n8n:
|
|||
|
|
image: n8nio/n8n
|
|||
|
|
container_name: n8n-zh
|
|||
|
|
restart: unless-stopped
|
|||
|
|
ports:
|
|||
|
|
- "5678:5678"
|
|||
|
|
environment:
|
|||
|
|
- GENERIC_TIMEZONE=Asia/Shanghai
|
|||
|
|
- N8N_DEFAULT_LOCALE=zh-CN
|
|||
|
|
- NODE_ENV=production
|
|||
|
|
volumes:
|
|||
|
|
- n8n_data:/home/node/.n8n
|
|||
|
|
- /data/n8n/files:/files
|
|||
|
|
# 挂载中文语言包
|
|||
|
|
- ./locales:/usr/local/lib/node_modules/n8n/dist/packages/editor-ui/dist/static/locales
|
|||
|
|
depends_on:
|
|||
|
|
- postgres
|
|||
|
|
|
|||
|
|
postgres:
|
|||
|
|
image: postgres:13
|
|||
|
|
restart: unless-stopped
|
|||
|
|
environment:
|
|||
|
|
- POSTGRES_USER=n8n
|
|||
|
|
- POSTGRES_PASSWORD=n8n_password
|
|||
|
|
- POSTGRES_DB=n8n
|
|||
|
|
# 设置数据库字符集
|
|||
|
|
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=zh_CN.UTF-8 --lc-ctype=zh_CN.UTF-8
|
|||
|
|
volumes:
|
|||
|
|
- postgres_data:/var/lib/postgresql/data
|
|||
|
|
|
|||
|
|
volumes:
|
|||
|
|
n8n_data:
|
|||
|
|
postgres_data:
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📁 语言包文件结构
|
|||
|
|
|
|||
|
|
### 创建本地语言包目录
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 创建语言包目录
|
|||
|
|
mkdir -p /data/n8n/locales
|
|||
|
|
|
|||
|
|
# 下载中文语言包
|
|||
|
|
curl -o /data/n8n/locales/zh-CN.json https://raw.githubusercontent.com/n8n-io/n8n/master/packages/editor-ui/src/plugins/i18n/locales/zh.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 自定义翻译内容
|
|||
|
|
|
|||
|
|
```json title="locales/zh-CN.json"
|
|||
|
|
{
|
|||
|
|
"n8n": {
|
|||
|
|
"auth": {
|
|||
|
|
"signin": "登录",
|
|||
|
|
"signup": "注册",
|
|||
|
|
"signout": "退出登录",
|
|||
|
|
"forgotPassword": "忘记密码"
|
|||
|
|
},
|
|||
|
|
"generic": {
|
|||
|
|
"save": "保存",
|
|||
|
|
"cancel": "取消",
|
|||
|
|
"delete": "删除",
|
|||
|
|
"edit": "编辑",
|
|||
|
|
"create": "创建",
|
|||
|
|
"search": "搜索",
|
|||
|
|
"loading": "加载中..."
|
|||
|
|
},
|
|||
|
|
"workflows": {
|
|||
|
|
"new": "新建工作流",
|
|||
|
|
"save": "保存工作流",
|
|||
|
|
"execute": "执行工作流",
|
|||
|
|
"activate": "激活",
|
|||
|
|
"deactivate": "停用"
|
|||
|
|
},
|
|||
|
|
"nodes": {
|
|||
|
|
"add": "添加节点",
|
|||
|
|
"delete": "删除节点",
|
|||
|
|
"duplicate": "复制节点",
|
|||
|
|
"rename": "重命名"
|
|||
|
|
},
|
|||
|
|
"credentials": {
|
|||
|
|
"title": "凭证管理",
|
|||
|
|
"create": "创建凭证",
|
|||
|
|
"edit": "编辑凭证",
|
|||
|
|
"test": "测试连接"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🛠️ 完整汉化部署脚本
|
|||
|
|
|
|||
|
|
### 一键汉化部署脚本
|
|||
|
|
|
|||
|
|
```bash title="setup-n8n-zh.sh"
|
|||
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# n8n中文版一键部署脚本
|
|||
|
|
|
|||
|
|
set -e
|
|||
|
|
|
|||
|
|
echo "🚀 开始部署n8n中文版..."
|
|||
|
|
|
|||
|
|
# 创建必要目录
|
|||
|
|
echo "📁 创建目录结构..."
|
|||
|
|
mkdir -p /data/n8n/{config,files,locales,backups}
|
|||
|
|
|
|||
|
|
# 下载语言包
|
|||
|
|
echo "🌏 下载中文语言包..."
|
|||
|
|
curl -s -o /data/n8n/locales/zh-CN.json \
|
|||
|
|
https://raw.githubusercontent.com/n8n-io/n8n/master/packages/editor-ui/src/plugins/i18n/locales/zh.json
|
|||
|
|
|
|||
|
|
# 创建docker-compose配置
|
|||
|
|
echo "🐳 创建Docker配置..."
|
|||
|
|
cat > /data/n8n/docker-compose.yml << 'EOF'
|
|||
|
|
version: '3.8'
|
|||
|
|
|
|||
|
|
services:
|
|||
|
|
postgres:
|
|||
|
|
image: postgres:13
|
|||
|
|
restart: unless-stopped
|
|||
|
|
environment:
|
|||
|
|
- POSTGRES_USER=n8n
|
|||
|
|
- POSTGRES_PASSWORD=n8n_secure_password
|
|||
|
|
- POSTGRES_DB=n8n
|
|||
|
|
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=zh_CN.UTF-8 --lc-ctype=zh_CN.UTF-8
|
|||
|
|
volumes:
|
|||
|
|
- postgres_data:/var/lib/postgresql/data
|
|||
|
|
networks:
|
|||
|
|
- n8n-network
|
|||
|
|
|
|||
|
|
n8n:
|
|||
|
|
image: n8nio/n8n:latest
|
|||
|
|
restart: unless-stopped
|
|||
|
|
ports:
|
|||
|
|
- "5678:5678"
|
|||
|
|
environment:
|
|||
|
|
# 数据库配置
|
|||
|
|
- DB_TYPE=postgresdb
|
|||
|
|
- DB_POSTGRESDB_HOST=postgres
|
|||
|
|
- DB_POSTGRESDB_PORT=5432
|
|||
|
|
- DB_POSTGRESDB_DATABASE=n8n
|
|||
|
|
- DB_POSTGRESDB_USER=n8n
|
|||
|
|
- DB_POSTGRESDB_PASSWORD=n8n_secure_password
|
|||
|
|
|
|||
|
|
# 基础配置
|
|||
|
|
- GENERIC_TIMEZONE=Asia/Shanghai
|
|||
|
|
- N8N_DEFAULT_LOCALE=zh-CN
|
|||
|
|
- N8N_ENCRYPTION_KEY=your-encryption-key-32-chars
|
|||
|
|
|
|||
|
|
# 界面汉化
|
|||
|
|
- LOCALE=zh-CN
|
|||
|
|
- LC_ALL=zh_CN.UTF-8
|
|||
|
|
- LANG=zh_CN.UTF-8
|
|||
|
|
|
|||
|
|
# 安全配置
|
|||
|
|
- N8N_BASIC_AUTH_ACTIVE=true
|
|||
|
|
- N8N_BASIC_AUTH_USER=admin
|
|||
|
|
- N8N_BASIC_AUTH_PASSWORD=admin_secure_password
|
|||
|
|
|
|||
|
|
# Webhook配置
|
|||
|
|
- WEBHOOK_URL=http://localhost:5678/
|
|||
|
|
|
|||
|
|
volumes:
|
|||
|
|
- /data/n8n/config:/home/node/.n8n
|
|||
|
|
- /data/n8n/files:/files
|
|||
|
|
- /data/n8n/locales:/usr/local/lib/node_modules/n8n/dist/packages/editor-ui/dist/static/locales
|
|||
|
|
depends_on:
|
|||
|
|
- postgres
|
|||
|
|
networks:
|
|||
|
|
- n8n-network
|
|||
|
|
|
|||
|
|
volumes:
|
|||
|
|
postgres_data:
|
|||
|
|
|
|||
|
|
networks:
|
|||
|
|
n8n-network:
|
|||
|
|
driver: bridge
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
# 启动服务
|
|||
|
|
echo "🚀 启动n8n服务..."
|
|||
|
|
cd /data/n8n
|
|||
|
|
docker-compose up -d
|
|||
|
|
|
|||
|
|
# 等待服务启动
|
|||
|
|
echo "⏳ 等待服务启动..."
|
|||
|
|
sleep 30
|
|||
|
|
|
|||
|
|
# 检查服务状态
|
|||
|
|
echo "🔍 检查服务状态..."
|
|||
|
|
docker-compose ps
|
|||
|
|
|
|||
|
|
# 显示访问信息
|
|||
|
|
echo "✅ n8n中文版部署完成!"
|
|||
|
|
echo "🌐 访问地址: http://localhost:5678"
|
|||
|
|
echo "👤 用户名: admin"
|
|||
|
|
echo "🔑 密码: admin_secure_password"
|
|||
|
|
echo ""
|
|||
|
|
echo "📚 管理命令:"
|
|||
|
|
echo " 查看日志: cd /data/n8n && docker-compose logs -f"
|
|||
|
|
echo " 重启服务: cd /data/n8n && docker-compose restart"
|
|||
|
|
echo " 停止服务: cd /data/n8n && docker-compose down"
|
|||
|
|
echo " 备份数据: cd /data/n8n && docker-compose exec postgres pg_dump -U n8n n8n > backups/backup-\$(date +%Y%m%d).sql"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 运行部署脚本
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 下载并执行部署脚本
|
|||
|
|
curl -sL https://raw.githubusercontent.com/your-repo/n8n-zh/main/setup.sh | bash
|
|||
|
|
|
|||
|
|
# 或者手动执行
|
|||
|
|
chmod +x setup-n8n-zh.sh
|
|||
|
|
./setup-n8n-zh.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🎨 界面汉化效果
|
|||
|
|
|
|||
|
|
### 汉化前后对比
|
|||
|
|
|
|||
|
|
| 功能区域 | 英文原版 | 中文汉化 |
|
|||
|
|
|----------|----------|----------|
|
|||
|
|
| **主菜单** | Workflows, Credentials, Executions | 工作流, 凭证, 执行历史 |
|
|||
|
|
| **节点类型** | Triggers, Inputs, Processes, Outputs | 触发器, 输入, 处理, 输出 |
|
|||
|
|
| **操作按钮** | Execute, Save, Activate, Settings | 执行, 保存, 激活, 设置 |
|
|||
|
|
| **状态信息** | Running, Success, Error, Waiting | 运行中, 成功, 错误, 等待中 |
|
|||
|
|
|
|||
|
|
### 汉化覆盖范围
|
|||
|
|
|
|||
|
|
✅ **已汉化内容**:
|
|||
|
|
- 主界面菜单和导航
|
|||
|
|
- 节点分类和常用节点名称
|
|||
|
|
- 工作流操作按钮
|
|||
|
|
- 错误提示信息
|
|||
|
|
- 设置界面选项
|
|||
|
|
|
|||
|
|
⚠️ **部分汉化内容**:
|
|||
|
|
- 某些第三方节点名称
|
|||
|
|
- 高级配置选项
|
|||
|
|
- 开发者相关功能
|
|||
|
|
|
|||
|
|
❌ **未汉化内容**:
|
|||
|
|
- 社区节点描述
|
|||
|
|
- 技术文档链接
|
|||
|
|
- 日志详细信息
|
|||
|
|
|
|||
|
|
## 🔧 汉化问题排查
|
|||
|
|
|
|||
|
|
### 常见问题和解决方案
|
|||
|
|
|
|||
|
|
| 问题 | 症状 | 解决方案 |
|
|||
|
|
|------|------|----------|
|
|||
|
|
| **语言包未生效** | 界面仍显示英文 | 检查挂载路径和环境变量 |
|
|||
|
|
| **部分乱码** | 某些文字显示异常 | 确认字符集设置为UTF-8 |
|
|||
|
|
| **功能异常** | 汉化后功能出错 | 使用官方语言包版本 |
|
|||
|
|
|
|||
|
|
### 验证汉化是否成功
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 检查容器环境变量
|
|||
|
|
docker exec n8n env | grep -E "(LANG|LOCALE)"
|
|||
|
|
|
|||
|
|
# 检查语言包文件
|
|||
|
|
docker exec n8n ls -la /usr/local/lib/node_modules/n8n/dist/packages/editor-ui/dist/static/locales/
|
|||
|
|
|
|||
|
|
# 查看n8n日志
|
|||
|
|
docker-compose logs n8n | grep -i locale
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📚 参考资源
|
|||
|
|
|
|||
|
|
- **详细汉化教程**: [n8n完整汉化指南](https://zhuanlan.zhihu.com/p/1937586953865372387)
|
|||
|
|
- **官方多语言支持**: [n8n Internationalization](https://docs.n8n.io/hosting/configuration/#internationalization)
|
|||
|
|
- **社区汉化项目**: GitHub上的中文社区维护版本
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
通过汉化,您的团队可以更高效地使用n8n,减少语言障碍带来的学习成本。
|
|||
|
|
|
|||
|
|
[上一章:凭证管理](credentials.md){ .md-button } [下一章:常用节点](../learning/common-nodes.md){ .md-button .md-button--primary }
|