Date formats in some locales, including Danish, German, Hungarian and
others, contain dots, as, e.g., Danish “1. Marts 2013”.
CSL locale files specify such date formats as
The number, e.g., “1.”, however is not really a cardinal number with a
suffix, but rather an ordinal.
If the ordinal suffix is defined as .,
there usually is no difference in output between using
<date-part name="day" suffix=". "/>
and
<date-part name="day" form="ordinal" suffix=" "/>
Only when trying to format date ranges, this difference becomes
crucial: Both citeproc-js and pandoc-citeproc do not output the
expected “1.–2. Marts 2013”, but “1–2. Marts 2013”.
(On pandoc-citeproc, see
https://github.com/jgm/pandoc-citeproc/issues/12 and
https://github.com/jgm/pandoc-citeproc/issues/18; for two citeproc-js
tests see https://gist.github.com/nickbart1980/8271897)
It seems the processors are behaving as expected: the first suffix in
a range is removed (alternatively, you could say only one suffix is
rendered after the day range) – and it has to be, or else you’d get
"March 1,–2, 2012" in en-US.
Thus, if all dots must be kept with their numbers, as is the case for
Danish, German, Hungarian, and other dates, the number format must not
be defined as number plus suffix “.”, but as ordinal number (with the
ordinal suffix defined, elsewhere, as “.”).
Thus I’d like to propose the following:
-
in all CSL locale files where ‘.’, and
where in ‘<date-part name=“day” …>’ and ‘<date-part name=“month”
…>’ definitions the ‘suffix=’ element contains a dot, add
’form=“ordinal”’ or ‘form= “ordinal-leading-zeros”’ (see below) to the
definition, and remove the dot from the suffix element. -
add the value “ordinal-leading-zeros” to the form attribute for
date-parts day and month to enable leading zeros in date formats such
as “01.03.2013” and “01.–23.03.2013”.