我正在研究一个转录和翻译文档的过程,该过程结合了Extension:Proofread Page和Extension:Translate。校对页面根据页面状态(扫描上传、转录、校对等)为列表中的每个链接应用不同的背景颜色,我想将其扩展为也适用于翻译。
使用这样的模板更改背景颜色非常简单:
[[page:{{{1|}}}|<span style="background-color:#48d1cc;">{{{2|}}}</span>]]
麻烦在于使其取决于是否存在英文翻译,该翻译将存储在{{PAGENAME}}/en
. 这个#ifexist:
函数解决了这个问题:
{{#ifexist: page:{{{1|}}}/en
| [[page:{{{1|}}}|<span style="background-color:#48d1cc;">{{{2|}}}</span>]]
| [[page:{{{1|}}}|{{{2|}}}]]
}}
但是#ifexist
被归类为“昂贵”的解析器功能,每页限制为 100 个,而我有一些索引超过 700 个链接。
显然,我可以要求在创建翻译时为每个页面手动调用我提到的第一个模板(即在索引中一次替换[[page: ]]
一个{{page| }}
链接),但我更喜欢我的即发即弃的解决方案可以在我最初创建每个索引时使用。
那么有没有
- 一种超越 mediawiki 中昂贵的解析器功能上限的方法?
- 在这种情况下应用条件 css 而不调用的一些技巧
#ifexist
?
或者,我猜,
Extension:Proofread Page 的一个简单技巧可以解决这个问题吗?
MediaWiki:1.19.2
语义 MediaWiki:1.8 beta 1
PHP:5.3.10-1ubuntu3.6 (apache2handler)
MySQL:5.5.29-0ubuntu0.12.04.2