[关联 #809 / 派生版 Chrome 2.5.6] README 翻译异常:仓库识别备用判断及本地处理结果
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- javascript
- Ambito
- developer-experience
Direzione di ricerca
The report identifies chrome/content.js in a separate derived extension and describes a possible README root replacement during an asynchronous translation request. Start by comparing that fork’s detectPageType() and translation writeback, cache, and success logging with this repository’s code; reproduce the reported cases before deciding whether they apply here. Done means confirming a problem in this repository and defining a reproducible fix; the reported patch and simulations are not evidence that the upstream userscript has the same defect.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
问题/建议
已阅读 FAQ 和相关议题 #809。本次补充派生扩展环境下的观察及本地处理方式,供交叉排查。
项目归属:我使用的是 MaydayV/github-chinese 的 Chrome 扩展 2.5.6,并非本仓库的 Tampermonkey 脚本。 README 的 API 正文翻译、Token 记录等是派生版功能;下述派生版问题不直接认定为上游缺陷。如应在派生仓库处理,请告知。
原版现象与页面识别检查
Windows + Chrome,开启 README 翻译并配置 DeepSeek,API 连通性测试正常;正文不自动翻译,开启记录后未见记录,卸载重装无效。检查期间部分导航已汉化。
借助 Codex 检查三个页面(heygen-com/hyperframes、MadsLorentzen/ai-job-search、maboloshi/github-chinese),浏览器 DOM 中均未找到 analytics-location,但仍存在 octolytics-dimension-repository_nwo。匿名直接获取页面响应时,三者又均包含带 data-turbo-transient="true" 的 analytics-location。这与 #809 的识别风险相关,但我这里刷新后也曾看到标记缺失;尚未捕获它被移除的过程,不断言与 #809 的触发路径完全相同。
我已采用的本地处理方式
以派生仓库 chrome 分支提交 af04b753fa9c1ea6064abcd180a1ae654a833d1c(2.5.6)为基础,在 chrome/content.js 的 detectPageType() 中补充仓库识别。保留原来的 analytics-location 判断,同时要求备用元数据与当前 URL 匹配:
const repositoryNwo = document.head
.querySelector('meta[name="octolytics-dimension-repository_nwo"]')
?.content?.trim() || '';
const pathRepository = pathname.split('/').slice(1, 3).join('/');
const hasRepositoryMetadata = hostname === 'github.com'
&& /^[^/]+\/[^/]+$/.test(repositoryNwo)
&& repositoryNwo.toLowerCase() === pathRepository.toLowerCase();
const isRepository = /\/<user-name>\/<repo-name>/.test(metaLocation)
|| hasRepositoryMetadata;
加载本地修复版时,将显示版本改为 2.5.6.1 以便区分,停用商店原版(未同时运行两版),通过 Chrome“加载已解压的扩展程序”加载,再重新配置 API、开启 README 翻译。未增加扩展权限,未修改 API 请求、译文写回、缓存或日志逻辑。
原版在缺少 analytics-location 的隔离测试中无法识别仓库首页、tree/blob;应用补丁后新回归测试与既有测试共 33 项通过,另通过 README 专项及语法检查。这些是代码测试,不代表真实翻译全过程已经稳定。
效果与限制:正文曾恢复中文,但随后刷新又出现英文,因此这个处理方式只解决一个识别条件,不能作为完整修复。
后续异常及尚未应用的建议
本地补丁版的日志出现 hyperframes 消耗 13,025 Tokens、已翻译节点 0、重试未翻译 0、剩余未翻译 0,却标记成功;检查时正文仍英文。另一仓库已翻译 316 个节点、剩余 43,标记部分完成。
对派生版原有实际函数做隔离模拟(假 DOM/假 API,非现场抓取),若请求期间整个 README 根元素被替换,旧根脱离文档但保留英文,可复现“已译 0、重试 0、剩余 0、success、可见正文仍英文”。相反,根正常连接而接口返回原文时,会记录 partial 和非零剩余。
候选解释:写回跳过 isConnected=false 的旧节点,剩余统计也过滤它们;旧根未被重新定位,可能误记成功并将旧英文缓存。上述 5 项对照测试通过,但尚未在浏览器中直接捕获根替换过程。
建议派生版在每次异步返回后及缓存/记录成功前校验根元素仍连接、仍是当前 README,并核对当前仓库;失效时停止本轮并安排重新定位,避免成功误报与旧英文缓存。此建议尚未应用到我的本地包。
以上排查和补丁借助 Codex 完成。希望协助确认页面识别的共同兼容问题,以及哪些部分应转交派生项目;不将模拟结果当作现场唯一根因,也不推断所有用户都会受影响。感谢维护!
步骤
- 在 Windows 的 Chrome 安装 MaydayV/github-chinese 商店扩展 2.5.6。
- 配置 DeepSeek API,保存并测试连通性,开启 README 翻译和记录。
- 打开 https://github.com/heygen-com/hyperframes ,观察正文与翻译记录;本机未自动翻译,重装无效。
- 按正文提供的备用识别代码修改并加载本地版,停用原版,重新配置翻译。
- 正文曾变成中文,随后刷新再次出现英文及“成功但 0 节点”的日志。
另一测试页面:https://github.com/MadsLorentzen/ai-job-search 。以上为本机观察步骤,不保证其他环境必现。
预期
仓库识别不应只依赖可能缺失的 analytics-location;README 翻译应作用于当前可见的正文。若页面在等待接口时替换了正文,不应把未写入译文的结果记录为成功或缓存为译文。
实际
原版 2.5.6:接口测试正常,但 README 不自动翻译,重装无效。
以下是仅改仓库识别后的本地版 2.5.6.1 记录(不是未修改商店版的日志):
- 2026-10-19 22:35:43(UTC+8),heygen-com/hyperframes,DeepSeek,13,025 Tokens,成功,已翻译节点 0,重试未翻译 0,剩余未翻译 0;页面检查仍为英文。
- 2026-10-19 22:35:40(UTC+8),madslorentzen/ai-job-search,DeepSeek,27,843 Tokens,部分完成,已翻译节点 316,重试未翻译 43,剩余未翻译 43。
剩余 43 个节点的计数本身不足以判定是接口问题或专有名词等文本导致。
附件
具体修复代码、观测日志和测试边界已写入正文。未附带 API Key 或私有配置。
浏览器名称
Google Chrome
浏览器版本
Google Chrome(Windows;本次未采集完整版本号)
脚本管理器名称
Others
脚本管理器版本
不适用:直接安装的 Chrome 扩展;后续通过开发者模式加载本地修复版,未使用 Tampermonkey。
插件版本
MaydayV/github-chinese Chrome 扩展 2.5.6;本地仓库识别补丁版 2.5.6.1(非本仓库油猴脚本版本)
- Lingua principale
- JavaScript
- Stelle
- 35.1k
- Fork
- 2k
- Merge medio
- 2g 1h
- PR unite (30g)
- 9
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di maboloshi/github-chinese
-
添加报告文档问题的模板Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
maboloshi/github-chinese#823 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 44/100
maboloshi/github-chinese#809 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
项目首页除了顶栏几乎没有翻译Apertabug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
maboloshi/github-chinese#803 · 1 commento · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
一些没有翻译完整的页面/句子(大部分是团队的设置界面)Aperta请求翻译
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
maboloshi/github-chinese#802 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
纯化语种Forse già presa @PtJade-Ceramic l’ha presa 103 giorni fa. Apertabug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 35/100
maboloshi/github-chinese#799 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di maboloshi/github-chinese
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
postcss/postcss.org#302 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ImranR98/apps.obtainium.imranr.dev#2000 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
routing: the tray panel's stage stands still with motion reduced while a request is in flightAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
microsoft/monaco-editor#5577 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Ebony-Vinyl/dsh-our-free-model#785 ·
I maintainer di solito rispondono entro 1 giorno