How to properly modify the "page" macro

edited November 24, 2025
The bibliography contains literature in different languages (English, Russian, Uzbek).
When displaying bibliography pages, they are displayed as "pp. 41–47." To be compatible with each language, I modified the "page" macro as follows:

<macro name="page">
<choose>
<if variable="language" value="uz">
<group delimiter=" ">
<text value="-B."/>
<text variable="page"/>
</group>
</if>
<else-if variable="language" value="ru">
<group delimiter=" ">
<text value="-С."/>
<text variable="page"/>
</group>
</else-if>
<else>
<group delimiter=" ">
<text value="-pp."/>
<text variable="page"/>
</group>
</else>
</choose>
</macro>


But throughout the literature, it appears as "-B."
For each literature included in ZOTERO, the language is indicated as “en”, “ru”, “uz” respectively.
How will my problem be solved correctly?
  • In standard CSL this just isn't possible (you can't check for the content of a variable). There's csl-m code, which will work in Zotero and you can find posts on that in the forums -- basically you define separate layouts for each language in the citation/bibliography
Sign In or Register to comment.