这是什么?
本页面试图制作一个不完全同于中分现行的翻译预定系统的超简易版“翻译预定”系统,其希望达成的目标为:
- 所有代码和页面都托管在主站(指创作和文章发表的站点)上,而不需要另建一个技术站。
- 只使用wikidot原生的Listpages(尽管wikidot被认为不靠谱),不使用JavaScript或者其它自动脚本,或者仅用最少的脚本。如果要用,脚本代码也会托管在wikidot站点上,而不需要租用云服务器,不需要建立一个第三方站点(非wikidot,比如中分的transres网站)。
“翻译预定”功能本身应该实现的最少功能是:
- 防止翻译撞车。实现方法为,在用户新建一个非原创页面(url同于其它语言分部的文)时,在_404界面提示用户,这篇文章是否已经被别人预定翻译,避免在不知情的情况下重复劳动。
- _404界面需要传达的最少信息为:谁预定的、什么时候预定的。这两个信息可以通过listpage显示出来。
中分现行的翻译预定系统还能实现的其它功能有:
- 对一个用户同时预定的最多文章数加以限制(最多2篇),并且显示出这一个用户预定了几篇文章。
- 通过脚本,把过期的翻译预定自动移动到outdate:分类下,不再在404界面提供信息。
- 显示这一个用户有几篇翻译预定已过期。
- 删除长时间过期的翻译预定——并且通过爬虫在另外一个网站归档。
- 在翻译预定首页显示出目前所有人预定的翻译,并且支持以语言分部排序、日期排序等等,并且按照不同语言分部在链接旁显示一个小旗子(利用ifexpr获取页面内容里的branch参数,链接不同文件名的.png图片)。
有听说后室wiki采取的翻译预定系统也是在站内的,另外日分采用的翻译预定甚至是用Google Form,所以翻译预定的实现可以用很多种方式。然而,考虑到wikidot加载慢以及翻找信息的成本,在_404页面显示翻译归属信息仍然是最好的方式。
但,因为中分是使用wikidot自带的form表格收集信息,并且利用托管在git上(transres网站)的js爬虫抓取技术站的翻译预定信息并显示出来,理论上中分版的系统鲁棒性更强,而且即使未来想要扩展其它功能也有很高的上限。比如甚至可以抓取原页面字数、原作者信息等等。
而因为本页面限制在站内实现,这个项目只追求实现最少的必要的翻译预定功能,并且试一下这是否可行。同时,这种系统的逻辑也不仅仅可以用在翻译预定上。
理论上,最简单的方法是:用户只需要在reserve:分类下新建一个url后缀与欲翻译的文章相同的页面,并且填入任何信息都可以,reserve:分类下的页面将和fragment一样,视为网站里的碎片信息,不展示在原创作品等等栏目中,仅在本页面内集中展示。
然后,在_404页面植入一个listpage模块,反向查询用户想建立的页面网址后缀,在前面补上reserve:,查询有没有这个页面。
另外一种实现方式可能是,获取页面内的原文地址数据:%%form_raw{page}%%。
如果没有,则显示“没有查询到本页的翻译预定信息”;如果有,则显示这个页面的创建者(%%created_by%%),还有创建日期(%%created_at%%)。
而本页面将作为一个中心页,显示出目前所有翻译预定,还有用户自己的预定页,以及其数量。延期、删除等功能也可以在网站论坛翻译板块或者单页评论区声明。而其它功能——比如超期就自动移动到过期分类,不采用bot是不可能实现的,本项目暂时不做考虑。
权限设置
- 所有网站成员都可以在reserve分类下建立页面,但只有页面创建者和站务可以修改、删除。
- 页面选项可以对所有人开放,方便查看源代码。
- 不能上传附件。
- 评分功能对翻译预定没有必要,但是似乎不能单独针对这一个分类关闭评分功能。
- 单页评论区则无所谓
- 而本中心页和模板页应该对普通成员锁定,防止破坏。
- 网站首页“最近新增的页面”的listpage模块应该把category参数设置成category="-reserved",不显示预定页。
空翻译预定的_404页面是reserve:_404。
测试用看能不能显示出来预定信息的_404页面是_404。
翻译预定模板页面是reserve:_template。
抓取信息的组件是page-query。
你的翻译预定
当前全部翻译预定
| 预定译者 | 原文链接 | 预定开始日期 | 操作 |
|---|






