Setting language-agnostic locator label

I’m very new to CSL but have been able to set up an adapted CSL for the house-style at my institution in English. I am currently trying to adjust it so that it will also work in German. I have discovered that changing the language setting works to change nearly all the terms (“ibid” and the like) to German equivalents, so that I do not have to create a separate German-language CSL-file.

However, I’ve been struggling with one issue: our house style wants the reference to specific page numbers to have an “at” prefaced to them. So, for example:

J. H. Oldham, Some Concluding Reflections, in: Fred Clarke et al. (eds.), Church, Community and State in Relation to Education, Chicago 1938, pp. 213–234, at pp. 213–215.

I did this by hard-coding the “at” into a prefix in the file.

<group>
       <label prefix=", at " suffix=" " variable="locator" form="short"/>
       <text variable="locator" form="short"/>
    </group>

But then I realised that this does not solve the problem when set to the German language.

What I’d like to do would be to set up the CSL file so that, when German language is specified, “at” shows up as “hier”. I have tried various things and been trying to use the locale file but with no success.

How can I do this?

There’s a term for “at” (though this is localised as “auf” by default, see below).

<group prefix=", " delimiter=" ">
  <text term="at"/>
  <label variable="page" form="short"/>
  <text variable="page" form="short"/>
</group>

Output:

  • English: “[…], at pp. 184–213”
  • German: “[…], auf S. 184–213”

Then, to have it say “hier” instead of “auf”, you can use a style-specific locale (as a direct child node of <style>, usually after <info>):

<locale xml:lang="de">
  <terms>
    <term name="at">hier</term>
  </terms>
</locale>

Output:

  • German: “[…], hier S. 184–213”

Does this help?

Thank you! I’ll give it a try at the weekend and report back.

This is almost right, however: when I added the above, there is always an “at” or “hier”, since it repeats “page” rather than “locator”.

This worked:

<group prefix=", " delimiter=" ">
      <text term="at"/>
      <label variable="locator" form="short"/>
      <text variable="locator" form="short"/>
    </group>

I had figured out the second part – related to the style-specific locale – but without your help I couldn’t have managed the first part. Thank you!