参与SimpleUI开源项目:KOReader插件Bug反馈、翻译与代码PR的完整路径
【免费下载链接】simpleui.kopluginA highly customizable UI plugin for KOReader that features a home screen, bottom navigation bar, top bar and desktop modules/widgets.项目地址https://gitcode.com/gh_mirrors/si/simpleui.koplugin点击查看免费下载SimpleUI 是一款为 KOReader 电子书阅读器打造的高度可定制 UI 插件专属主屏、底部导航栏、顶部状态栏和丰富的桌面小组件让你一眼看到在读书籍、阅读统计与书架。这篇指南带你走通参与 SimpleUI 开源项目的完整路径——从提交 Bug 反馈、贡献语言翻译到发出你的第一个代码 Pull RequestPR每一步都附上了对应的文件位置。 先认识项目轻量、无构建步骤的 Lua 插件SimpleUI 是标准 KOReader 插件用 Lua 编写没有构建系统、不需要编译源码直接运行——这正是它对新贡献者友好的原因。项目由以下几类贡献方式构成难度从低到高类型参与方式所需技能 Bug 报告提交 Issue 描述问题无 功能建议提交 Issue 描述想法无 翻译编辑locale/下的.po文件双语能力 代码修改Fork → 分支 → PRLua 基础 文档完善 README 或添加注释写作完整规则写在 CONTRIBUTING.md项目总览见 README.md。插件入口是 main.lua插件元信息名称、版本 2.7.5、作者在 _meta.lua。 第一步Bug 反馈——把问题描述清楚发现崩溃或界面异常提交 Issue 时请包含以下 4 项能大幅提高修复速度清晰描述发生了什么、你期望是什么KOReader 版本号菜单 → 帮助 → 关于中可见设备型号如 Kobo Libra 2、Kindle Paperwhite 5复现步骤如能复现如果 Bug 导致崩溃KOReader 目录下的crash.log或reader.log日志非常有用建议随 Issue 附上。 报告前确认你安装的是最新 release 版本的simpleui.koplugin.zip而不是从 Code → Download ZIP 下载的源码包——后者解压出的文件夹名带-main后缀KOReader 无法识别为插件。 零代码贡献给 SimpleUI 增加一种语言翻译不需要任何编程知识是最快上手的路径。翻译文件位于 locale/ 目录目前已有 20 种语言例如简体中文 locale/zh_CN.po、繁体中文 locale/zh_TW.po、日语 locale/ja.po 等。新增语言的 4 步操作复制模板把 locale/simpleui.pot 复制为locale/语言代码.po使用标准 locale 代码如de.po、fr.po、ko.po打开编辑用任意文本编辑器或 Poedit 等 PO 编辑器打开填写头部字段Language-Team、Language、Plural-Forms等逐条翻译为每条msgid填写msgstr然后提交 PR翻译条目形如下面这样你只需填写msgstrmsgid Currently Reading msgstr Aktuell gelesen翻译者必须遵守的 3 条规则永远不要修改msgid——只编辑msgstr保留占位符%d、%s、%%、\n必须原样出现在译文中可以调序不能删除拿不准就留空msgstr留空时会自动回退显示英文原文语言如何被加载的插件启动时由 infra/sui_i18n.lua 读取 KOReader 的语言设置先精确匹配pt_PT.po再回退到语言前缀pt.po最后回退英文——所以你提交的locale/代码.po文件名必须规范。⚠️ 小提示.po文件里一个未转义的引号就可能导致整个语言加载失败、界面退回英文。提交前可运行msgfmt --statistics -o /dev/null locale/code.po自检。 进阶提交你的第一个代码 PR获取代码并搭建测试环境git clone https://gitcode.com/gh_mirrors/si/simpleui.koplugin测试改动无需编译把插件文件夹复制到 KOReader或其模拟器的plugins/目录重启 KOReader 即可加载。KOReader 模拟器是最快的迭代方式省去反复插拔真机。改代码的规范流程Fork 仓库后为每个改动创建独立分支git checkout -b fix/my-bug-description完成修改新增的用户可见文本必须用_()包裹否则无法被翻译-- 正确 UIManager:show(InfoMessage:new{ text _(Something went wrong.) }) -- 错误——不可翻译 UIManager:show(InfoMessage:new{ text Something went wrong. })如果引入了新字符串用提取脚本重新生成翻译模板python3 scripts/extract_strings.py该脚本会扫描全部 Lua 源码中的_()/N_()调用重写 locale/simpleui.pot脚本实现见 scripts/extract_strings.py 5. 写清楚 commit message推送分支并向main发起 PR代码风格要点PR 能否合入的关键跟随周边代码风格优先使用local变量避免污染模块级作用域所有写入G_reader_settings的键必须使用simpleui_或navbar_前缀用户数据文件放在插件目录之外KOReader 设置目录/simpleui/更新插件时才不会丢失需要给 KOReader 类打补丁时务必使用 infra/sui_patches.lua 提供的_acquireHooks/_releaseHooks钩子工具并保证开一本书、关一本书多次循环后布局保持一致——这是该插件最容易出回归问题的地方本地构建发布包可选在项目根目录运行make build会生成simpleui.koplugin.zip。scripts/Makefile 会自动排除开发文件和用户数据目录模拟真实的发布流程适合在 PR 前验证打包完整性。✅ PR 提交前检查清单发出 PR 前逐项对照 CONTRIBUTING.md 中的清单改动在真机或 KOReader 模拟器上验证过所有新 UI 字符串都用_()包裹新字符串已加入 locale/simpleui.pot新设置键使用了simpleui_或navbar_前缀新用户文件存放在DataStorage/simpleui/而非插件目录内commit message 清晰描述了改动内容与原因没有遗留调试日志或注释掉的死代码无论是第一个 Bug Issue、一条翻译字符串还是一段 Lua 补丁每一份贡献都会让 SimpleUI 的主屏、导航栏与阅读体验更好用。打开仓库从上面那张贡献方式表格里挑一行开始吧赞分享【免费下载链接】simpleui.kopluginA highly customizable UI plugin for KOReader that features a home screen, bottom navigation bar, top bar and desktop modules/widgets.项目地址https://gitcode.com/gh_mirrors/si/simpleui.koplugin点击查看免费下载相关推荐Argo Workflows 贡献指南从 Issue 反馈、Bug 分类到 PR 合并的完整参与路径Argo Workflows 贡献指南从 Issue 反馈、Bug 分类到 PR 合并的完整参与路径 Argo Workflows 是一个运行在 Kubern云原生容器编排工作流自动化任务调度后端TiXL 开源贡献指南从文档协作、Bug 反馈到 C 源码开发的完整参与路径TiXL 开源贡献指南从文档协作、Bug 反馈到 C 源码开发的完整参与路径 TiXL 是一个开放、由志愿者维护的开源项目致力于打造实时动态图形创作环境实音视频图形学桌面应用Paseo 贡献指南从 Bug 报告、插件生态到核心 PR 的完整参与路径Paseo 贡献指南从 Bug 报告、插件生态到核心 PR 的完整参与路径 Paseo 是一个在桌面端与移动端编排多个编码 AgentClaude Code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

