From 1e57f31fc0855ca3589c2f31a527fee2af5d7d43 Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Thu, 9 Jan 2025 12:40:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=BA=94=E7=94=A8=20WebLate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- apps/weblate/5.9.2.1/data.yml | 230 ++++++++++++++++++++++ apps/weblate/5.9.2.1/docker-compose.yml | 34 ++++ apps/weblate/5.9.2.1/envs/default.env | 2 + apps/weblate/5.9.2.1/envs/global.env | 2 + apps/weblate/5.9.2.1/scripts/init.sh | 17 ++ apps/weblate/5.9.2.1/scripts/uninstall.sh | 10 + apps/weblate/5.9.2.1/scripts/upgrade.sh | 17 ++ apps/weblate/README.md | 60 ++++++ apps/weblate/data.yml | 14 ++ apps/weblate/logo.png | Bin 0 -> 25678 bytes 10 files changed, 386 insertions(+) create mode 100644 apps/weblate/5.9.2.1/data.yml create mode 100644 apps/weblate/5.9.2.1/docker-compose.yml create mode 100644 apps/weblate/5.9.2.1/envs/default.env create mode 100644 apps/weblate/5.9.2.1/envs/global.env create mode 100644 apps/weblate/5.9.2.1/scripts/init.sh create mode 100644 apps/weblate/5.9.2.1/scripts/uninstall.sh create mode 100644 apps/weblate/5.9.2.1/scripts/upgrade.sh create mode 100644 apps/weblate/README.md create mode 100644 apps/weblate/data.yml create mode 100644 apps/weblate/logo.png diff --git a/apps/weblate/5.9.2.1/data.yml b/apps/weblate/5.9.2.1/data.yml new file mode 100644 index 00000000..b4ecbde2 --- /dev/null +++ b/apps/weblate/5.9.2.1/data.yml @@ -0,0 +1,230 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_POSTGRES_SERVICE + required: true + type: service + default: postgresql + envKey: PANEL_POSTGRES_TYPE + labelZh: Postgres 服务 (前置检查) + labelEn: Postgres Service (Pre-check) + required: true + type: apps + values: + - label: PostgreSQL + value: postgresql + - child: + default: "" + envKey: PANEL_REDIS_SERVICE + required: true + type: service + default: redis + envKey: PANEL_REDIS_TYPE + labelZh: Redis 服务 (前置检查) + labelEn: Redis Service (Pre-check) + required: true + type: apps + values: + - label: Redis + value: redis + - default: "/home/weblate" + edit: true + envKey: WEBLATE_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "Weblate admin" + edit: true + envKey: WEBLATE_ADMIN_NAME + labelZh: 管理员名称 + labelEn: Admin name + required: true + type: text + - default: "weblate@example.com" + edit: true + envKey: WEBLATE_ADMIN_EMAIL + labelZh: 管理员邮箱 + labelEn: Admin email + required: true + type: text + - default: "" + edit: true + envKey: WEBLATE_ADMIN_PASSWORD + labelZh: 管理员密码 + labelEn: Admin password + required: true + type: password + - default: "" + edit: true + envKey: WEBLATE_SITE_DOMAIN + labelZh: 站点域名 + labelEn: Site domain + required: true + type: text + - default: "Weblate 翻译平台" + edit: true + envKey: WEBLATE_SITE_TITLE + labelZh: 站点标题 + labelEn: Site title + required: true + type: text + - default: "1" + edit: true + envKey: WEBLATE_REGISTRATION_OPEN + labelZh: 是否开放注册 + labelEn: Registration open + required: true + type: select + values: + - label: 允许注册 + value: "1" + - label: 禁止注册 + value: "0" + - default: "127.0.0.1" + edit: true + envKey: POSTGRES_HOST + labelZh: 数据库 主机地址 + labelEn: Database Host + required: true + type: text + - default: 5432 + edit: true + envKey: POSTGRES_PORT + labelZh: 数据库 端口 + labelEn: Database Port + required: true + rule: paramPort + type: number + - default: "weblate" + edit: true + envKey: POSTGRES_DB + labelZh: 数据库 名称 + labelEn: Database Name + required: true + rule: paramCommon + type: text + - default: "weblate" + edit: true + envKey: POSTGRES_USER + labelZh: 数据库 用户名 + labelEn: Database Username + required: true + type: text + - default: "" + edit: true + envKey: POSTGRES_PASSWORD + labelZh: 数据库 密码 + labelEn: Database Password + random: true + required: true + rule: paramComplexity + type: password + - default: "127.0.0.1" + edit: true + envKey: REDIS_HOST + labelZh: Redis 主机 + labelEn: Redis Host + required: true + type: text + - default: 6379 + edit: true + envKey: REDIS_PORT + labelZh: Redis 端口 + labelEn: Redis Port + required: true + rule: paramPort + type: number + - default: 0 + edit: true + envKey: REDIS_DB + labelZh: Redis 索引 (0-20) + labelEn: Redis Index (0-20) + required: true + type: number + - default: "" + edit: true + envKey: REDIS_PASSWORD + labelZh: Redis 密码 + labelEn: Redis Password + required: false + type: password + - default: "" + edit: true + envKey: WEBLATE_SERVER_EMAIL + labelZh: 错误信息通知邮箱 + labelEn: Error notification email + required: true + type: text + - default: "" + edit: true + envKey: WEBLATE_DEFAULT_FROM_EMAIL + labelZh: 默认发件邮箱 + labelEn: Default sender email + required: true + type: text + - default: "smtp.gmail.com" + edit: true + envKey: WEBLATE_EMAIL_HOST + labelZh: 电子邮件服务器主机名 + labelEn: Email server hostname + required: true + type: text + - default: 465 + edit: true + envKey: WEBLATE_EMAIL_PORT + labelZh: 电子邮件服务器端口 (465/SSL 587/TLS) + labelEn: Email server port (465/SSL 587/TLS) + required: true + type: number + - default: "" + edit: true + envKey: WEBLATE_EMAIL_HOST_USER + labelZh: 电子邮件服务器用户名 + labelEn: Email server username + required: true + type: text + - default: "" + edit: true + envKey: WEBLATE_EMAIL_HOST_PASSWORD + labelZh: 电子邮件服务器密码 + labelEn: Email server password + required: true + type: password + - default: "" + edit: true + envKey: GET_HELP_URL + labelZh: 帮助文档链接 + labelEn: Help document link + required: false + type: text + - default: "" + edit: true + envKey: STATUS_URL + labelZh: 服务状态链接 + labelEn: Service status link + required: false + type: text + - default: "" + edit: true + envKey: LEGAL_URL + labelZh: 法律声明链接 + labelEn: Legal statement link + required: false + type: text + - default: "" + edit: true + envKey: PRIVACY_URL + labelZh: 隐私政策链接 + labelEn: Privacy policy link + required: false + type: text diff --git a/apps/weblate/5.9.2.1/docker-compose.yml b/apps/weblate/5.9.2.1/docker-compose.yml new file mode 100644 index 00000000..9e9c82ed --- /dev/null +++ b/apps/weblate/5.9.2.1/docker-compose.yml @@ -0,0 +1,34 @@ +networks: + 1panel-network: + external: true + +services: + weblate: + image: weblate/weblate:5.9.2.1 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + tmpfs: + - /run + - /tmp + read_only: true + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${WEBLATE_ROOT_PATH}/data:/app/data + - ${WEBLATE_ROOT_PATH}/cache:/app/cache + environment: + - TZ=Asia/Shanghai + - WEBLATE_TIME_ZONE=Asia/Shanghai + - WEBLATE_WORKERS=2 + - WEBLATE_DEBUG=0 + - WEBLATE_LOGLEVEL=INFO + - WEBLATE_ALLOWED_HOSTS=* + - POSTGRES_DATABASE=weblate + - CLIENT_MAX_BODY_SIZE=200M diff --git a/apps/weblate/5.9.2.1/envs/default.env b/apps/weblate/5.9.2.1/envs/default.env new file mode 100644 index 00000000..cd05f46e --- /dev/null +++ b/apps/weblate/5.9.2.1/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/weblate/5.9.2.1/envs/global.env b/apps/weblate/5.9.2.1/envs/global.env new file mode 100644 index 00000000..e10989fe --- /dev/null +++ b/apps/weblate/5.9.2.1/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/weblate/5.9.2.1/scripts/init.sh b/apps/weblate/5.9.2.1/scripts/init.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/apps/weblate/5.9.2.1/scripts/init.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/weblate/5.9.2.1/scripts/uninstall.sh b/apps/weblate/5.9.2.1/scripts/uninstall.sh new file mode 100644 index 00000000..c86c4fbc --- /dev/null +++ b/apps/weblate/5.9.2.1/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/weblate/5.9.2.1/scripts/upgrade.sh b/apps/weblate/5.9.2.1/scripts/upgrade.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/apps/weblate/5.9.2.1/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/weblate/README.md b/apps/weblate/README.md new file mode 100644 index 00000000..354e5565 --- /dev/null +++ b/apps/weblate/README.md @@ -0,0 +1,60 @@ +# Weblate + +高度集成了版本控制功能的web-based翻译工具 + +![Weblate](https://file.lifebus.top/imgs/weblate_cover.png) + +作为一款功能强大的计算机辅助翻译工具,Weblate 节省了开发者和译者的时间。让您的用户更快乐! + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 硬件说明 + +> 推荐的最小内存为 4 GB + ++ 3 GB 的内存 ++ 2 个 CPU 核心 ++ 1 GB 的存储空间 + +## 特性 + ++ 持续本地化 + +自动本地化工作流能紧密贴合您的项目开发。 + ++ 质量检查 + +可定制的质量检查有助于提高翻译质量。 + ++ 署名 + +所有译者的贡献信息都会妥善记录在版本控制系统中。 + ++ 访问控制 + +调整访问权限以适应您的环境。 + ++ 通知 + +译者能收到有新条目需要翻译或其他事件发生的通知。 + ++ 集成 API + +将 Weblate 与第三方服务集成。 + ++ 多种文件格式 + +使用任何常见的文件本地化格式,如 gettext、JSON、XLIFF 或资源字符串等。 + ++ 分支支持 + +通过自动将它们推到不同的分支来处理不同的翻译版本。 + ++ 翻译上下文 + +描述、附近字符串、图片、相关源代码和术语表条目 — 每条字符串均可拥有。 + + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/weblate/data.yml b/apps/weblate/data.yml new file mode 100644 index 00000000..aa6caa89 --- /dev/null +++ b/apps/weblate/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: weblate + name: Weblate + tags: + - WebSite + - Local + shortDescZh: 高度集成了版本控制功能的web-based翻译工具 + shortDescEn: A highly integrated web-based translation tool with version control functions + type: website + crossVersionUpdate: true + limit: 0 + website: https://weblate.org/ + github: https://weblate.org/ + document: https://docs.weblate.org/ diff --git a/apps/weblate/logo.png b/apps/weblate/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b11b4b507ea92250611ba8d566a314c864daca09 GIT binary patch literal 25678 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