You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSL文内引用术语本地化失效问题技术问询

CSL文内引用et-al本地化失效问题排查与解决

核心问题定位

当前问题是CSL未根据输出语言切换et-al本地化术语,无论Zotero中文献的语言字段如何设置,始终使用单一语言的et-al文本。本质原因是CSL的本地化术语加载逻辑依赖全局输出语言设置,而非单篇文献的语言字段;同时需确保样式配置正确关联locale术语。

排查与解决步骤

1. 修正Zotero输出语言设置

CSL样式的本地化术语是根据Zotero的输出语言加载,而非单篇文献的语言字段。操作步骤:

  • 打开Zotero首选项 → 「引用」标签页 → 「样式」列表
  • 选中当前使用的CSL样式,点击「设置」按钮
  • 在弹出窗口中,将「输出语言」设置为目标语言(如英文选English,法文选French)
  • 确定后重新生成引用,此时应加载对应locale的et-al术语

2. 优化CSL样式的配置

确保<names>元素正确关联locale的et-al术语,检查并补充以下配置:
在author_short宏的<names>标签中,添加与citation一致的et-al属性,确保术语调用逻辑生效:

<macro name="author_short">
  <names variable="author" et-al-min="4" et-al-use-first="1">
    <name form="short" name-as-sort-order="all" sort-separator=" " delimiter=", " delimiter-precedes-last="always"/>
    <substitute>
      <text variable="title"/>
    </substitute>
  </names>
</macro>

3. (进阶)按文献语言切换et-al术语

若需根据单篇文献的语言字段自动切换et-al术语(而非全局输出语言),需在CSL样式中添加条件判断逻辑:

<macro name="author_short_with_lang">
  <names variable="author" et-al-min="4" et-al-use-first="1">
    <name form="short" name-as-sort-order="all" sort-separator=" " delimiter=", " delimiter-precedes-last="always"/>
    <et-al term=""/> <!-- 禁用默认et-al术语,手动插入 -->
    <substitute>
      <text variable="title"/>
    </substitute>
  </names>
  <!-- 根据文献language变量插入对应术语 -->
  <choose>
    <if variable="language" match="contains" value="en">
      <text term="et-al" locale="en"/>
    </if>
    <if variable="language" match="contains" value="fr">
      <text term="et-al" locale="fr"/>
    </if>
  </choose>
</macro>

随后在citation的layout中调用这个新宏替代原author_short即可。

验证方法

  • 分别设置Zotero输出语言为英文和法文,生成引用,检查et-al术语是否对应为[et al.]和(et al.)
  • 若使用进阶方案,确保不同语言的文献生成对应语言的et-al术语

内容的提问来源于stack exchange,提问作者Alexander Plesovskikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 20:58:24