From a760b74930ea4f37b7752f76d6e50a54450f9c19 Mon Sep 17 00:00:00 2001 From: arch3rPro Date: Tue, 2 Sep 2025 15:55:20 +0800 Subject: [PATCH] feat: add app n8n-zh 1.109.1 --- apps/n8n-zh/1.109.1/data.yml | 18 ++++++ apps/n8n-zh/1.109.1/data/.gitkeep | 0 apps/n8n-zh/1.109.1/docker-compose.yml | 21 +++++++ apps/n8n-zh/1.109.1/scripts/init.sh | 71 +++++++++++++++++++++++ apps/n8n-zh/1.109.1/scripts/uninstall.sh | 19 ++++++ apps/n8n-zh/1.109.1/scripts/upgrade.sh | 30 ++++++++++ apps/n8n-zh/README.md | 65 +++++++++++++++++++++ apps/n8n-zh/README_en.md | 65 +++++++++++++++++++++ apps/n8n-zh/data.yml | 32 ++++++++++ apps/n8n-zh/logo.png | Bin 0 -> 2329 bytes 10 files changed, 321 insertions(+) create mode 100644 apps/n8n-zh/1.109.1/data.yml create mode 100644 apps/n8n-zh/1.109.1/data/.gitkeep create mode 100644 apps/n8n-zh/1.109.1/docker-compose.yml create mode 100755 apps/n8n-zh/1.109.1/scripts/init.sh create mode 100755 apps/n8n-zh/1.109.1/scripts/uninstall.sh create mode 100755 apps/n8n-zh/1.109.1/scripts/upgrade.sh create mode 100644 apps/n8n-zh/README.md create mode 100644 apps/n8n-zh/README_en.md create mode 100644 apps/n8n-zh/data.yml create mode 100644 apps/n8n-zh/logo.png diff --git a/apps/n8n-zh/1.109.1/data.yml b/apps/n8n-zh/1.109.1/data.yml new file mode 100644 index 0000000..bbd39d2 --- /dev/null +++ b/apps/n8n-zh/1.109.1/data.yml @@ -0,0 +1,18 @@ +additionalProperties: + formFields: + - default: 5678 + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: HTTP 端口 + label: + en: Port + ja: ポート + ms: Port + pt-br: Porta + ru: Порт + ko: 포트 + zh-Hant: 埠 + zh: 端口 + required: true + rule: paramPort + type: number diff --git a/apps/n8n-zh/1.109.1/data/.gitkeep b/apps/n8n-zh/1.109.1/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/apps/n8n-zh/1.109.1/docker-compose.yml b/apps/n8n-zh/1.109.1/docker-compose.yml new file mode 100644 index 0000000..a7b60d5 --- /dev/null +++ b/apps/n8n-zh/1.109.1/docker-compose.yml @@ -0,0 +1,21 @@ +services: + n8n: + image: n8nio/n8n:1.109.1 + container_name: ${CONTAINER_NAME} + restart: always + user: "1000:1000" + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:5678 + volumes: + - ./data:/home/node/.n8n + - ./editor-ui:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist + environment: + N8N_SECURE_COOKIE: false + N8N_DEFAULT_LOCALE: zh-CN + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/n8n-zh/1.109.1/scripts/init.sh b/apps/n8n-zh/1.109.1/scripts/init.sh new file mode 100755 index 0000000..386f485 --- /dev/null +++ b/apps/n8n-zh/1.109.1/scripts/init.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +# n8n 汉化文件初始化脚本 +# 下载对应版本的汉化 UI 文件并设置正确的权限 + +set -e + +APP_DIR=$(cd "$(dirname "$0")/.." && pwd) +EDITOR_UI_DIR="$APP_DIR/editor-ui" +DATA_DIR="$APP_DIR/data" +N8N_VERSION="1.109.1" +CHINESE_I18N_URL="https://github.com/other-blowsnow/n8n-i18n-chinese/releases/download/n8n%40${N8N_VERSION}/editor-ui.tar.gz" + +echo "开始初始化 n8n ${N8N_VERSION}..." + +# 创建并设置数据目录权限 +echo "设置数据目录权限..." +mkdir -p "$DATA_DIR" +# n8n 容器内使用 node 用户,UID 1000 +chown -R 1000:1000 "$DATA_DIR" +chmod -R 755 "$DATA_DIR" + +echo "开始下载 n8n ${N8N_VERSION} 汉化文件..." + +# 创建汉化文件目录 +mkdir -p "$EDITOR_UI_DIR" + +# 检查是否已经存在汉化文件 +if [ -f "$EDITOR_UI_DIR/index.html" ]; then + echo "汉化文件已存在,跳过下载" + exit 0 +fi + +# 创建临时目录 +TEMP_DIR=$(mktemp -d) +cd "$TEMP_DIR" + +# 下载汉化文件 +echo "正在下载汉化文件..." +if command -v wget >/dev/null 2>&1; then + wget -O editor-ui.tar.gz "$CHINESE_I18N_URL" || { + echo "警告: 无法下载汉化文件,将使用英文版本" + exit 0 + } +elif command -v curl >/dev/null 2>&1; then + curl -L -o editor-ui.tar.gz "$CHINESE_I18N_URL" || { + echo "警告: 无法下载汉化文件,将使用英文版本" + exit 0 + } +else + echo "警告: 系统中未找到 wget 或 curl,无法下载汉化文件,将使用英文版本" + exit 0 +fi + +# 解压汉化文件 +echo "正在解压汉化文件..." +tar -zxf editor-ui.tar.gz + +# 移动文件到目标目录 +if [ -d "dist" ]; then + cp -r dist/* "$EDITOR_UI_DIR/" + echo "汉化文件安装完成" +else + echo "警告: 汉化文件格式异常,将使用英文版本" +fi + +# 清理临时文件 +cd "$APP_DIR" +rm -rf "$TEMP_DIR" + +echo "n8n 汉化初始化完成" \ No newline at end of file diff --git a/apps/n8n-zh/1.109.1/scripts/uninstall.sh b/apps/n8n-zh/1.109.1/scripts/uninstall.sh new file mode 100755 index 0000000..7a43ffb --- /dev/null +++ b/apps/n8n-zh/1.109.1/scripts/uninstall.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# n8n 汉化文件卸载脚本 +# 清理汉化相关文件 + +set -e + +APP_DIR=$(cd "$(dirname "$0")/.." && pwd) +EDITOR_UI_DIR="$APP_DIR/editor-ui" + +echo "开始清理 n8n 汉化文件..." + +# 清理汉化文件目录 +if [ -d "$EDITOR_UI_DIR" ]; then + echo "清理汉化文件目录..." + rm -rf "$EDITOR_UI_DIR" +fi + +echo "n8n 汉化文件清理完成" \ No newline at end of file diff --git a/apps/n8n-zh/1.109.1/scripts/upgrade.sh b/apps/n8n-zh/1.109.1/scripts/upgrade.sh new file mode 100755 index 0000000..30b0e23 --- /dev/null +++ b/apps/n8n-zh/1.109.1/scripts/upgrade.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# n8n 汉化文件升级脚本 +# 在升级时重新下载对应版本的汉化文件并设置正确权限 + +set -e + +APP_DIR=$(cd "$(dirname "$0")/.." && pwd) +EDITOR_UI_DIR="$APP_DIR/editor-ui" +DATA_DIR="$APP_DIR/data" + +echo "开始 n8n 汉化文件升级..." + +# 设置数据目录权限 +echo "设置数据目录权限..." +if [ -d "$DATA_DIR" ]; then + chown -R 1000:1000 "$DATA_DIR" + chmod -R 755 "$DATA_DIR" +fi + +# 清理旧的汉化文件 +if [ -d "$EDITOR_UI_DIR" ]; then + echo "清理旧的汉化文件..." + rm -rf "$EDITOR_UI_DIR" +fi + +# 调用初始化脚本重新下载汉化文件 +"$APP_DIR/scripts/init.sh" + +echo "n8n 汉化文件升级完成" \ No newline at end of file diff --git a/apps/n8n-zh/README.md b/apps/n8n-zh/README.md new file mode 100644 index 0000000..eef8777 --- /dev/null +++ b/apps/n8n-zh/README.md @@ -0,0 +1,65 @@ +## 产品介绍 + +**n8n** 是一种可扩展的工作流自动化工具。借助公平代码分发模型,n8n 将始终拥有可见的源代码,可供自托管,并允许您添加自己的自定义函数、逻辑和应用程序。n8n 基于节点的方法使其具有高度的通用性,使您可以将任何事物连接到一切事物。 + +**本版本已集成中文汉化包**,安装后界面将显示为中文,提供更好的中文用户体验。汉化文件来源于开源项目 [n8n-i18n-chinese](https://github.com/other-blowsnow/n8n-i18n-chinese)。 + +![](https://cdn.jsdelivr.net/gh/xiaoY233/PicList@main/public/assets/n8n-zh.png) + +![](https://img.shields.io/badge/Copyright-arch3rPro-ff9800?style=flat&logo=github&logoColor=white) + +## 主要功能 + +- **工作流自动化**:通过图形化界面创建自动化的工作流,将不同的应用和服务连接起来。 +- **支持多个应用**:提供了丰富的集成节点,可以连接到各种应用和服务,如 Google Sheets、Slack、GitHub、Twitter 等。 +- **灵活的触发器和动作**:支持基于事件的触发器和各种动作,使得工作流可以响应特定事件并执行相关任务。 +- **条件和循环**:可以在工作流中添加条件判断和循环操作,处理更复杂的逻辑。 +- **可自定义的代码执行**:支持在工作流中添加自定义 JavaScript 代码,以实现更复杂的逻辑和处理。 +- **自托管**:用户可以在本地或云服务器上自托管 n8n,确保数据安全和隐私。 +- **版本控制**:支持将工作流导出为 JSON 文件,以便版本控制和备份。 + +## 汉化说明 + +本版本已集成中文汉化包,具有以下特性: + +- **自动汉化**:安装时自动下载对应版本的中文语言包 +- **界面中文化**:整个 Web 界面完全中文显示 +- **节点翻译**:所有工作流节点和属性都有中文翻译 +- **容错机制**:如果汉化文件下载失败,会自动使用英文版本 + +### 自定义脚本执行说明 + +为了实现汉化功能,本应用包含以下自定义脚本: + +#### 配置文件位置 +- 汉化文件存储位置:`./editor-ui/` 目录 +- 脚本文件位置:`./scripts/` 目录 + +#### 替换步骤 +1. **初始化脚本** (`init.sh`):在应用安装时执行 + - 自动下载对应版本的汉化 UI 文件 + - 解压并部署到指定目录 + - 如果下载失败会给出提示并继续使用英文版 + +2. **升级脚本** (`upgrade.sh`):在应用升级时执行 + - 清理旧版本汉化文件 + - 重新下载新版本汉化文件 + +3. **卸载脚本** (`uninstall.sh`):在应用卸载后执行 + - 清理所有汉化相关文件 + +#### 操作示例 +应用安装完成后,可以通过以下方式验证汉化是否生效: +1. 访问 n8n Web 界面 +2. 界面应显示为中文 +3. 如果显示为英文,检查容器日志是否有汉化文件下载错误 +4. 如果出现权限错误(EACCES),初始化脚本会自动设置正确的目录权限 + +#### 注意事项 +- 汉化文件来源于开源项目 [n8n-i18n-chinese](https://github.com/other-blowsnow/n8n-i18n-chinese) +- 汉化文件版本需要与 n8n 版本严格对应 +- 如需更换自定义汉化文件,可以替换 `./editor-ui/` 目录下的文件 +- 首次安装需要网络连接以下载汉化文件 +- 容器需要具备下载文件的权限(wget 或 curl) +- 初始化脚本会自动设置数据目录权限,解决文件写入权限问题 +- 容器以 UID 1000 运行,保证数据目录访问正常 diff --git a/apps/n8n-zh/README_en.md b/apps/n8n-zh/README_en.md new file mode 100644 index 0000000..959c5cb --- /dev/null +++ b/apps/n8n-zh/README_en.md @@ -0,0 +1,65 @@ +## Introduction + +**n8n** is a scalable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, enabling self-hosting and allowing you to add your own custom functions, logic, and applications. Its node-based approach makes it highly versatile, allowing you to connect anything to everything. + +**This version includes Chinese localization package**, displaying the interface in Chinese after installation, providing a better user experience for Chinese users. The localization files are sourced from the open-source project [n8n-i18n-chinese](https://github.com/other-blowsnow/n8n-i18n-chinese). + +![](https://cdn.jsdelivr.net/gh/xiaoY233/PicList@main/public/assets/n8n-zh.png) + +![](https://img.shields.io/badge/Copyright-arch3rPro-ff9800?style=flat&logo=github&logoColor=white) + +## Features + +- **Workflow Automation**: Create automated workflows through a visual interface, connecting various apps and services. +- **Supports Multiple Applications**: Offers a wide range of integration nodes for apps and services like Google Sheets, Slack, GitHub, Twitter, and more. +- **Flexible Triggers and Actions**: Supports event-based triggers and various actions, enabling workflows to respond to specific events and perform related tasks. +- **Conditions and Loops**: Add conditional logic and loops to workflows to handle more complex processes. +- **Custom Code Execution**: Incorporate custom JavaScript code into workflows to implement advanced logic and processing. +- **Self-Hosting**: Host n8n on local or cloud servers to ensure data security and privacy. +- **Version Control**: Export workflows as JSON files for version control and backups. + +## Chinese Localization + +This version includes integrated Chinese localization package with the following features: + +- **Automatic Localization**: Automatically downloads the corresponding version's Chinese language pack during installation +- **Interface Localization**: Complete Web interface displayed in Chinese +- **Node Translation**: All workflow nodes and properties have Chinese translations +- **Fallback Mechanism**: If localization files fail to download, it automatically falls back to English version + +### Custom Script Execution Instructions + +To implement localization functionality, this application includes the following custom scripts: + +#### Configuration File Locations +- Localization files storage location: `./editor-ui/` directory +- Script files location: `./scripts/` directory + +#### Replacement Steps +1. **Initialization Script** (`init.sh`): Executed during application installation + - Automatically downloads the corresponding version's localized UI files + - Extracts and deploys to the specified directory + - Provides warnings and continues with English version if download fails + +2. **Upgrade Script** (`upgrade.sh`): Executed during application upgrade + - Cleans up old version localization files + - Re-downloads new version localization files + +3. **Uninstall Script** (`uninstall.sh`): Executed after application uninstallation + - Cleans up all localization-related files + +#### Operation Examples +After application installation, you can verify if localization is working by: +1. Accessing the n8n Web interface +2. The interface should display in Chinese +3. If displayed in English, check container logs for localization file download errors +4. If permission errors (EACCES) occur, the initialization script will automatically set correct directory permissions + +#### Notes +- Localization files are sourced from the open-source project [n8n-i18n-chinese](https://github.com/other-blowsnow/n8n-i18n-chinese) +- Localization file versions must strictly correspond to n8n versions +- To replace with custom localization files, you can replace files in the `./editor-ui/` directory +- Initial installation requires network connection to download localization files +- Container needs permissions to download files (wget or curl) +- Initialization script automatically sets data directory permissions to resolve file write permission issues +- Container runs with UID 1000 to ensure proper data directory access diff --git a/apps/n8n-zh/data.yml b/apps/n8n-zh/data.yml new file mode 100644 index 0000000..36f0e4c --- /dev/null +++ b/apps/n8n-zh/data.yml @@ -0,0 +1,32 @@ +name: n8n-zh +tags: + - AI +title: n8n汉化版,具有原生 AI 能力的 Fair-code 工作流自动化平台 +description: n8n汉化版,具有原生 AI 能力的 Fair-code 工作流自动化平台 +additionalProperties: + key: n8n-zh + name: n8n-zh + tags: + - AI + shortDescZh: n8n汉化版,具有原生 AI 能力的 Fair-code 工作流自动化平台 + shortDescEn: Fair-code workflow automation platform with native AI capabilities + description: + en: Fair-code workflow automation platform with native AI capabilities + ja: フェアコードのワークフロー自動化プラットフォーム、ネイティブAI機能を備えています + ms: Platform automasi aliran kerja kod adil dengan keupayaan AI asli + pt-br: Plataforma de automação de fluxo de trabalho com código justo e recursos nativos de IA + ru: Платформа автоматизации рабочих процессов с открытым исходным кодом и встроенными возможностями ИИ + ko: 공정 코드 워크플로 자동화 플랫폼, 네이티브 AI 기능 제공 + zh-Hant: 具備原生 AI 功能的 Fair-code 工作流程自動化平台 + zh: n8n汉化版,具有原生 AI 能力的 Fair-code 工作流自动化平台 + type: website + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://n8n.io/ + github: https://github.com/n8n-io/n8n + document: https://docs.n8n.io/ + memoryRequired: 1024 + architectures: + - amd64 + - arm64 diff --git a/apps/n8n-zh/logo.png b/apps/n8n-zh/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..995eab4c1475583e3f46915542c068e6697a4667 GIT binary patch literal 2329 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 G<9`88d52a2 literal 0 HcmV?d00001