为 Shelly 贡献你的力量:本地化、社区参与与开发者入门指南

📅 发布时间:2026/10/13 13:29:54
为 Shelly 贡献你的力量:本地化、社区参与与开发者入门指南
【免费下载链接】Shelly-ALPMPacman alternative for ArchLinux, designed with you in mind.项目地址https://gitcode.com/gh_mirrors/sh/Shelly-ALPM点击查看免费下载Shelly 是一个专为 Arch Linux 打造的现代化、用户友好的包管理器pacman 替代方案。这份 Shelly 贡献指南将带你走完 3 条参与路径本地化翻译、社区协作与从零构建开发环境无论你是否会写代码都能快速上手为 Shelly 做贡献。项目速览Shelly 是什么Shelly 是 Arch Linux 上的下一代包管理工具提供 GUI 与 CLI 双形态核心特性包括️图形界面shelly-ui基于 GTK4 的 Wayland 原生体验现代 CLIshelly面向自动化与脚本如shelly -Is firefox --neededAUR 支持内置 PKGBUILD 构建与安全审查流程可选 Flatpak / AppImage 管理与原生包共存项目以 Zig 为主语言按组件拆分在独立目录中完整架构说明见 CONTRIBUTING.md。本地化贡献把 Shelly 翻译成你的语言本地化是门槛最低、价值最高的贡献方式。Shelly 的 UI 已覆盖 17 种语言含简体中文托盘通知服务覆盖 13 种语言。找到语言文件po 目录两个组件各自维护独立的 gettext 翻译目录组件目录GTK 图形界面Shelly.Ui.Gtk/po/托盘通知服务Shelly.Notifications.Zig/po/每个语言.po文件就是翻译目录例如 Shelly.Ui.Gtk/po/zh_CN.po基本结构如下msgid Enable AUR? msgstr 启用 AUR用 update-translations.sh 更新与合并每个组件都提供了本地化维护脚本可一键提取字符串、合并已有翻译并清理过期条目cd Shelly.Ui.Gtk ./update-translations.sh # 提取 合并所有已有 .po ./update-translations.sh --new es # 为新语言创建 po/es.po托盘服务同理脚本位于 Shelly.Notifications.Zig/update-translations.shcd Shelly.Notifications.Zig ./update-translations.sh --new xx --compile # 新建语言并编译 .mo脚本会自动运行msgfmt --statistics报告每种语言的翻译完成率方便你挑选待翻译条目。翻译 .desktop 菜单项应用菜单的文案不在 po 目录中而是写在桌面条目文件里com.shellyorg.shelly.desktopcom.shellyorg.shelly-notifications.desktop在英文行旁添加Name[xx]、Comment[xx]、Keywords[xx]即可xx为语言代码。注意Keywords 中保留英文关键词保证两种语言下搜索都能命中。提交前用desktop-file-validate校验两个.desktop文件。验证并编译 .mo 文件构建并启动应用确认 UI 元素均已翻译、无意外回退到英文托盘服务可用--compile将.po编译为.mo再通过LANGlang.UTF-8 TEXTDOMAINDIR$(pwd)/build/locale ./zig-out/bin/shelly-notifications本地验证验证通过后提交 Pull Request 即可。开发者入门从零构建 Shelly环境准备Arch Linux或 Arch 系发行版zig 0.16.0构建核心组件vala、libalpm由 pacman 提供gettext本地化工具链克隆仓库并构建git clone https://gitcode.com/gh_mirrors/sh/Shelly-ALPM.git cd Shelly-ALPM各组件可独立构建与测试(cd Shelly.Flatpak.Backend zig build) (cd Shelly.Http zig build) (cd Shelly.PackageManager zig build) (cd Shelly.Cli.Zig zig build) (cd Shelly.Ui.Gtk zig build)一键验证可选 Flatpak 后端边界、CLI 与核心冒烟测试scripts/test-flatpak-separation.sh运行测试(cd Shelly.PackageManager zig build test) (cd Shelly.Cli.Zig zig build test) (cd Shelly.Flatpak.Backend zig build test abi-test integration-test)了解项目结构各组件如何协作理解架构是深度贡献的前提。Shelly 由若干相互协作的项目组成组件职责Shelly.Ui.GtkGTK4 图形前端Shelly.Cli.Zig终端命令行工具UI 通过它执行特权操作Shelly.PackageManager核心库libalpm/RLPM/AUR/AppImage 与 Flatpak 中立门面Shelly.Flatpak.Backend可选的 ABI 版本化 Flatpak 后端共享库Shelly.Notifications.Zig托盘服务与更新通知Shelly.Http独立 HTTP 客户端与兼容 TLS 实现关键规则UI 绝不直接调用 PackageManager 库所有安装、移除、升级操作都经由 CLI 完成。Flatpak 相关贡献的 ABI 版本升级与所有权规则详见 docs/flatpak-backend-abi.mdlibalpm 与 RLPM 双后端切换指南见 docs/native-package-backends.md。提交前的检查清单✅ 新特性在对应测试项目中补充测试✅ 遵循各组件既有代码风格✅ 功能变更时同步更新文档✅ 使用清晰、可描述的提交信息✅ 涉及 Flatpak 变更时运行scripts/check-flatpak-separation.sh✅ 手动验证项可参考 MANUAL_TESTING.md 的检查清单✅ 修改 PKGBUILD 后为PKGBUILD、PKGBUILD-bin、PKGBUILD-git运行updpkgsums见 PKGBUILD-git安全与社区协作报告安全漏洞请遵循 SECURITY.md 的流程有开发问题可提交 issue本地构建细节参考各目录 README 与docs/下专题文档如 docs/isolated-builds.md、docs/shellybuild.conf.md新手建议路径先挑一个po/目录翻译 5 条字符串提交第一个 PR再逐步尝试构建与测试最终深入Shelly.PackageManager核心逻辑——这就是完整的社区贡献成长路线。赞分享【免费下载链接】Shelly-ALPMPacman alternative for ArchLinux, designed with you in mind.项目地址https://gitcode.com/gh_mirrors/sh/Shelly-ALPM点击查看免费下载相关推荐dockersh核心功能详解10个关键配置选项让您完全掌控容器环境dockersh核心功能详解10个关键配置选项让您完全掌控容器环境 dockersh是一款能够将用户置于独立Docker容器中的shell工具通过灵活的配置运维SmartTubeLegacy社区贡献指南如何参与项目开发与本地化SmartTubeLegacy社区贡献指南如何参与项目开发与本地化 SmartTubeLegacy是一款专为智能电视和机顶盒设计的YouTube客户端应用支如何高效使用Terax文件浏览器模糊搜索、键盘导航与拖拽实战教程如何高效使用Terax文件浏览器模糊搜索、键盘导航与拖拽实战教程 Terax 是一款仅 7MB 的轻量级终端优先 AI 原生开发环境而它的 文件浏览器 是日开发工具AI 应用代码编辑器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考