右侧漂浮组件从定位到封装:fixed、z-index与滚动性能全解

右侧漂浮组件从定位到封装:fixed、z-index与滚动性能全解

简介:资源为前端网页中右侧漂浮在线客服模块的完整实现代码,主要面向网站开发与设计初学者,解决页面需要常驻客服入口、但设计方案与交互相控制难以落地的问题。压缩包内共10个文件,涵盖页面结构(htm)、样式…

2026/10/11 17:25:16 阅读更多 →
门店做小程序商城选择哪家好?不同业态的适配清单完全不一样

门店做小程序商城选择哪家好?不同业态的适配清单完全不一样

2026年,微信小程序日活跃用户达到7.1亿,月活跃用户9.73亿,承接了电商类小程序超七成的交易份额;2026年第一季度小程序市场交易规模约1.2万亿元,全年有望突破3.6万亿元。这个盘子里的主力玩家,正在从线上品牌…

2026/10/11 17:25:16 阅读更多 →
通达信【上涨能量】副图中短阻力一目了然

通达信【上涨能量】副图中短阻力一目了然

N:100;M:1;P:20; MAV:(C*2HL)/4; SK : EMA(MAV,1) - EMA(MAV,40); SD : EMA(SK,5); B:(SK-SD)*N; 短线拉升:IF(B<-20,-20,IF(B>100,100,B)),COLORRED,LINETHICK2; T:(C-LLV(1.02*L,20))/(HHV(H,20)-LLV(L,20))*100; 上涨量能:IF(T>100,100,IF(T<0,0,T)),COLORFF00F…

2026/10/11 17:24:15 阅读更多 →

最新新闻

滑块验证中的UA动态生成与轨迹建模工程实践

滑块验证中的UA动态生成与轨迹建模工程实践

简介&#xff1a;本资源是一份面向Python安全研究与自动化开发者的滑块验证码逆向分析实践案例&#xff0c;聚焦阿里巴巴X82YX5SEC滑块验证机制的识别与模拟突破。内容涵盖核心算法实现、通用滑块处理逻辑及配套客户端环境&#xff0c;适用于Web安全学习、验证码对抗技术研究及…

2026/10/11 20:35:22 阅读更多 →
termite 1.8.4 多系统多架构发布包:安装配置与排错实战

termite 1.8.4 多系统多架构发布包:安装配置与排错实战

简介&#xff1a;Termite 1.8.4 是一套轻量级跨平台远程管理工具包&#xff0c;覆盖 Linux、macOS、Windows 等主流系统&#xff0c;并适配 x86、x64、arm、mips 多种硬件架构。工具整体分为管理端 admin 与客户端 agent&#xff0c;支持跳板机互联、正反向级联和内置 Shell 操…

2026/10/11 20:35:22 阅读更多 →
QT+PaddleOCR打造桌面OCR识别工具:架构与实战避坑指南

QT+PaddleOCR打造桌面OCR识别工具:架构与实战避坑指南

简介&#xff1a;面向需要快速搭建OCR应用界面的Qt开发者与PaddleOCR初学者&#xff0c;这套demo压缩包将源码与发布版本打包在一起&#xff0c;可作为从零开始接触文字识别界面开发的完整示例。压缩包整体大小约454.7MB&#xff0c;源码部分涵盖Qt窗口设计、调用PaddleOCR识别…

2026/10/11 20:35:22 阅读更多 →
中文社区为何一夜开写 SemIf:从 Kev 到 GLiNER,语义判断这波热度有迹可循

中文社区为何一夜开写 SemIf:从 Kev 到 GLiNER,语义判断这波热度有迹可循

中文社区为何一夜开写 SemIf&#xff1a;从 Kev 到 GLiNER&#xff0c;语义判断这波热度有迹可循 【免费下载链接】SemIf-OpenJev Semantic ifs from open models, on a 3090 at home. Independent; not affiliated with Jev or TypeSafe. 项目地址: https://gitcode.com/gh_…

2026/10/11 20:35:22 阅读更多 →
MySQL事务隔离级别实战:脏读、幻读、MVCC与间隙锁全解析

MySQL事务隔离级别实战:脏读、幻读、MVCC与间隙锁全解析

1. 先讲清楚&#xff1a;隔离级别不是“四个等级”&#xff0c;而是“四组权衡”很多人面试被问“MySQL 事务隔离级别有哪几种”&#xff0c;都能背出四个名字&#xff1a;读未提交、读已提交、可重复读、串行化。但真正的难点从来不是背名字&#xff0c;而是搞懂每个级别到底堵…

2026/10/11 20:35:22 阅读更多 →
YashanDB单机部署实操:从环境准备到实例启动的完整指南

YashanDB单机部署实操:从环境准备到实例启动的完整指南

数据库这玩意儿&#xff0c;平时看着没啥存在感&#xff0c;可真到要部署的时候&#xff0c;环境、依赖、权限、端口、内核参数&#xff0c;哪一个拎出来都能把人折腾得没脾气。最近一段时间&#xff0c;因为项目选型&#xff0c;我在几台机器上反复部署过YashanDB——一款国产…

2026/10/11 20:34:21 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →