diff --git a/README b/README
--- a/README
+++ b/README
@@ -4,7 +4,7 @@
 About
 -----
 
-[citeproc-hs] is a Haskell implementation of the Citation Style
+[citeproc-hs] is a [Haskell] implementation of the Citation Style
 Language ([CSL]).
 
 [citeproc-hs] adds to [pandoc], the famous [Haskell] text processing
@@ -27,11 +27,8 @@
 [citeproc-hs] can process and format citations according to a [CSL]
 style, given a collection of references.
 
-Natively [citeproc-hs] can only read [MODS] XML formattted
-bibliographic databases. The Metadata Object Description Schema
-([MODS]) is an XML format which is used by [bibutils] to interconvert
-many different bibliographic database formats, like Bibtex, Endnote,
-and others.
+Natively [citeproc-hs] can read [JSON][^1] and [MODS][^2] XML
+formattted bibliographic databases.
 
 [bibutils] can be used to convert Bibtex and other bibliographic
 databases to [MODS] collections, which can be thus read by
@@ -46,15 +43,7 @@
 styles and [MODS] collections, to process lists of citation groups and
 to format the processed output. The output is a Haskell data type that
 can be further processed for conversion to any kind of formats (at the
-present time plain ASCII and the pandoc] native format)
-
-[pandoc] is a [Haskell] library for converting from one markup format to
-another, and a command-line tool that uses this library. It can read
-[markdown] and (subsets of) [reStructuredText], [HTML], and [LaTeX]; and
-it can write [markdown], [reStructuredText], [HTML], [LaTeX], [ConTeXt],
-[RTF], [DocBook XML], [OpenDocument XML], [ODT], [GNU Texinfo],
-[MediaWiki markup], [groff man] pages, and [S5] HTML slide shows.
-
+present time plain ASCII and the [pandoc] native format)
 
 Download
 --------
@@ -70,12 +59,13 @@
 Installation
 ------------
 
-### Installing without bibutils support
-
-[citeproc-hs] depends on [hxt], the Haskell XML Tool Box.
+[citeproc-hs] depends on a few Haskell packages. Most of them come
+with the [Haskell Platform] and are usually included in every Haskell
+tool-chain.
 
-In order to install [citeproc-hs] you need to install [hxt] and its
-dependencies. You can download everything from [Hackage]:
+In order to install [citeproc-hs] you need to install its
+dependencies. You can choose to manually download and install
+everything from [Hackage]:
 
 <http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hxt>
 
@@ -95,92 +85,122 @@
         runhaskell Setup.lhs build
         runhaskell Setup.lhs install --user
 
-### Installing with bibutils support
+Alternatively you can use [cabal-install] to install [citeproc-hs] and
+all the needed dependencies:
 
-Since [bibutils] doesn't build a shared object and doesn't install the
-library, which is a static object used to compile the single
-[bibutils] utilities, by default [citeproc-hs] is not built with
-[bibutils] support.
+        cabal update
+        cabal install citeproc-hs
 
-If you succeeded in installing [bibutils] and [hs-bibutils], you can
-enable [bibutils] by configuring with the `-fbibutils` flag:
 
-        runhaskell Setup.lhs configure -fbibutils
+### Installing without bibutils or network support
 
+[bibutils] and network support may be suppressed with cabal flags:
+
+
+        runhaskell Setup.lhs configure -f'-bibutils'
+
+or
+
+        runhaskell Setup.lhs configure -f'-bibutils -network'
+
 and then build and install with:
 
         runhaskell Setup.lhs build
         runhaskell Setup.lhs install
 
+It is possible to pass the flags also too [cabal-install].
 
+
 Using citeproc-hs with Pandoc
 -----------------------------
 
-If you want to use [citeproc-hs] with [pandoc] you need to install
-[citeproc-hs] first, get the [pandoc] source code and compile it with
-the `-f citeproc` flag:
+Future releases of [pandoc] will depend on [citeproc-hs] and no
+specific step will be required to activate citeproc support.
 
-        runhaskell Setup.hs configure -f citeproc
-        runhaskell Setup.hs build
-        runhaskell Setup.hs install
+Please refer to [pandoc]'s documentation for more information on
+inserting citations in [pandoc]'s documents.
 
-Citations are inserted like simple reference links:
 
-    [Rossato2006]
+Documentation
+-------------
 
-where `Rossato2006` is the reference id (or citation key) used in the
-bibliographic database.
+[Haddock] documentation for the exported API is available at the
+following address:
 
-Citation groups are also possible. Each citation is separated by a
-semicolon:
+<http://code.haskell.org/citeproc-hs/docs/>
 
-    [Rossato2006; Pascuzzi2002]
+### Some notes about name parsing
 
+The [MODS] parser has been optimized for bibtex input, especially for
+parsing names with affixes , dropping and non-dropping particles.
 
-The use of locators is also possible:
+Suffixes should come after the family name:
 
-    [Rossato2006@ p. 10; Pascuzzi2002@ cap. 12]
+        Brown, Jr., John W.
 
-To automatically format citations and generate the bibliography, run
-[pandoc] with the `--csl` and `--biblio` flags:
+If a comma is needed before the suffix, an exclamation mark may be
+used:
 
-    pandoc --csl cslStyle.csl --biblio modsCollection.mods text.markdown > text.html
+        Brown,! Jr., John W.
 
-Obviously you can export the text into any of the formats supported by
-[pandoc].
+Non-dropping particles are placed before the family name:
 
-Some examples can be found in the `test` directory of the source tree.
+        von Hicks,! Jr., Michael
 
-You can try them with:
+Dropping particles are placed after the given name:
 
-    pandoc --csl apa.csl --biblio modsCollection.xml --biblio-format mods test.markdown
-    pandoc --csl apa.csl --biblio modsCollection.xml --biblio-format mods test_note.markdown
+        la Martine,! III, Martin B. de
 
-Documentation
--------------
+See also the [CSL] specification:
 
-[Haddock] documentation for the exported API is available at the
-following address:
+<http://citationstyles.org/downloads/specification.html#name-particles>
 
-<http://code.haskell.org/citeproc-hs/docs/>
+### Running the test-suite
 
-Generating the [Haddock] documentation is troublesome with Cabal <
-1.6.0.2 (GHC-6.10.1 comes with Cabal-1.6.0.1), because of this:
+To run the test suite, you first need to grab it with [mercurial] by
+running, from the root directory of the [citeproc-hs] source tree:
 
-<http://hackage.haskell.org/trac/hackage/ticket/396>
+        hg clone https://bitbucket.org/bdarcus/citeproc-test
 
+You then need to grind human-readable test code into machine-readable
+form by running, in the citeproc-test directory, the following
+commands:
+
+        cd citeproc-test
+        ./processor.py -g
+        cd ..
+
+Then, from the root directory of citeproc-hs source tree, run:
+
+        runhaskell test/test.hs
+
+
+You may also specify a test group:
+
+        runhaskell test/test.hs date
+
+To increase the debug messages edit *test/test.hs* and increase the
+*Int* parameter of *runTS*:
+
+        runTS args 1 testDir
+
 Known Issues
 ------------
 
 [citeproc-hs] is in an early stage of development and the [CSL]
-implementation is not complete yet.
+implementation is not complete.
 
-Specifically the following options are not implemented:
+Most of [CSL]-1.0 features are implemented. Some missing features are
+meaningless in [pandoc], the main target of [citeproc-hs] at the
+present time. Specifically the [display] attribute has not been
+implemented yet.
 
- - "hanging-indent"
- - "second-field-align"
- - "line-spacing"
- - "entry-spacing"
+The [citeproc-hs]-0.3.0 release passes 401 out of 537 tests of the
+[citeproc-test] suite. The test-suite has been developed along with
+[citeproc-js], and the failure of some of those tests is not
+meaningful for [citeproc-hs]. The major missing bits are related to
+rich text formatting (flip-flopping, specifically) and multi-language
+names.
 
 The [MODS] parser needs some refinement too.
 
@@ -195,10 +215,10 @@
 Credits
 -------
 
-[Bruce D'Arcus], the author of [CSL], has been very kind and patient
-with me when I was trying to understand the [CSL] schema, and provided
-me with ideas, comments and suggestions that made it possible to come
-to something usable.
+[Bruce D'Arcus], the man behind [CSL], Rintze Zelle, one of the main
+[CSL] developer, and [Frank Bennett], the [citeproc-js] author, have
+been very kind and provided ideas, comments and suggestions that made
+it easier coding citeproc-hs.
 
 [John MacFarlane], the author of [pandoc], has been very supportive of
 the project and provided a lot of useful feed back, comments and
@@ -209,23 +229,29 @@
 
 Andrea Rossato
 
-`andrea.rossato at ing.unitn.it`
+`andrea.rossato at unitn.it`
 
 Links to Related Projects
 ----------------
 
-Pandoc
-:    <http://johnmacfarlane.net/pandoc/>
-
-Bibutils
-:    <http://www.scripps.edu/~cdputnam/software/bibutils/>
-
 CSL
 :    <http://xbiblio.sourceforge.net/csl/>
 
+citeproc-js
+:    <https://bitbucket.org/fbennett/citeproc-js/wiki/Home>
+
+citeproc-test
+:    <http://bitbucket.org/bdarcus/citeproc-test>
+
 Zotero
 :    <http://www.zotero.org>
 
+Pandoc
+:    <http://johnmacfarlane.net/pandoc/>
+
+Bibutils
+:    <http://www.scripps.edu/~cdputnam/software/bibutils/>
+
 MODS
 :    <http://www.loc.gov/mods/>
 
@@ -237,32 +263,36 @@
 
 This is an early, "alpha" release. It carries no warranties of any kind.
 
-Copyright &copy; 2008 Andrea Rossato
+Copyright &copy; 2008--2011 Andrea Rossato
 
+[^1]: The [JSON] format is basically documented by citeproc
+      implementations and is derived by the [CSL] scheme. More
+      information can be read in the [citeproc-js] documentation:
+
+      <http://gsl-nagoya-u.net/http/pub/citeproc-doc.html#data-input>
+
+[^2]: The Metadata Object Description Schema ([MODS]) is an XML format
+      which is used by [bibutils] to interconvert many different
+      bibliographic database formats, like Bibtex, Endnote, and
+      others.
+
 [citeproc-hs]: http://code.haskell.org/citeproc-hs
-[CSL]: http://xbiblio.sourceforge.net/csl/
+[citeproc-js]: https://bitbucket.org/fbennett/citeproc-js/wiki/Home
+[CSL]: http://citationstyles.org/
 [pandoc]: http://johnmacfarlane.net/pandoc/
 [Zotero]: http://www.zotero.org
+[JSON]: http://www.json.org/
 [MODS]: http://www.loc.gov/mods/
 [bibutils]: http://www.scripps.edu/~cdputnam/software/bibutils/
 [hs-bibutils]: http://code.haskell.org/hs-bibutils/
+[Haskell Platform]: http://hackage.haskell.org/platform/
 [Hackage]: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/citeproc-hs
-[hxt]: http://www.fh-wedel.de/~si/HXmlToolbox/
+[cabal-install]: http://hackage.haskell.org/trac/hackage/wiki/CabalInstall
 [Bruce D'Arcus]: http://community.muohio.edu/blogs/darcusb/
 [John MacFarlane]: http://johnmacfarlane.net/
 [Haddock]:  http://www.haskell.org/haddock/
-
-[markdown]: http://daringfireball.net/projects/markdown/
-[reStructuredText]: http://docutils.sourceforge.net/docs/ref/rst/introduction.html
-[S5]: http://meyerweb.com/eric/tools/s5/
-[HTML]:  http://www.w3.org/TR/html40/
-[LaTeX]: http://www.latex-project.org/
-[ConTeXt]: http://www.pragma-ade.nl/
-[RTF]:  http://en.wikipedia.org/wiki/Rich_Text_Format
-[DocBook XML]:  http://www.docbook.org/
-[OpenDocument XML]: http://opendocument.xml.org/
-[ODT]: http://en.wikipedia.org/wiki/OpenDocument
-[MediaWiki markup]: http://www.mediawiki.org/wiki/Help:Formatting
-[groff man]: http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man7/groff_man.7.html
-[Haskell]:  http://www.haskell.org/
-[GNU Texinfo]: http://www.gnu.org/software/texinfo/
+[display]: http://citationstyles.org/downloads/specification.html#display
+[citeproc-test]: http://bitbucket.org/bdarcus/citeproc-test/
+[Frank Bennett]: http://gsl-nagoya-u.net/faculty/cache/gsliF_Bennett.html
+[mercurial]: http://mercurial.selenic.com/
+[Haskell]: http://www.haskell.org
diff --git a/citeproc-hs.cabal b/citeproc-hs.cabal
--- a/citeproc-hs.cabal
+++ b/citeproc-hs.cabal
@@ -1,14 +1,14 @@
 name:               citeproc-hs
-version:            0.2
+version:            0.3.0
 homepage:           http://code.haskell.org/citeproc-hs
 synopsis:           A Citation Style Language implementation in Haskell
 
-description:        citeproc-hs is a library for automatically
-                    formatting bibliographic reference citations into
-                    a variety of styles using a macro language called
-                    Citation Style Language (CSL). More details on
-                    CSL can be found here:
-                    <http://xbiblio.sourceforge.net/>.
+description:        citeproc-hs is a library for rendering
+                    bibliographic reference citations into a variety
+                    of styles using a macro language called Citation
+                    Style Language (CSL). More details on CSL can be
+                    found here:
+                    <http://citationstyles.org/>.
                     .
                     For the API documentation please see "Text.CSL".
 
@@ -19,8 +19,7 @@
 maintainer:         andrea.rossato@ing.unitn.it
 cabal-version:      >= 1.6
 build-type:         Simple
-data-files:         locales/locales-af-AZ.xml
-                    locales/locales-af-ZA.xml
+data-files:         locales/locales-af-ZA.xml
                     locales/locales-ar-AR.xml
                     locales/locales-bg-BG.xml
                     locales/locales-ca-AD.xml
@@ -39,10 +38,12 @@
                     locales/locales-is-IS.xml
                     locales/locales-it-IT.xml
                     locales/locales-ja-JP.xml
+                    locales/locales-kh-KH.xml
                     locales/locales-ko-KR.xml
                     locales/locales-mn-MN.xml
                     locales/locales-nb-NO.xml
                     locales/locales-nl-NL.xml
+                    locales/locales-nn-NO.xml
                     locales/locales-pl-PL.xml
                     locales/locales-pt-BR.xml
                     locales/locales-pt-PT.xml
@@ -62,16 +63,22 @@
 flag small_base
   description: Choose the new smaller, split-up base package.
 
-flag test
-  description: Run the textsuite.
-
 flag bibutils
   description: Use Chris Putnam's Bibutils.
-  default:     False
+  default:     True
 
+flag network
+  description: Use network and HTTP to retrieve csl file from URIs.
+  default:     True
+
 library
     exposed-modules:  Text.CSL
                       Text.CSL.Eval
+                      Text.CSL.Eval.Common
+                      Text.CSL.Eval.Date
+                      Text.CSL.Eval.Names
+                      Text.CSL.Eval.Output
+                      Text.CSL.Pickle
                       Text.CSL.Parser
                       Text.CSL.Proc
                       Text.CSL.Proc.Collapse
@@ -80,22 +87,28 @@
                       Text.CSL.Style
                       Text.CSL.Input.MODS
                       Text.CSL.Input.Bibutils
+                      Text.CSL.Input.Json
                       Text.CSL.Output.Pandoc
                       Text.CSL.Output.Plain
     other-modules:    Paths_citeproc_hs
     ghc-options:      -funbox-strict-fields -Wall
     ghc-prof-options: -prof -auto-all
     hs-source-dirs:   src
-    build-depends:    containers, directory, mtl, hxt >= 8.1
+    build-depends:    containers, directory, mtl, xml, json, filepath,
+                      pandoc-types == 1.7
 
     if flag(bibutils)
-       build-depends:   hs-bibutils, filepath, directory
-       extra-libraries: bibutils
-       extensions:      CPP
-       cpp-options:     -DUSE_BIBUTILS
+       build-depends: hs-bibutils >= 0.3
+       extensions:    CPP
+       cpp-options:   -DUSE_BIBUTILS
 
+    if flag(network)
+       build-depends: network >= 2, HTTP >= 4000.0.5
+       extensions:    CPP
+       cpp-options:   -DUSE_NETWORK
+
     if impl(ghc >= 6.10)
-       build-depends: base >= 4, syb
+       build-depends: base >= 4, syb, parsec, old-locale, time
     else
        build-depends: base >= 3 && < 4
 
diff --git a/locales/locales-af-AZ.xml b/locales/locales-af-AZ.xml
deleted file mode 100644
--- a/locales/locales-af-AZ.xml
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="af">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">toegang verkry</term>
-    <term name="retrieved">opgehaal</term>
-    <term name="from">van</term>
-    <term name="forthcoming">voorhande</term>
-    <term name="references">Verwysings</term>
-    <term name="no date">n.d.</term>
-    <term name="and">en</term>
-    <term name="et-al">et al.</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>reël</single>
-      <multiple>reëls</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>bladsy</single>
-      <multiple>bladsye</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraaf</single>
-      <multiple>paragrawe</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>bl</single>
-      <multiple>bll</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">vol</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="editor">
-      <single>redakteur</single>
-      <multiple>redakteurs</multiple>
-    </term>
-    <term name="translator">
-      <single>vertaler</single>
-      <multiple>vertalers</multiple>
-    </term>
-    <term name="editor" form="short">
-      <single>red</single>
-      <multiple>reds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>vert</single>
-      <multiple>verts</multiple>
-    </term>
-    <term name="editor" form="verb">onder redaksie van</term>
-    <term name="translator" form="verb">vertaal deur</term>
-    <term name="editor" form="verb-short">red</term>
-    <term name="translator" form="verb-short">verts</term>
-    <term name="month-01">Januarie</term>
-    <term name="month-02">Februarie</term>
-    <term name="month-03">Maart</term>
-    <term name="month-04">April</term>
-    <term name="month-05">Mei</term>
-    <term name="month-06">Junie</term>
-    <term name="month-07">Julie</term>
-    <term name="month-08">Augustus</term>
-    <term name="month-09">September</term>
-    <term name="month-10">Oktober</term>
-    <term name="month-11">November</term>
-    <term name="month-12">Desember</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mrt</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">Mei</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Okt</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Des</term>
-  </locale>
-</terms>
diff --git a/locales/locales-af-ZA.xml b/locales/locales-af-ZA.xml
--- a/locales/locales-af-ZA.xml
+++ b/locales/locales-af-ZA.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="af">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">toegang verkry</term>
-    <term name="retrieved">opgehaal</term>
-    <term name="from">van</term>
-    <term name="forthcoming">voorhande</term>
-    <term name="references">Verwysings</term>
-    <term name="no date">n.d.</term>
-    <term name="and">en</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>reël</single>
-      <multiple>reëls</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>bladsy</single>
-      <multiple>bladsye</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraaf</single>
-      <multiple>paragrawe</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>bl</single>
-      <multiple>bll</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>redakteur</single>
-      <multiple>redakteurs</multiple>
-    </term>
-    <term name="translator">
-      <single>vertaler</single>
-      <multiple>vertalers</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>red</single>
-      <multiple>reds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>vert</single>
-      <multiple>verts</multiple>
-    </term>
-    <term name="editor" form="verb">onder redaksie van</term>
-    <term name="translator" form="verb">vertaal deur</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">red</term>
-    <term name="translator" form="verb-short">verts</term>
-    <term name="month-01">Januarie</term>
-    <term name="month-02">Februarie</term>
-    <term name="month-03">Maart</term>
-    <term name="month-04">April</term>
-    <term name="month-05">Mei</term>
-    <term name="month-06">Junie</term>
-    <term name="month-07">Julie</term>
-    <term name="month-08">Augustus</term>
-    <term name="month-09">September</term>
-    <term name="month-10">Oktober</term>
-    <term name="month-11">November</term>
-    <term name="month-12">Desember</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mrt</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">Mei</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Okt</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Des</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="af">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" form="numeric-leading-zeros" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="/"/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="/"/>
+   </date>
+   <terms>
+      <term name="accessed">toegang verkry</term>
+      <term name="and">en</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">voorhande</term>
+      <term name="from">van</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">n.d.</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">opgehaal</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>reël</single>
+         <multiple>reëls</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>bladsy</single>
+         <multiple>bladsye</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraaf</single>
+         <multiple>paragrawe</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">no</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>bl</single>
+         <multiple>bll</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>redakteur</single>
+         <multiple>redakteurs</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>vertaler</single>
+         <multiple>vertalers</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>red</single>
+         <multiple>reds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>vert</single>
+         <multiple>verts</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">onder redaksie van</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">vertaal deur</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">red</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">verts</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Januarie</term>
+      <term name="month-02">Februarie</term>
+      <term name="month-03">Maart</term>
+      <term name="month-04">April</term>
+      <term name="month-05">Mei</term>
+      <term name="month-06">Junie</term>
+      <term name="month-07">Julie</term>
+      <term name="month-08">Augustus</term>
+      <term name="month-09">September</term>
+      <term name="month-10">Oktober</term>
+      <term name="month-11">November</term>
+      <term name="month-12">Desember</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mrt</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">Mei</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Okt</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Des</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-ar-AR.xml b/locales/locales-ar-AR.xml
--- a/locales/locales-ar-AR.xml
+++ b/locales/locales-ar-AR.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="ar">
-    <term name="at">عند</term>
-    <term name="in">في</term>
-    <term name="ibid">آيبيد</term>
-    <term name="accessed">زير</term>
-    <term name="retrieved">جلب</term>
-    <term name="from">من</term>
-    <term name="forthcoming">القادم</term>
-    <term name="references">مراجع</term>
-    <term name="no date"/>
-    <term name="and">و</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">مقابلة</term>
-    <term name="letter">رسالة</term>
-    <term name="anonymous">مجهول</term>
-    <term name="anonymous" form="short">مجهول</term>
-    <term name="and others">وآخرون</term>
-    <term name="in press">تحت الطبع</term>
-    <term name="online">ربط مباشر</term>
-    <term name="cited">وثِّقَ</term>
-    <term name="internet">الإنترنت</term>
-    <term name="presented at">قُدَّم في</term>
-    <term name="anthropology">علم الإنسان</term>
-    <term name="astronomy">علم الفلك</term>
-    <term name="biology">علم الأحياء</term>
-    <term name="botany">علم النبات</term>
-    <term name="chemistry">علم الكيمياء</term>
-    <term name="engineering">الهندسة</term>
-    <term name="generic-base">أساس عام</term>
-    <term name="geography">جغرافيا</term>
-    <term name="geology">علم الأرض</term>
-    <term name="history">التاريخ</term>
-    <term name="humanities">الإنسانيات</term>
-    <term name="literature">الأدب</term>
-    <term name="math">الرياضيات</term>
-    <term name="medicine">الطب</term>
-    <term name="philosophy">الفلسفة</term>
-    <term name="physics">الفيزياء</term>
-    <term name="psychology">علم النفس</term>
-    <term name="sociology">علم الإجتماع</term>
-    <term name="science">العلوم</term>
-    <term name="political_science">العلوم السياسية</term>
-    <term name="social_science">العلوم الإجتماعية</term>
-    <term name="theology">العلوم الإلهية</term>
-    <term name="zoology">علم الحيوان</term>
-    <term name="book">
-      <single>كتاب</single>
-      <multiple>كُتُب</multiple>
-    </term>
-    <term name="chapter">
-      <single>فصل</single>
-      <multiple>فصول</multiple>
-    </term>
-    <term name="column">
-      <single>عمود</single>
-      <multiple>أعمدة</multiple>
-    </term>
-    <term name="figure">
-      <single>رسم توضيحي</single>
-      <multiple>رسوم توضيحية</multiple>
-    </term>
-    <term name="folio">
-      <single>ورقة</single>
-      <multiple>أوراق</multiple>
-    </term>
-    <term name="issue">
-      <single>عدد</single>
-      <multiple>أعداد</multiple>
-    </term>
-    <term name="line">
-      <single>سطر</single>
-      <multiple>أسطر</multiple>
-    </term>
-    <term name="note">
-      <single>ملاحظة</single>
-      <multiple>ملاحظات</multiple>
-    </term>
-    <term name="opus">
-      <single>قطعة موسيقية</single>
-      <multiple>أوبرا</multiple>
-    </term>
-    <term name="page">
-      <single>صفحة</single>
-      <multiple>صفحات</multiple>
-    </term>
-    <term name="paragraph">
-      <single>فقرة</single>
-      <multiple>فقرات</multiple>
-    </term>
-    <term name="part">
-      <single>جزء</single>
-      <multiple>أجزاء</multiple>
-    </term>
-    <term name="section">
-      <single>قسم</single>
-      <multiple>أقسام</multiple>
-    </term>
-    <term name="volume">
-      <single>مجلد</single>
-      <multiple>مجلدات</multiple>
-    </term>
-    <term name="edition">
-      <single>الطبعة</single>
-      <multiple>الطبعات</multiple>
-    </term>
-    <term name="verse">
-      <single>بيت</single>
-      <multiple>أبيات</multiple>
-    </term>
-    <term name="book" form="short">ك</term>
-    <term name="chapter" form="short">ف</term>
-    <term name="column" form="short">عم</term>
-    <term name="figure" form="short">ر</term>
-    <term name="folio" form="short">و</term>
-    <term name="issue" form="short">عد</term>
-    <term name="opus" form="short">مم</term>
-    <term name="page" form="short">
-      <single>ص</single>
-      <multiple>ص.ص</multiple>
-    </term>
-    <term name="paragraph" form="short">فق</term>
-    <term name="part" form="short">جز</term>
-    <term name="section" form="short">ق</term>
-    <term name="verse" form="short">
-      <single>ب</single>
-      <multiple>بب</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>مج</single>
-      <multiple>مجج</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ط</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>تحرير</single>
-      <multiple>تحرير</multiple>
-    </term>
-    <term name="translator">
-      <single>ترجمة</single>
-      <multiple>ترجمة</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>مح</single>
-      <multiple>محح</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>تر</single>
-      <multiple>ترر</multiple>
-    </term>
-    <term name="editor" form="verb">حرره</term>
-    <term name="translator" form="verb">ترجمه</term>
-    <term name="recipient" form="verb">إلى</term>
-    <term name="interviewer" form="verb">مقابلة بواسطة</term>
-    <term name="editor" form="verb-short">مح</term>
-    <term name="translator" form="verb-short">مت</term>
-    <term name="month-01">يناير</term>
-    <term name="month-02">فبراير</term>
-    <term name="month-03">مارس</term>
-    <term name="month-04">ابريل</term>
-    <term name="month-05">مايو</term>
-    <term name="month-06">يونيو</term>
-    <term name="month-07">يوليو</term>
-    <term name="month-08">اغسطس</term>
-    <term name="month-09">سبتمبر</term>
-    <term name="month-10">اكتوبر</term>
-    <term name="month-11">نوفمبر</term>
-    <term name="month-12">ديسمبر</term>
-    <term name="month-01" form="short">يناير</term>
-    <term name="month-02" form="short">فبراير</term>
-    <term name="month-03" form="short">مارس</term>
-    <term name="month-04" form="short">ابريل</term>
-    <term name="month-05" form="short">مايو</term>
-    <term name="month-06" form="short">يونيو</term>
-    <term name="month-07" form="short">يوليو</term>
-    <term name="month-08" form="short">اغسطس</term>
-    <term name="month-09" form="short">سبتمبر</term>
-    <term name="month-10" form="short">اكتوبر</term>
-    <term name="month-11" form="short">نوفمبر</term>
-    <term name="month-12" form="short">ديسمبر</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="ar">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=", "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" suffix="/"/>
+      <date-part name="month" form="numeric" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">زير</term>
+      <term name="and">و</term>
+      <term name="and others">وآخرون</term>
+      <term name="anonymous">مجهول</term>
+      <term name="anonymous" form="short">مجهول</term>
+      <term name="at">عند</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">وثِّقَ</term>
+      <term name="edition">
+         <single>الطبعة</single>
+         <multiple>الطبعات</multiple>
+      </term>
+      <term name="edition" form="short">ط</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">القادم</term>
+      <term name="from">من</term>
+      <term name="ibid">آيبيد</term>
+      <term name="in">في</term>
+      <term name="in press">تحت الطبع</term>
+      <term name="internet">الإنترنت</term>
+      <term name="interview">مقابلة</term>
+      <term name="letter">رسالة</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">n.d.</term>
+      <term name="online">ربط مباشر</term>
+      <term name="presented at">قُدَّم في</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">جلب</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">علم الإنسان</term>
+      <term name="astronomy">علم الفلك</term>
+      <term name="biology">علم الأحياء</term>
+      <term name="botany">علم النبات</term>
+      <term name="chemistry">علم الكيمياء</term>
+      <term name="engineering">الهندسة</term>
+      <term name="generic-base">أساس عام</term>
+      <term name="geography">جغرافيا</term>
+      <term name="geology">علم الأرض</term>
+      <term name="history">التاريخ</term>
+      <term name="humanities">الإنسانيات</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">الأدب</term>
+      <term name="math">الرياضيات</term>
+      <term name="medicine">الطب</term>
+      <term name="philosophy">الفلسفة</term>
+      <term name="physics">الفيزياء</term>
+      <term name="psychology">علم النفس</term>
+      <term name="sociology">علم الإجتماع</term>
+      <term name="science">العلوم</term>
+      <term name="political_science">العلوم السياسية</term>
+      <term name="social_science">العلوم الإجتماعية</term>
+      <term name="theology">العلوم الإلهية</term>
+      <term name="zoology">علم الحيوان</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>كتاب</single>
+         <multiple>كُتُب</multiple>
+      </term>
+      <term name="chapter">
+         <single>فصل</single>
+         <multiple>فصول</multiple>
+      </term>
+      <term name="column">
+         <single>عمود</single>
+         <multiple>أعمدة</multiple>
+      </term>
+      <term name="figure">
+         <single>رسم توضيحي</single>
+         <multiple>رسوم توضيحية</multiple>
+      </term>
+      <term name="folio">
+         <single>ورقة</single>
+         <multiple>أوراق</multiple>
+      </term>
+      <term name="issue">
+         <single>عدد</single>
+         <multiple>أعداد</multiple>
+      </term>
+      <term name="line">
+         <single>سطر</single>
+         <multiple>أسطر</multiple>
+      </term>
+      <term name="note">
+         <single>ملاحظة</single>
+         <multiple>ملاحظات</multiple>
+      </term>
+      <term name="opus">
+         <single>قطعة موسيقية</single>
+         <multiple>أوبرا</multiple>
+      </term>
+      <term name="page">
+         <single>صفحة</single>
+         <multiple>صفحات</multiple>
+      </term>
+      <term name="paragraph">
+         <single>فقرة</single>
+         <multiple>فقرات</multiple>
+      </term>
+      <term name="part">
+         <single>جزء</single>
+         <multiple>أجزاء</multiple>
+      </term>
+      <term name="section">
+         <single>قسم</single>
+         <multiple>أقسام</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>بيت</single>
+         <multiple>أبيات</multiple>
+      </term>
+      <term name="volume">
+         <single>مجلد</single>
+         <multiple>مجلدات</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">ك</term>
+      <term name="chapter" form="short">ف</term>
+      <term name="column" form="short">عم</term>
+      <term name="figure" form="short">ر</term>
+      <term name="folio" form="short">و</term>
+      <term name="issue" form="short">عد</term>
+      <term name="opus" form="short">مم</term>
+      <term name="page" form="short">
+         <single>ص</single>
+         <multiple>ص.ص</multiple>
+      </term>
+      <term name="paragraph" form="short">فق</term>
+      <term name="part" form="short">جز</term>
+      <term name="section" form="short">ق</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>ب</single>
+         <multiple>بب</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>مج</single>
+         <multiple>مجج</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>تحرير</single>
+         <multiple>تحرير</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>ترجمة</single>
+         <multiple>ترجمة</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>مح</single>
+         <multiple>محح</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>تر</single>
+         <multiple>ترر</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">حرره</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">ترجمه</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">إلى</term>
+      <term name="interviewer" form="verb">مقابلة بواسطة</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">مح</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">مت</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">يناير</term>
+      <term name="month-02">فبراير</term>
+      <term name="month-03">مارس</term>
+      <term name="month-04">ابريل</term>
+      <term name="month-05">مايو</term>
+      <term name="month-06">يونيو</term>
+      <term name="month-07">يوليو</term>
+      <term name="month-08">اغسطس</term>
+      <term name="month-09">سبتمبر</term>
+      <term name="month-10">اكتوبر</term>
+      <term name="month-11">نوفمبر</term>
+      <term name="month-12">ديسمبر</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">يناير</term>
+      <term name="month-02" form="short">فبراير</term>
+      <term name="month-03" form="short">مارس</term>
+      <term name="month-04" form="short">ابريل</term>
+      <term name="month-05" form="short">مايو</term>
+      <term name="month-06" form="short">يونيو</term>
+      <term name="month-07" form="short">يوليو</term>
+      <term name="month-08" form="short">اغسطس</term>
+      <term name="month-09" form="short">سبتمبر</term>
+      <term name="month-10" form="short">اكتوبر</term>
+      <term name="month-11" form="short">نوفمبر</term>
+      <term name="month-12" form="short">ديسمبر</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-bg-BG.xml b/locales/locales-bg-BG.xml
--- a/locales/locales-bg-BG.xml
+++ b/locales/locales-bg-BG.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="bg">
-    <term name="at">в</term>
-    <term name="in">в</term>
-    <term name="ibid">пак там</term>
-    <term name="accessed">отворен на</term>
-    <term name="retrieved">изтеглен на</term>
-    <term name="from">от</term>
-    <term name="forthcoming">предстоящ</term>
-    <term name="references">цитати</term>
-    <term name="no date">без дата</term>
-    <term name="and">и</term>
-    <term name="et-al">и съавт.</term>
-    <term name="interview">интервю</term>
-    <term name="letter">писмо</term>
-    <term name="anonymous">анонимен</term>
-    <term name="anonymous" form="short">анон</term>
-    <term name="and others">и други</term>
-    <term name="in press">под печат</term>
-    <term name="online">онлайн</term>
-    <term name="cited">цитиран</term>
-    <term name="internet">интернет</term>
-    <term name="presented at">представен на</term>
-    <term name="anthropology">антропология</term>
-    <term name="astronomy">астрономия</term>
-    <term name="biology">биология</term>
-    <term name="botany">ботаника</term>
-    <term name="chemistry">химия</term>
-    <term name="engineering">инженерство</term>
-    <term name="generic-base">обща база</term>
-    <term name="geography">география</term>
-    <term name="geology">геология</term>
-    <term name="history">история</term>
-    <term name="humanities">хуманитарни науки</term>
-    <term name="literature">литература</term>
-    <term name="math">математика</term>
-    <term name="medicine">медицина</term>
-    <term name="philosophy">философия</term>
-    <term name="physics">физика</term>
-    <term name="psychology">физиология</term>
-    <term name="sociology">социология</term>
-    <term name="science">наука</term>
-    <term name="political_science">политически науки</term>
-    <term name="social_science">обществени науки</term>
-    <term name="theology">теология</term>
-    <term name="zoology">зоология</term>
-    <term name="book">
-      <single>книга</single>
-      <multiple>книги</multiple>
-    </term>
-    <term name="chapter">
-      <single>глава</single>
-      <multiple>глави</multiple>
-    </term>
-    <term name="column">
-      <single>колона</single>
-      <multiple>колони</multiple>
-    </term>
-    <term name="figure">
-      <single>фигура</single>
-      <multiple>фигури</multiple>
-    </term>
-    <term name="folio">
-      <single>фолио</single>
-      <multiple>фолия</multiple>
-    </term>
-    <term name="issue">
-      <single>брой</single>
-      <multiple>броеве</multiple>
-    </term>
-    <term name="line">
-      <single>ред</single>
-      <multiple>редове</multiple>
-    </term>
-    <term name="note">
-      <single>бележка</single>
-      <multiple>бележки</multiple>
-    </term>
-    <term name="opus">
-      <single>опус</single>
-      <multiple>опуси</multiple>
-    </term>
-    <term name="page">
-      <single>страница</single>
-      <multiple>страници</multiple>
-    </term>
-    <term name="paragraph">
-      <single>параграф</single>
-      <multiple>параграфи</multiple>
-    </term>
-    <term name="part">
-      <single>част</single>
-      <multiple>части</multiple>
-    </term>
-    <term name="section">
-      <single>раздел</single>
-      <multiple>раздели</multiple>
-    </term>
-    <term name="volume">
-      <single>том</single>
-      <multiple>томове</multiple>
-    </term>
-    <term name="edition">
-      <single>издание</single>
-      <multiple>издания</multiple>
-    </term>
-    <term name="verse">
-      <single>стих</single>
-      <multiple>стихове</multiple>
-    </term>
-    <term name="book" form="short">кн</term>
-    <term name="chapter" form="short">гл</term>
-    <term name="column" form="short">кол</term>
-    <term name="figure" form="short">фиг</term>
-    <term name="folio" form="short">фол</term>
-    <term name="issue" form="short">бр</term>
-    <term name="opus" form="short">оп</term>
-    <term name="page" form="short">
-      <single>с</single>
-      <multiple>с-ци</multiple>
-    </term>
-    <term name="paragraph" form="short">п</term>
-    <term name="part" form="short">ч</term>
-    <term name="section" form="short">разд</term>
-    <term name="verse" form="short">
-      <single>ст</single>
-      <multiple>ст-ове</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>том</single>
-      <multiple>т-ове</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">изд</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single>автор</single>
-      <multiple>автори</multiple>
-    </term>
-    <term name="editor">
-      <single>редактор</single>
-      <multiple>редактори</multiple>
-    </term>
-    <term name="translator">
-      <single>преводач</single>
-      <multiple>преводачи</multiple>
-    </term>
-    <term name="author" form="short">
-      <single>авт</single>
-      <multiple>авт-ри</multiple>
-    </term>
-    <term name="editor" form="short">
-      <single>ред</single>
-      <multiple>ред-ри</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>прев</single>
-      <multiple>прев-чи</multiple>
-    </term>
-    <term name="editor" form="verb">редактиран от</term>
-    <term name="translator" form="verb">преведен от</term>
-    <term name="recipient" form="verb">до</term>
-    <term name="interviewer" form="verb">интервюиран от</term>
-    <term name="editor" form="verb-short">ред</term>
-    <term name="translator" form="verb-short">прев</term>
-    <term name="month-01">Януари</term>
-    <term name="month-02">Февруари</term>
-    <term name="month-03">Март</term>
-    <term name="month-04">Април</term>
-    <term name="month-05">Май</term>
-    <term name="month-06">Юни</term>
-    <term name="month-07">Юли</term>
-    <term name="month-08">Август</term>
-    <term name="month-09">Септември</term>
-    <term name="month-10">Октомври</term>
-    <term name="month-11">Ноември</term>
-    <term name="month-12">Декември</term>
-    <term name="month-01" form="short">Яну</term>
-    <term name="month-02" form="short">Фев</term>
-    <term name="month-03" form="short">Мар</term>
-    <term name="month-04" form="short">Апр</term>
-    <term name="month-05" form="short">Май</term>
-    <term name="month-06" form="short">Юни</term>
-    <term name="month-07" form="short">Юли</term>
-    <term name="month-08" form="short">Авг</term>
-    <term name="month-09" form="short">Сеп</term>
-    <term name="month-10" form="short">Окт</term>
-    <term name="month-11" form="short">Ное</term>
-    <term name="month-12" form="short">Дек</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="bg">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" form="numeric-leading-zeros" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">отворен на</term>
+      <term name="and">и</term>
+      <term name="and others">и други</term>
+      <term name="anonymous">анонимен</term>
+      <term name="anonymous" form="short">анон</term>
+      <term name="at">в</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">цитиран</term>
+      <term name="edition">
+         <single>издание</single>
+         <multiple>издания</multiple>
+      </term>
+      <term name="edition" form="short">изд</term>
+      <term name="et-al">и съавт.</term>
+      <term name="forthcoming">предстоящ</term>
+      <term name="from">от</term>
+      <term name="ibid">пак там</term>
+      <term name="in">в</term>
+      <term name="in press">под печат</term>
+      <term name="internet">интернет</term>
+      <term name="interview">интервю</term>
+      <term name="letter">писмо</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">без дата</term>
+      <term name="online">онлайн</term>
+      <term name="presented at">представен на</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">изтеглен на</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">антропология</term>
+      <term name="astronomy">астрономия</term>
+      <term name="biology">биология</term>
+      <term name="botany">ботаника</term>
+      <term name="chemistry">химия</term>
+      <term name="engineering">инженерство</term>
+      <term name="generic-base">обща база</term>
+      <term name="geography">география</term>
+      <term name="geology">геология</term>
+      <term name="history">история</term>
+      <term name="humanities">хуманитарни науки</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">литература</term>
+      <term name="math">математика</term>
+      <term name="medicine">медицина</term>
+      <term name="philosophy">философия</term>
+      <term name="physics">физика</term>
+      <term name="psychology">физиология</term>
+      <term name="sociology">социология</term>
+      <term name="science">наука</term>
+      <term name="political_science">политически науки</term>
+      <term name="social_science">обществени науки</term>
+      <term name="theology">теология</term>
+      <term name="zoology">зоология</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>книга</single>
+         <multiple>книги</multiple>
+      </term>
+      <term name="chapter">
+         <single>глава</single>
+         <multiple>глави</multiple>
+      </term>
+      <term name="column">
+         <single>колона</single>
+         <multiple>колони</multiple>
+      </term>
+      <term name="figure">
+         <single>фигура</single>
+         <multiple>фигури</multiple>
+      </term>
+      <term name="folio">
+         <single>фолио</single>
+         <multiple>фолия</multiple>
+      </term>
+      <term name="issue">
+         <single>брой</single>
+         <multiple>броеве</multiple>
+      </term>
+      <term name="line">
+         <single>ред</single>
+         <multiple>редове</multiple>
+      </term>
+      <term name="note">
+         <single>бележка</single>
+         <multiple>бележки</multiple>
+      </term>
+      <term name="opus">
+         <single>опус</single>
+         <multiple>опуси</multiple>
+      </term>
+      <term name="page">
+         <single>страница</single>
+         <multiple>страници</multiple>
+      </term>
+      <term name="paragraph">
+         <single>параграф</single>
+         <multiple>параграфи</multiple>
+      </term>
+      <term name="part">
+         <single>част</single>
+         <multiple>части</multiple>
+      </term>
+      <term name="section">
+         <single>раздел</single>
+         <multiple>раздели</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>стих</single>
+         <multiple>стихове</multiple>
+      </term>
+      <term name="volume">
+         <single>том</single>
+         <multiple>томове</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">кн</term>
+      <term name="chapter" form="short">гл</term>
+      <term name="column" form="short">кол</term>
+      <term name="figure" form="short">фиг</term>
+      <term name="folio" form="short">фол</term>
+      <term name="issue" form="short">бр</term>
+      <term name="opus" form="short">оп</term>
+      <term name="page" form="short">
+         <single>с</single>
+         <multiple>с-ци</multiple>
+      </term>
+      <term name="paragraph" form="short">п</term>
+      <term name="part" form="short">ч</term>
+      <term name="section" form="short">разд</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>ст</single>
+         <multiple>ст-ове</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>том</single>
+         <multiple>т-ове</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single>автор</single>
+         <multiple>автори</multiple>
+      </term>
+      <term name="editor">
+         <single>редактор</single>
+         <multiple>редактори</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>преводач</single>
+         <multiple>преводачи</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single>авт</single>
+         <multiple>авт-ри</multiple>
+      </term>
+      <term name="editor" form="short">
+         <single>ред</single>
+         <multiple>ред-ри</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>прев</single>
+         <multiple>прев-чи</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">редактиран от</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">преведен от</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">до</term>
+      <term name="interviewer" form="verb">интервюиран от</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ред</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">прев</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Януари</term>
+      <term name="month-02">Февруари</term>
+      <term name="month-03">Март</term>
+      <term name="month-04">Април</term>
+      <term name="month-05">Май</term>
+      <term name="month-06">Юни</term>
+      <term name="month-07">Юли</term>
+      <term name="month-08">Август</term>
+      <term name="month-09">Септември</term>
+      <term name="month-10">Октомври</term>
+      <term name="month-11">Ноември</term>
+      <term name="month-12">Декември</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Яну</term>
+      <term name="month-02" form="short">Фев</term>
+      <term name="month-03" form="short">Мар</term>
+      <term name="month-04" form="short">Апр</term>
+      <term name="month-05" form="short">Май</term>
+      <term name="month-06" form="short">Юни</term>
+      <term name="month-07" form="short">Юли</term>
+      <term name="month-08" form="short">Авг</term>
+      <term name="month-09" form="short">Сеп</term>
+      <term name="month-10" form="short">Окт</term>
+      <term name="month-11" form="short">Ное</term>
+      <term name="month-12" form="short">Дек</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-ca-AD.xml b/locales/locales-ca-AD.xml
--- a/locales/locales-ca-AD.xml
+++ b/locales/locales-ca-AD.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="ca">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">References</term>
-    <term name="no date">nd</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>line</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="ca">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" de "/>
+      <date-part name="month" suffix=" de "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">accessed</term>
+      <term name="and">and</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">from</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">nd</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>line</single>
+         <multiple>line</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>page</single>
+         <multiple>pages</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraph</single>
+         <multiple>paragraph</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">no</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>translator</single>
+         <multiple>translators</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran</single>
+         <multiple>trans</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">edited by</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">translated by</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">January</term>
+      <term name="month-02">February</term>
+      <term name="month-03">March</term>
+      <term name="month-04">April</term>
+      <term name="month-05">May</term>
+      <term name="month-06">June</term>
+      <term name="month-07">July</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">October</term>
+      <term name="month-11">November</term>
+      <term name="month-12">December</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Oct</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-cs-CZ.xml b/locales/locales-cs-CZ.xml
--- a/locales/locales-cs-CZ.xml
+++ b/locales/locales-cs-CZ.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="cs">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">references</term>
-    <term name="no date">n.d.</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>lines</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="cs">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+   </date>
+   <terms>
+      <term name="accessed">přístup</term>
+      <term name="and">a</term>
+      <term name="and others">a další</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">v</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">citován</term>
+      <term name="edition">
+         <single>edice</single>
+         <multiple>edice</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">nadcházející</term>
+      <term name="from">z</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">v</term>
+      <term name="in press">v tisku</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">dopis</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">bez data</term>
+      <term name="online">online</term>
+      <term name="presented at">prezentován v</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">získáno</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologie</term>
+      <term name="astronomy">astronomie</term>
+      <term name="biology">biologie</term>
+      <term name="botany">botanika</term>
+      <term name="chemistry">chemie</term>
+      <term name="engineering">technika</term>
+      <term name="generic-base">všeobecný základ</term>
+      <term name="geography">geografie</term>
+      <term name="geology">geologie</term>
+      <term name="history">historie</term>
+      <term name="humanities">humanitní</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literatura</term>
+      <term name="math">matematika</term>
+      <term name="medicine">medicína</term>
+      <term name="philosophy">filosofie</term>
+      <term name="physics">fyzika</term>
+      <term name="psychology">psychologie</term>
+      <term name="sociology">sociologie</term>
+      <term name="science">věda</term>
+      <term name="political_science">politologie</term>
+      <term name="social_science">sociální věda</term>
+      <term name="theology">teologie</term>
+      <term name="zoology">zoologie</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>kniha</single>
+         <multiple>knihy</multiple>
+      </term>
+      <term name="chapter">
+         <single>kapitola</single>
+         <multiple>kapitoly</multiple>
+      </term>
+      <term name="column">
+         <single>sloupec</single>
+         <multiple>sloupce</multiple>
+      </term>
+      <term name="figure">
+         <single>obrázek</single>
+         <multiple>obrázky</multiple>
+      </term>
+      <term name="folio">
+         <single>list</single>
+         <multiple>listy</multiple>
+      </term>
+      <term name="issue">
+         <single>číslo</single>
+         <multiple>číslo</multiple>
+      </term>
+      <term name="line">
+         <single>řádek</single>
+         <multiple>řádky</multiple>
+      </term>
+      <term name="note">
+         <single>poznámka</single>
+         <multiple>poznámky</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>strana</single>
+         <multiple>strany</multiple>
+      </term>
+      <term name="paragraph">
+         <single>odstavec</single>
+         <multiple>odstavce</multiple>
+      </term>
+      <term name="part">
+         <single>část</single>
+         <multiple>části</multiple>
+      </term>
+      <term name="section">
+         <single>sekce</single>
+         <multiple>sekce</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verš</single>
+         <multiple>verše</multiple>
+      </term>
+      <term name="volume">
+         <single>ročník</single>
+         <multiple>ročníky</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">kn</term>
+      <term name="chapter" form="short">kap</term>
+      <term name="column" form="short">sl</term>
+      <term name="figure" form="short">obr</term>
+      <term name="folio" form="short">l</term>
+      <term name="issue" form="short">čís</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>s</single>
+         <multiple>s</multiple>
+      </term>
+      <term name="paragraph" form="short">odst</term>
+      <term name="part" form="short">č</term>
+      <term name="section" form="short">sek</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>v</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>roč</single>
+         <multiple>roč</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single>autor</single>
+         <multiple>autoři</multiple>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editoři</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>překladatel</single>
+         <multiple>překladatelé</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>ed</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>překl</single>
+         <multiple>překl</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">editoval</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">přeložil</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">pro</term>
+      <term name="interviewer" form="verb">rozhovor vedl</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">překl</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">leden</term>
+      <term name="month-02">únor</term>
+      <term name="month-03">březen</term>
+      <term name="month-04">duben</term>
+      <term name="month-05">květen</term>
+      <term name="month-06">červen</term>
+      <term name="month-07">červenec</term>
+      <term name="month-08">srpen</term>
+      <term name="month-09">září</term>
+      <term name="month-10">říjen</term>
+      <term name="month-11">listopad</term>
+      <term name="month-12">prosinec</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">led</term>
+      <term name="month-02" form="short">úno</term>
+      <term name="month-03" form="short">bře</term>
+      <term name="month-04" form="short">dub</term>
+      <term name="month-05" form="short">kvě</term>
+      <term name="month-06" form="short">čer</term>
+      <term name="month-07" form="short">čvc</term>
+      <term name="month-08" form="short">srp</term>
+      <term name="month-09" form="short">zář</term>
+      <term name="month-10" form="short">říj</term>
+      <term name="month-11" form="short">lis</term>
+      <term name="month-12" form="short">pro</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-da-DK.xml b/locales/locales-da-DK.xml
--- a/locales/locales-da-DK.xml
+++ b/locales/locales-da-DK.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="da">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">References</term>
-    <term name="no date">nd</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>line</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="da">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="-" range-delimiter="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="-" range-delimiter="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">accessed</term>
+      <term name="and">and</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">from</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">nd</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>line</single>
+         <multiple>line</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>page</single>
+         <multiple>pages</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraph</single>
+         <multiple>paragraph</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">no</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>translator</single>
+         <multiple>translators</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran</single>
+         <multiple>trans</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">edited by</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">translated by</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">January</term>
+      <term name="month-02">February</term>
+      <term name="month-03">March</term>
+      <term name="month-04">April</term>
+      <term name="month-05">May</term>
+      <term name="month-06">June</term>
+      <term name="month-07">July</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">October</term>
+      <term name="month-11">November</term>
+      <term name="month-12">December</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Oct</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-de-AT.xml b/locales/locales-de-AT.xml
--- a/locales/locales-de-AT.xml
+++ b/locales/locales-de-AT.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="de">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ebd.</term>
-    <term name="accessed">zugegriffen</term>
-    <term name="retrieved">abgerufen</term>
-    <term name="from">von</term>
-    <term name="forthcoming">i.E.</term>
-    <term name="references">Quellenangabe</term>
-    <term name="no date">o.J.</term>
-    <term name="and">und</term>
-    <term name="et-al">u.a.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>Zeile</single>
-      <multiple>Zeilen</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>Seite</single>
-      <multiple>Seiten</multiple>
-    </term>
-    <term name="paragraph">
-      <single>Absatz</single>
-      <multiple>Absätze</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">Nr</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>S</single>
-      <multiple>S</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>Herausgeber</single>
-      <multiple>Herausgeber</multiple>
-    </term>
-    <term name="translator">
-      <single>Übersetzer</single>
-      <multiple>Übersetzer</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>Hrsg</single>
-      <multiple>Hrsg</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>Übers</single>
-      <multiple>Übers</multiple>
-    </term>
-    <term name="editor" form="verb">Hg. v</term>
-    <term name="translator" form="verb">Übers. v</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">Jänner</term>
-    <term name="month-02">Februar</term>
-    <term name="month-03">März</term>
-    <term name="month-04">April</term>
-    <term name="month-05">Mai</term>
-    <term name="month-06">Juni</term>
-    <term name="month-07">Juli</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">Oktober</term>
-    <term name="month-11">November</term>
-    <term name="month-12">Dezember</term>
-    <term name="month-01" form="short">Jän</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">Mai</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Okt</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dez</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="de">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">zugegriffen</term>
+      <term name="and">und</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">u.a.</term>
+      <term name="forthcoming">i.E.</term>
+      <term name="from">von</term>
+      <term name="ibid">ebd.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">o.J.</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">abgerufen</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>Zeile</single>
+         <multiple>Zeilen</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>Seite</single>
+         <multiple>Seiten</multiple>
+      </term>
+      <term name="paragraph">
+         <single>Absatz</single>
+         <multiple>Absätze</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">Nr</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>S</single>
+         <multiple>S</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>Herausgeber</single>
+         <multiple>Herausgeber</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>Übersetzer</single>
+         <multiple>Übersetzer</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>Hrsg</single>
+         <multiple>Hrsg</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>Übers</single>
+         <multiple>Übers</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">Hg. v</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">Übers. v</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Jänner</term>
+      <term name="month-02">Februar</term>
+      <term name="month-03">März</term>
+      <term name="month-04">April</term>
+      <term name="month-05">Mai</term>
+      <term name="month-06">Juni</term>
+      <term name="month-07">Juli</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">Oktober</term>
+      <term name="month-11">November</term>
+      <term name="month-12">Dezember</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jän</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">Mai</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Okt</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dez</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-de-CH.xml b/locales/locales-de-CH.xml
--- a/locales/locales-de-CH.xml
+++ b/locales/locales-de-CH.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="de">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ebd.</term>
-    <term name="accessed">zugegriffen</term>
-    <term name="retrieved">abgerufen</term>
-    <term name="from">von</term>
-    <term name="forthcoming">i.E.</term>
-    <term name="references">Quellenangabe</term>
-    <term name="no date">o.J.</term>
-    <term name="and">und</term>
-    <term name="et-al">u.a.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>Zeile</single>
-      <multiple>Zeilen</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>Seite</single>
-      <multiple>Seiten</multiple>
-    </term>
-    <term name="paragraph">
-      <single>Absatz</single>
-      <multiple>Absätze</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">Nr</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>S</single>
-      <multiple>S</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>Herausgeber</single>
-      <multiple>Herausgeber</multiple>
-    </term>
-    <term name="translator">
-      <single>Übersetzer</single>
-      <multiple>Übersetzer</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>Hrsg</single>
-      <multiple>Hrsg</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>Übers</single>
-      <multiple>Übers</multiple>
-    </term>
-    <term name="editor" form="verb">Hg. v</term>
-    <term name="translator" form="verb">Übers. v</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">Januar</term>
-    <term name="month-02">Februar</term>
-    <term name="month-03">März</term>
-    <term name="month-04">April</term>
-    <term name="month-05">Mai</term>
-    <term name="month-06">Juni</term>
-    <term name="month-07">Juli</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">Oktober</term>
-    <term name="month-11">November</term>
-    <term name="month-12">Dezember</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">Mai</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Okt</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dez</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="de">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">zugegriffen</term>
+      <term name="and">und</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">u.a.</term>
+      <term name="forthcoming">i.E.</term>
+      <term name="from">von</term>
+      <term name="ibid">ebd.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">o.J.</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">abgerufen</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>Zeile</single>
+         <multiple>Zeilen</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>Seite</single>
+         <multiple>Seiten</multiple>
+      </term>
+      <term name="paragraph">
+         <single>Absatz</single>
+         <multiple>Absätze</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">Nr</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>S</single>
+         <multiple>S</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>Herausgeber</single>
+         <multiple>Herausgeber</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>Übersetzer</single>
+         <multiple>Übersetzer</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>Hrsg</single>
+         <multiple>Hrsg</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>Übers</single>
+         <multiple>Übers</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">Hg. v</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">Übers. v</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Januar</term>
+      <term name="month-02">Februar</term>
+      <term name="month-03">März</term>
+      <term name="month-04">April</term>
+      <term name="month-05">Mai</term>
+      <term name="month-06">Juni</term>
+      <term name="month-07">Juli</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">Oktober</term>
+      <term name="month-11">November</term>
+      <term name="month-12">Dezember</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">Mai</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Okt</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dez</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-de-DE.xml b/locales/locales-de-DE.xml
--- a/locales/locales-de-DE.xml
+++ b/locales/locales-de-DE.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="de">
-    <term name="at">auf</term>
-    <term name="in">in</term>
-    <term name="ibid">ebd</term>
-    <term name="accessed">zugegriffen</term>
-    <term name="retrieved">abgerufen</term>
-    <term name="from">von</term>
-    <term name="forthcoming">i. E.</term>
-    <term name="references">Quellenangabe</term>
-    <term name="no date">o. J.</term>
-    <term name="and">und</term>
-    <term name="et-al">u. a.</term>
-    <term name="interview">Interview</term>
-    <term name="letter">Brief</term>
-    <term name="anonymous">ohne Autor</term>
-    <term name="anonymous" form="short">o. A.</term>
-    <term name="and others">und andere</term>
-    <term name="in press">im Druck</term>
-    <term name="online">online</term>
-    <term name="cited">zitiert</term>
-    <term name="internet">Internet</term>
-    <term name="presented at">gehalten auf der</term>
-    <term name="anthropology">Anthropologie</term>
-    <term name="astronomy">Astronomie</term>
-    <term name="biology">Biologie</term>
-    <term name="botany">Botanik</term>
-    <term name="chemistry">Chemie</term>
-    <term name="engineering">Ingenieurswissenschaften</term>
-    <term name="generic-base">generischer Stil</term>
-    <term name="geography">Geographie</term>
-    <term name="geology">Geologie</term>
-    <term name="history">Geschichte</term>
-    <term name="humanities">Geisteswissenschaften</term>
-    <term name="literature">Literatur</term>
-    <term name="math">Mathematik</term>
-    <term name="medicine">Medizin</term>
-    <term name="philosophy">Philosophie</term>
-    <term name="physics">Physik</term>
-    <term name="psychology">Psychologie</term>
-    <term name="sociology">Soziologie</term>
-    <term name="science">Naturwissenschaften</term>
-    <term name="political_science">Politikwissenschaft</term>
-    <term name="social_science">Sozialwissenschaften</term>
-    <term name="theology">Theologie</term>
-    <term name="zoology">Zoologie</term>
-    <term name="book">
-      <single>Buch</single>
-      <multiple>Bücher</multiple>
-    </term>
-    <term name="chapter">
-      <single>Kapitel</single>
-      <multiple>Kapitel</multiple>
-    </term>
-    <term name="column">
-      <single>Spalte</single>
-      <multiple>Spalten</multiple>
-    </term>
-    <term name="figure">
-      <single>Abbildung</single>
-      <multiple>Abbildungen</multiple>
-    </term>
-    <term name="folio">
-      <single>Blatt</single>
-      <multiple>Blätter</multiple>
-    </term>
-    <term name="issue">
-      <single>Nummer</single>
-      <multiple>Nummern</multiple>
-    </term>
-    <term name="line">
-      <single>Zeile</single>
-      <multiple>Zeilen</multiple>
-    </term>
-    <term name="note">
-      <single>Note</single>
-      <multiple>Noten</multiple>
-    </term>
-    <term name="opus">
-      <single>Opus</single>
-      <multiple>Opera</multiple>
-    </term>
-    <term name="page">
-      <single>Seite</single>
-      <multiple>Seiten</multiple>
-    </term>
-    <term name="paragraph">
-      <single>Absatz</single>
-      <multiple>Absätze</multiple>
-    </term>
-    <term name="part">
-      <single>Teil</single>
-      <multiple>Teile</multiple>
-    </term>
-    <term name="section">
-      <single>Abschnitt</single>
-      <multiple>Abschnitte</multiple>
-    </term>
-    <term name="volume">
-      <single>Band</single>
-      <multiple>Bände</multiple>
-    </term>
-    <term name="edition">
-      <single>Auflage</single>
-      <multiple>Auflagen</multiple>
-    </term>
-    <term name="verse">
-      <single>Vers</single>
-      <multiple>Verse</multiple>
-    </term>
-    <term name="book" form="short">B</term>
-    <term name="chapter" form="short">Kap</term>
-    <term name="column" form="short">Sp</term>
-    <term name="figure" form="short">Abb</term>
-    <term name="folio" form="short">Fol</term>
-    <term name="issue" form="short">Nr</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>S</single>
-      <multiple>S</multiple>
-    </term>
-    <term name="paragraph" form="short">Abs</term>
-    <term name="part" form="short">Teil</term>
-    <term name="section" form="short">Abschn</term>
-    <term name="verse" form="short">
-      <single>V</single>
-      <multiple>Vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>Bd</single>
-      <multiple>Bd</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">Aufl</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>Herausgeber</single>
-      <multiple>Herausgeber</multiple>
-    </term>
-    <term name="translator">
-      <single>Übersetzer</single>
-      <multiple>Übersetzer</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>Hrsg</single>
-      <multiple>Hrsg</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>Übers</single>
-      <multiple>Übers</multiple>
-    </term>
-    <term name="editor" form="verb">herausgegeben von</term>
-    <term name="translator" form="verb">übersetzt von</term>
-    <term name="recipient" form="verb">an</term>
-    <term name="interviewer" form="verb">interviewt von</term>
-    <term name="editor" form="verb-short">hg. v</term>
-    <term name="translator" form="verb-short">übers. v</term>
-    <term name="month-01">Januar</term>
-    <term name="month-02">Februar</term>
-    <term name="month-03">März</term>
-    <term name="month-04">April</term>
-    <term name="month-05">Mai</term>
-    <term name="month-06">Juni</term>
-    <term name="month-07">Juli</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">Oktober</term>
-    <term name="month-11">November</term>
-    <term name="month-12">Dezember</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">März</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">Mai</term>
-    <term name="month-06" form="short">Juni</term>
-    <term name="month-07" form="short">Juli</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Okt</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dez</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="de">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">zugegriffen</term>
+      <term name="and">und</term>
+      <term name="and others">und andere</term>
+      <term name="anonymous">ohne Autor</term>
+      <term name="anonymous" form="short">o. A.</term>
+      <term name="at">auf</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">zitiert</term>
+      <term name="edition">
+         <single>Auflage</single>
+         <multiple>Auflagen</multiple>
+      </term>
+      <term name="edition" form="short">Aufl</term>
+      <term name="et-al">u. a.</term>
+      <term name="forthcoming">i. E.</term>
+      <term name="from">von</term>
+      <term name="ibid">ebd</term>
+      <term name="in">in</term>
+      <term name="in press">im Druck</term>
+      <term name="internet">Internet</term>
+      <term name="interview">Interview</term>
+      <term name="letter">Brief</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">o. J.</term>
+      <term name="online">online</term>
+      <term name="presented at">gehalten auf der</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">abgerufen</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">Anthropologie</term>
+      <term name="astronomy">Astronomie</term>
+      <term name="biology">Biologie</term>
+      <term name="botany">Botanik</term>
+      <term name="chemistry">Chemie</term>
+      <term name="engineering">Ingenieurswissenschaften</term>
+      <term name="generic-base">generischer Stil</term>
+      <term name="geography">Geographie</term>
+      <term name="geology">Geologie</term>
+      <term name="history">Geschichte</term>
+      <term name="humanities">Geisteswissenschaften</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">Literatur</term>
+      <term name="math">Mathematik</term>
+      <term name="medicine">Medizin</term>
+      <term name="philosophy">Philosophie</term>
+      <term name="physics">Physik</term>
+      <term name="psychology">Psychologie</term>
+      <term name="sociology">Soziologie</term>
+      <term name="science">Naturwissenschaften</term>
+      <term name="political_science">Politikwissenschaft</term>
+      <term name="social_science">Sozialwissenschaften</term>
+      <term name="theology">Theologie</term>
+      <term name="zoology">Zoologie</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>Buch</single>
+         <multiple>Bücher</multiple>
+      </term>
+      <term name="chapter">
+         <single>Kapitel</single>
+         <multiple>Kapitel</multiple>
+      </term>
+      <term name="column">
+         <single>Spalte</single>
+         <multiple>Spalten</multiple>
+      </term>
+      <term name="figure">
+         <single>Abbildung</single>
+         <multiple>Abbildungen</multiple>
+      </term>
+      <term name="folio">
+         <single>Blatt</single>
+         <multiple>Blätter</multiple>
+      </term>
+      <term name="issue">
+         <single>Nummer</single>
+         <multiple>Nummern</multiple>
+      </term>
+      <term name="line">
+         <single>Zeile</single>
+         <multiple>Zeilen</multiple>
+      </term>
+      <term name="note">
+         <single>Note</single>
+         <multiple>Noten</multiple>
+      </term>
+      <term name="opus">
+         <single>Opus</single>
+         <multiple>Opera</multiple>
+      </term>
+      <term name="page">
+         <single>Seite</single>
+         <multiple>Seiten</multiple>
+      </term>
+      <term name="paragraph">
+         <single>Absatz</single>
+         <multiple>Absätze</multiple>
+      </term>
+      <term name="part">
+         <single>Teil</single>
+         <multiple>Teile</multiple>
+      </term>
+      <term name="section">
+         <single>Abschnitt</single>
+         <multiple>Abschnitte</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>Vers</single>
+         <multiple>Verse</multiple>
+      </term>
+      <term name="volume">
+         <single>Band</single>
+         <multiple>Bände</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">B</term>
+      <term name="chapter" form="short">Kap</term>
+      <term name="column" form="short">Sp</term>
+      <term name="figure" form="short">Abb</term>
+      <term name="folio" form="short">Fol</term>
+      <term name="issue" form="short">Nr</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>S</single>
+         <multiple>S</multiple>
+      </term>
+      <term name="paragraph" form="short">Abs</term>
+      <term name="part" form="short">Teil</term>
+      <term name="section" form="short">Abschn</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>V</single>
+         <multiple>Vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>Bd</single>
+         <multiple>Bd</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>Herausgeber</single>
+         <multiple>Herausgeber</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>Übersetzer</single>
+         <multiple>Übersetzer</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>Hrsg</single>
+         <multiple>Hrsg</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>Übers</single>
+         <multiple>Übers</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">herausgegeben von</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">übersetzt von</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">an</term>
+      <term name="interviewer" form="verb">interviewt von</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">hg. v</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">übers. v</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Januar</term>
+      <term name="month-02">Februar</term>
+      <term name="month-03">März</term>
+      <term name="month-04">April</term>
+      <term name="month-05">Mai</term>
+      <term name="month-06">Juni</term>
+      <term name="month-07">Juli</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">Oktober</term>
+      <term name="month-11">November</term>
+      <term name="month-12">Dezember</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">März</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">Mai</term>
+      <term name="month-06" form="short">Juni</term>
+      <term name="month-07" form="short">Juli</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Okt</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dez</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-el-GR.xml b/locales/locales-el-GR.xml
--- a/locales/locales-el-GR.xml
+++ b/locales/locales-el-GR.xml
@@ -1,199 +1,303 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="el">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">references</term>
-    <term name="no date">n.d.</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>lines</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="el">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">ημερομηνία πρόσβασης</term>
+      <term name="and">και</term>
+      <term name="and others">και άλλοι</term>
+      <term name="anonymous">ανώνυμο</term>
+      <term name="anonymous" form="short">ανών</term>
+      <term name="at">εφ</term>
+      <term name="by">του</term>
+      <term name="circa">περίπου</term>
+      <term name="circa" form="short">περ</term>
+      <term name="cited">παρατίθεται στο</term>
+      <term name="edition">
+         <single>έκδοση</single>
+         <multiple>εκδόσεις</multiple>
+      </term>
+      <term name="edition" form="short">έκδ</term>
+      <term name="et-al">κ.ά.</term>
+      <term name="forthcoming">προσεχές</term>
+      <term name="from">από</term>
+      <term name="ibid">στο ίδιο</term>
+      <term name="in">στο</term>
+      <term name="in press">υπό έκδοση</term>
+      <term name="internet">διαδίκτυο</term>
+      <term name="interview">συνέντευξη</term>
+      <term name="letter">επιστολή</term>
+      <term name="no date">χωρίς χρονολογία</term>
+      <term name="no date" form="short">χ.χ.</term>
+      <term name="online">έκδοση σε ψηφιακή μορφή</term>
+      <term name="presented at">παρουσιάστηκε στο</term>
+      <term name="reference">
+         <single>αναφορά</single>
+         <multiple>αναφορές</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>αναφ.</single>
+         <multiple>αναφ.</multiple>
+      </term>
+      <term name="retrieved">ανακτήθηκε</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">μ.Χ.</term>
+      <term name="bc">π.Χ.</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">«</term>
+      <term name="close-quote">»</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">ος</term>
+      <term name="ordinal-02">ος</term>
+      <term name="ordinal-03">ος</term>
+      <term name="ordinal-04">ος</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">πρώτος</term>
+      <term name="long-ordinal-02">δεύτερος</term>
+      <term name="long-ordinal-03">τρίτος</term>
+      <term name="long-ordinal-04">τέταρτος</term>
+      <term name="long-ordinal-05">πέμπτος</term>
+      <term name="long-ordinal-06">έκτος</term>
+      <term name="long-ordinal-07">έβδομος</term>
+      <term name="long-ordinal-08">όγδοος</term>
+      <term name="long-ordinal-09">ένατος</term>
+      <term name="long-ordinal-10">δέκατος</term>
+
+      <!-- CATEGORIES -->
+    <term name="anthropology">ανθρωπολογία</term>
+    <term name="astronomy">αστρονομία</term>
+    <term name="biology">βιολογία</term>
+    <term name="botany">βοτανική</term>
+    <term name="chemistry">χημεία</term>
+    <term name="engineering">μηχανική</term>
+    <term name="generic-base">γενική βάση</term>
+    <term name="geography">γεωγραφία</term>
+    <term name="geology">γεωλογία</term>
+    <term name="history">ιστορία</term>
+    <term name="humanities">ανθρωπιστικές σπουδές</term>
+    <term name="literature">λογοτεχνία</term>
+    <term name="math">μαθηματικά</term>
+    <term name="medicine">ιατρική</term>
+    <term name="philosophy">φιλοσοφία</term>
+    <term name="physics">φυσική</term>
+    <term name="psychology">ψυχολογία</term>
+    <term name="sociology">κοινωνιολογία</term>
+    <term name="science">θετικές επιστήμες</term>
+    <term name="political_science">πολιτικές επιστήμες</term>
+    <term name="social_science">κοινωνικές επιστήμες</term>
+    <term name="theology">θεολογία</term>
+    <term name="zoology">ζωολογία</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>βιβλίο</single>
+         <multiple>βιβλίο</multiple>
+      </term>
+      <term name="chapter">
+         <single>κεφάλαιο</single>
+         <multiple>κεφάλαια</multiple>
+      </term>
+      <term name="column">
+         <single>στήλη</single>
+         <multiple>στήλες</multiple>
+      </term>
+      <term name="figure">
+         <single>εικόνα</single>
+         <multiple>εικόνες</multiple>
+      </term>
+      <term name="folio">
+         <single>φάκελος</single>
+         <multiple>φάκελοι</multiple>
+      </term>
+      <term name="issue">
+         <single>τεύχος</single>
+         <multiple>τεύχη</multiple>
+      </term>
+      <term name="line">
+         <single>σειρά</single>
+         <multiple>σειρές</multiple>
+      </term>
+      <term name="note">
+         <single>σημείωση</single>
+         <multiple>σημειώσεις</multiple>
+      </term>
+      <term name="opus">
+         <single>έργο</single>
+         <multiple>έργα</multiple>
+      </term>
+      <term name="page">
+         <single>σελίδα</single>
+         <multiple>σελίδες</multiple>
+      </term>
+      <term name="paragraph">
+         <single>παράγραφος</single>
+         <multiple>παράγραφοι</multiple>
+      </term>
+      <term name="part">
+         <single>μέρος</single>
+         <multiple>μέρη</multiple>
+      </term>
+      <term name="section">
+         <single>τμήμα</single>
+         <multiple>τμήματα</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>λήμμα</single>
+         <multiple>λήμματα</multiple>
+      </term>
+      <term name="verse">
+         <single>στίχος</single>
+         <multiple>στίχοι</multiple>
+      </term>
+      <term name="volume">
+         <single>τόμος</single>
+         <multiple>τόμοι</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">βιβ</term>
+      <term name="chapter" form="short">κεφ</term>
+      <term name="column" form="short">στ</term>
+      <term name="figure" form="short">εικ</term>
+      <term name="folio" form="short">φακ</term>
+      <term name="issue" form="short">τχ</term>
+      <term name="opus" form="short">έργ</term>
+      <term name="page" form="short">
+         <single>σ</single>
+         <multiple>σσ</multiple>
+      </term>
+      <term name="paragraph" form="short">παρ</term>
+      <term name="part" form="short">μερ</term>
+      <term name="section" form="short">τμ</term>
+      <term name="sub verbo" form="short">
+         <single>λήμ</single>
+         <multiple>λήμ</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>στ</single>
+         <multiple>στ</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>τμ</single>
+         <multiple>τμ</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>επιμελητής</single>
+         <multiple>επιμελητές</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>γενική εποπτεία</single>
+         <multiple>γενική εποπτεία</multiple>
+      </term>
+      <term name="translator">
+         <single>μεταφραστής</single>
+         <multiple>μεταφραστές</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>μετάφραση και επιμέλεια</single>
+         <multiple>μετάφραση και επιμέλεια</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>επιμ</single>
+         <multiple>επιμ</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>γεν. επ</single>
+         <multiple>γεν. επ</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>μτφ.</single>
+         <multiple>μτφ.</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>μτφ. και επιμ</single>
+         <multiple>μτφ. και επιμ</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">επιμ</term>
+      <term name="editorial-director" form="verb">γεν επ</term>
+      <term name="translator" form="verb">μτφ</term>
+      <term name="editortranslator" form="verb">μτφ. και επιμ</term>
+      <term name="recipient" form="verb">στο</term>
+      <term name="interviewer" form="verb">συνέντευξη</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">στο</term>
+      <term name="editor" form="verb-short">επιμ</term>
+      <term name="editorial-director" form="verb-short">γεν. επ</term>
+      <term name="translator" form="verb-short">μτφ</term>
+      <term name="editortranslator" form="verb-short">μτφ. και επιμ</term>
+
+      <!-- LONG MONTH FORMS -->
+    <term name="month-01">Ιανουάριος</term>
+    <term name="month-02">Φεβρουάριος</term>
+    <term name="month-03">Μάρτιος</term>
+    <term name="month-04">Απρίλιος</term>
+    <term name="month-05">Μάιος</term>
+    <term name="month-06">Ιούνιος</term>
+    <term name="month-07">Ιούλιος</term>
+    <term name="month-08">Αύγουστος</term>
+    <term name="month-09">Σεπτέμβριος</term>
+    <term name="month-10">Οκτώβριος</term>
+    <term name="month-11">Νοέμβριος</term>
+    <term name="month-12">Δεκέμβριος</term>
+
+      <!-- SHORT MONTH FORMS -->
+    <term name="month-01" form="short">Ιανουαρίου</term>
+    <term name="month-02" form="short">Φεβρουαρίου</term>
+    <term name="month-03" form="short">Μαρτίου</term>
+    <term name="month-04" form="short">Απριλίου</term>
+    <term name="month-05" form="short">Μαΐου</term>
+    <term name="month-06" form="short">Ιουνίου</term>
+    <term name="month-07" form="short">Ιουλίου</term>
+    <term name="month-08" form="short">Αυγούστου</term>
+    <term name="month-09" form="short">Σεπτεμβρίου</term>
+    <term name="month-10" form="short">Οκτωβρίου</term>
+    <term name="month-11" form="short">Νοεμβρίου</term>
+    <term name="month-12" form="short">Δεκεμβρίου</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Άνοιξη</term>
+      <term name="season-02">Καλοκαίρι</term>
+      <term name="season-03">Φθινόπωρο</term>
+      <term name="season-04">Χειμώνας</term>
+   </terms>
+</locale>
diff --git a/locales/locales-en-US.xml b/locales/locales-en-US.xml
--- a/locales/locales-en-US.xml
+++ b/locales/locales-en-US.xml
@@ -1,219 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="en">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">references</term>
-    <term name="no date">n.d.</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    
-    <!-- CATEGORIES -->
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    
-    <!-- LONG LOCATOR FORMS -->
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>lines</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    
-    <!-- SHORT LOCATOR FORMS -->
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-    	<single>vol</single>
-    	<multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    
-    <!-- SYMBOL LOCATOR FORMS -->
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    
-    <!-- LONG ROLE FORMS -->
-    <term name="author">
-      <single></single>
-      <multiple></multiple>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    
-    <!-- SHORT ROLE FORMS -->
-    <term name="author" form="short">
-      <single></single>
-      <multiple></multiple>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    
-    <!-- VERB ROLE FORMS -->
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    
-    <!-- SHORT VERB ROLE FORMS -->
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    
-    <!-- LONG MONTH FORMS -->
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    
-    <!-- SHORT MONTH FORMS -->
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-	<term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="en">
+   <style-options punctuation-in-quote="true"/>
+   <date form="text">
+      <date-part name="month" suffix=" "/>
+      <date-part name="day" form="numeric-leading-zeros" suffix=", "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">accessed</term>
+      <term name="and">and</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon.</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed.</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">from</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">n.d.</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>line</single>
+         <multiple>lines</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>page</single>
+         <multiple>pages</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraph</single>
+         <multiple>paragraph</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk.</term>
+      <term name="chapter" form="short">chap.</term>
+      <term name="column" form="short">col.</term>
+      <term name="figure" form="short">fig.</term>
+      <term name="folio" form="short">f.</term>
+      <term name="issue" form="short">no.</term>
+      <term name="opus" form="short">op.</term>
+      <term name="page" form="short">
+         <single>p.</single>
+         <multiple>pp.</multiple>
+      </term>
+      <term name="paragraph" form="short">para.</term>
+      <term name="part" form="short">pt.</term>
+      <term name="section" form="short">sec.</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v.</single>
+         <multiple>vv.</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol.</single>
+         <multiple>vols.</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>translator</single>
+         <multiple>translators</multiple>
+      </term>
+      <term name="editortranslator">
+        <single>editor &amp; translator</single>
+        <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran.</single>
+         <multiple>trans.</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+        <single>ed. &amp; tran.</single>
+        <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">edited by</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">translated by</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed.</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans.</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">January</term>
+      <term name="month-02">February</term>
+      <term name="month-03">March</term>
+      <term name="month-04">April</term>
+      <term name="month-05">May</term>
+      <term name="month-06">June</term>
+      <term name="month-07">July</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">October</term>
+      <term name="month-11">November</term>
+      <term name="month-12">December</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan.</term>
+      <term name="month-02" form="short">Feb.</term>
+      <term name="month-03" form="short">Mar.</term>
+      <term name="month-04" form="short">Apr.</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun.</term>
+      <term name="month-07" form="short">Jul.</term>
+      <term name="month-08" form="short">Aug.</term>
+      <term name="month-09" form="short">Sep.</term>
+      <term name="month-10" form="short">Oct.</term>
+      <term name="month-11" form="short">Nov.</term>
+      <term name="month-12" form="short">Dec.</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-es-ES.xml b/locales/locales-es-ES.xml
--- a/locales/locales-es-ES.xml
+++ b/locales/locales-es-ES.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="es">
-    <term name="at">en</term>
-    <term name="in">en</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accedido</term>
-    <term name="retrieved">recuperado</term>
-    <term name="from">a partir de</term>
-    <term name="forthcoming">previsto</term>
-    <term name="references">Referencias</term>
-    <term name="no date">s.d.</term>
-    <term name="and">y</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>libro</single>
-      <multiple>libros</multiple>
-    </term>
-    <term name="chapter">
-      <single>capítulo</single>
-      <multiple>capítulos</multiple>
-    </term>
-    <term name="column">
-      <single>columna</single>
-      <multiple>columnas</multiple>
-    </term>
-    <term name="figure">
-      <single>figura</single>
-      <multiple>figuras</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>número</single>
-      <multiple>números</multiple>
-    </term>
-    <term name="line">
-      <single>línea</single>
-      <multiple>líneas</multiple>
-    </term>
-    <term name="note">
-      <single>nota</single>
-      <multiple>notas</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>página</single>
-      <multiple>páginas</multiple>
-    </term>
-    <term name="paragraph">
-      <single>párrafo</single>
-      <multiple>párrafos</multiple>
-    </term>
-    <term name="part">
-      <single>parte</single>
-      <multiple>partes</multiple>
-    </term>
-    <term name="section">
-      <single>sección</single>
-      <multiple>secciones</multiple>
-    </term>
-    <term name="volume">
-      <single>volumen</single>
-      <multiple>volúmenes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verso</single>
-      <multiple>versos</multiple>
-    </term>
-    <term name="book" form="short">lib</term>
-    <term name="chapter" form="short">cap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">nº</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>pág</single>
-      <multiple>págs</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editores</multiple>
-    </term>
-    <term name="translator">
-      <single>traductor</single>
-      <multiple>traductores</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>trad</single>
-      <multiple>trads</multiple>
-    </term>
-    <term name="editor" form="verb">editado por</term>
-    <term name="translator" form="verb">traducido por</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trad</term>
-    <term name="month-01">Enero</term>
-    <term name="month-02">Febrero</term>
-    <term name="month-03">Marzo</term>
-    <term name="month-04">Abril</term>
-    <term name="month-05">Mayo</term>
-    <term name="month-06">Junio</term>
-    <term name="month-07">Julio</term>
-    <term name="month-08">Agosto</term>
-    <term name="month-09">Septiembre</term>
-    <term name="month-10">Octubre</term>
-    <term name="month-11">Noviembre</term>
-    <term name="month-12">Diciembre</term>
-    <term name="month-01" form="short">Ene</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Abr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Ago</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dic</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="es">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" de "/>
+      <date-part name="month" suffix=" de "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">accedido</term>
+      <term name="and">y</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">en</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">previsto</term>
+      <term name="from">a partir de</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">en</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">s.d.</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">recuperado</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>libro</single>
+         <multiple>libros</multiple>
+      </term>
+      <term name="chapter">
+         <single>capítulo</single>
+         <multiple>capítulos</multiple>
+      </term>
+      <term name="column">
+         <single>columna</single>
+         <multiple>columnas</multiple>
+      </term>
+      <term name="figure">
+         <single>figura</single>
+         <multiple>figuras</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>número</single>
+         <multiple>números</multiple>
+      </term>
+      <term name="line">
+         <single>línea</single>
+         <multiple>líneas</multiple>
+      </term>
+      <term name="note">
+         <single>nota</single>
+         <multiple>notas</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>página</single>
+         <multiple>páginas</multiple>
+      </term>
+      <term name="paragraph">
+         <single>párrafo</single>
+         <multiple>párrafos</multiple>
+      </term>
+      <term name="part">
+         <single>parte</single>
+         <multiple>partes</multiple>
+      </term>
+      <term name="section">
+         <single>sección</single>
+         <multiple>secciones</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verso</single>
+         <multiple>versos</multiple>
+      </term>
+      <term name="volume">
+         <single>volumen</single>
+         <multiple>volúmenes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">lib</term>
+      <term name="chapter" form="short">cap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">nº</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>pág</single>
+         <multiple>págs</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editores</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>traductor</single>
+         <multiple>traductores</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>trad</single>
+         <multiple>trads</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">editado por</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">traducido por</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trad</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Enero</term>
+      <term name="month-02">Febrero</term>
+      <term name="month-03">Marzo</term>
+      <term name="month-04">Abril</term>
+      <term name="month-05">Mayo</term>
+      <term name="month-06">Junio</term>
+      <term name="month-07">Julio</term>
+      <term name="month-08">Agosto</term>
+      <term name="month-09">Septiembre</term>
+      <term name="month-10">Octubre</term>
+      <term name="month-11">Noviembre</term>
+      <term name="month-12">Diciembre</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Ene</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Abr</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Ago</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Oct</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dic</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-et-EE.xml b/locales/locales-et-EE.xml
--- a/locales/locales-et-EE.xml
+++ b/locales/locales-et-EE.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="et">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">references</term>
-    <term name="no date">n.d.</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>lines</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="et">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">vaadatud</term>
+      <term name="and">ja</term>
+      <term name="and others">ja teised</term>
+      <term name="anonymous">anonüümne</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at"/>
+      <term name="by"></term>
+      <term name="circa">umbes</term>
+      <term name="circa" form="short">u</term>
+      <term name="cited">tsiteeritud</term>
+      <term name="edition">
+         <single>väljaanne</single>
+         <multiple>väljaanded</multiple>
+      </term>
+      <term name="edition" form="short">tr</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">ilmumisel</term>
+      <term name="from"/>
+      <term name="ibid">ibid.</term>
+      <term name="in"/>
+      <term name="in press">trükis</term>
+      <term name="internet">internet</term>
+      <term name="interview">intervjuu</term>
+      <term name="letter">kiri</term>
+      <term name="no date">s.a.</term>
+      <term name="no date" form="short">s.a.</term>
+      <term name="online">online</term>
+      <term name="presented at">esitatud</term>
+      <term name="reference">
+         <single>viide</single>
+         <multiple>viited</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>viide</single>
+         <multiple>viited</multiple>
+      </term>
+      <term name="retrieved">salvestatud</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">pKr</term>
+      <term name="bc">eKr</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">„</term>
+      <term name="close-quote">“</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01"></term>
+      <term name="ordinal-02"></term>
+      <term name="ordinal-03"></term>
+      <term name="ordinal-04"></term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">esimene</term>
+      <term name="long-ordinal-02">teine</term>
+      <term name="long-ordinal-03">kolmas</term>
+      <term name="long-ordinal-04">neljas</term>
+      <term name="long-ordinal-05">viies</term>
+      <term name="long-ordinal-06">kuues</term>
+      <term name="long-ordinal-07">seitsmes</term>
+      <term name="long-ordinal-08">kaheksas</term>
+      <term name="long-ordinal-09">üheksas</term>
+      <term name="long-ordinal-10">kümnes</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropoloogia</term>
+      <term name="astronomy">astronoomia</term>
+      <term name="biology">bioloogia</term>
+      <term name="botany">botaanika</term>
+      <term name="chemistry">keemia</term>
+      <term name="engineering">tehnikateadus</term>
+      <term name="generic-base">määratlemata</term>
+      <term name="geography">geograafia</term>
+      <term name="geology">geoloogia</term>
+      <term name="history">ajalugu</term>
+      <term name="humanities">humanitaarteadus</term>
+      <term name="linguistics">lingvistika</term>
+      <term name="literature">kirjandusteadus</term>
+      <term name="math">matemaatika</term>
+      <term name="medicine">meditsiin</term>
+      <term name="philosophy">filosoofia</term>
+      <term name="physics">füüsika</term>
+      <term name="psychology">psühholoogia</term>
+      <term name="sociology">sotsioloogia</term>
+      <term name="science">reaalteadus</term>
+      <term name="political_science">politoloogia</term>
+      <term name="social_science">sotsiaalteadus</term>
+      <term name="theology">teoloogia</term>
+      <term name="zoology">zooloogia</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>raamat</single>
+         <multiple>raamatud</multiple>
+      </term>
+      <term name="chapter">
+         <single>peatükk</single>
+         <multiple>peatükid</multiple>
+      </term>
+      <term name="column">
+         <single>veerg</single>
+         <multiple>veerud</multiple>
+      </term>
+      <term name="figure">
+         <single>joonis</single>
+         <multiple>joonised</multiple>
+      </term>
+      <term name="folio">
+         <single>foolio</single>
+         <multiple>fooliod</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbrid</multiple>
+      </term>
+      <term name="line">
+         <single>rida</single>
+         <multiple>read</multiple>
+      </term>
+      <term name="note">
+         <single>viide</single>
+         <multiple>viited</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>lehekülg</single>
+         <multiple>leheküljed</multiple>
+      </term>
+      <term name="paragraph">
+         <single>lõik</single>
+         <multiple>lõigud</multiple>
+      </term>
+      <term name="part">
+         <single>osa</single>
+         <multiple>osad</multiple>
+      </term>
+      <term name="section">
+         <single>alajaotis</single>
+         <multiple>alajaotised</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>värss</single>
+         <multiple>värsid</multiple>
+      </term>
+      <term name="volume">
+         <single>köide</single>
+         <multiple>köited</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">rmt</term>
+      <term name="chapter" form="short">ptk</term>
+      <term name="column" form="short">v</term>
+      <term name="figure" form="short">joon</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">nr</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>lk</single>
+         <multiple>lk</multiple>
+      </term>
+      <term name="paragraph" form="short">lõik</term>
+      <term name="part" form="short">osa</term>
+      <term name="section" form="short">alajaot.</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>kd</single>
+         <multiple>kd</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>toimetaja</single>
+         <multiple>toimetajad</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>toimetaja</single>
+         <multiple>toimetajad</multiple>
+      </term>
+      <term name="translator">
+         <single>tõlkija</single>
+         <multiple>tõlkijad</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>toimetaja &amp; tõlkija</single>
+         <multiple>toimetajad &amp; tõlkijad</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>toim</single>
+         <multiple>toim</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>toim</single>
+         <multiple>toim</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tõlk</single>
+         <multiple>tõlk</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>toim &amp; tõlk</single>
+         <multiple>toim &amp; tõlk</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">toimetanud</term>
+      <term name="editorial-director" form="verb">toimetanud</term>
+      <term name="translator" form="verb">tõlkinud</term>
+      <term name="editortranslator" form="verb">toimetanud &amp; tõlkinud</term>
+      <term name="recipient" form="verb"/>
+      <term name="interviewer" form="verb">intervjueerinud</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short"></term>
+      <term name="editor" form="verb-short">toim</term>
+      <term name="editorial-director" form="verb-short">toim</term>
+      <term name="translator" form="verb-short">tõlk</term>
+      <term name="editortranslator" form="verb-short">toim &amp; tõlk</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">jaanuar</term>
+      <term name="month-02">veebruar</term>
+      <term name="month-03">märts</term>
+      <term name="month-04">aprill</term>
+      <term name="month-05">mai</term>
+      <term name="month-06">juuni</term>
+      <term name="month-07">juuli</term>
+      <term name="month-08">august</term>
+      <term name="month-09">september</term>
+      <term name="month-10">oktoober</term>
+      <term name="month-11">november</term>
+      <term name="month-12">detsember</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">jaan</term>
+      <term name="month-02" form="short">veebr</term>
+      <term name="month-03" form="short">märts</term>
+      <term name="month-04" form="short">apr</term>
+      <term name="month-05" form="short">mai</term>
+      <term name="month-06" form="short">juuni</term>
+      <term name="month-07" form="short">juuli</term>
+      <term name="month-08" form="short">aug</term>
+      <term name="month-09" form="short">sept</term>
+      <term name="month-10" form="short">okt</term>
+      <term name="month-11" form="short">nov</term>
+      <term name="month-12" form="short">dets</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">kevad</term>
+      <term name="season-02">suvi</term>
+      <term name="season-03">sügis</term>
+      <term name="season-04">talv</term>
+   </terms>
+</locale>
diff --git a/locales/locales-fr-FR.xml b/locales/locales-fr-FR.xml
--- a/locales/locales-fr-FR.xml
+++ b/locales/locales-fr-FR.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="fr">
-    <term name="at">à</term>
-    <term name="in">dans</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accédé</term>
-    <term name="retrieved">retrouvé</term>
-    <term name="from">de</term>
-    <term name="forthcoming">à venir</term>
-    <term name="references">références</term>
-    <term name="no date">pas de date</term>
-    <term name="and">et</term>
-    <term name="et-al">et coll.</term>
-    <term name="interview">interview</term>
-    <term name="letter">lettre</term>
-    <term name="anonymous">anonyme</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">et autres</term>
-    <term name="in press">sous presse</term>
-    <term name="online">en ligne</term>
-    <term name="cited">cité</term>
-    <term name="internet">Internet</term>
-    <term name="presented at">présenté au</term>
-    <term name="anthropology">anthropologie</term>
-    <term name="astronomy">astronomie</term>
-    <term name="biology">biologie</term>
-    <term name="botany">botanique</term>
-    <term name="chemistry">chimie</term>
-    <term name="engineering">ingénierie</term>
-    <term name="generic-base">base générique</term>
-    <term name="geography">géographie</term>
-    <term name="geology">géologie</term>
-    <term name="history">histoire</term>
-    <term name="humanities">sciences humaines</term>
-    <term name="literature">littérature</term>
-    <term name="math">mathématiques</term>
-    <term name="medicine">médecine</term>
-    <term name="philosophy">philosophie</term>
-    <term name="physics">physique</term>
-    <term name="psychology">psychologie</term>
-    <term name="sociology">sociologie</term>
-    <term name="science">science</term>
-    <term name="political_science">science politique</term>
-    <term name="social_science">science sociale</term>
-    <term name="theology">théologie</term>
-    <term name="zoology">zoologie</term>
-    <term name="book">
-      <single>livre</single>
-      <multiple>livres</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapitre</single>
-      <multiple>chapitres</multiple>
-    </term>
-    <term name="column">
-      <single>colonne</single>
-      <multiple>colonnes</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>numéro</single>
-      <multiple>numéros</multiple>
-    </term>
-    <term name="line">
-      <single>ligne</single>
-      <multiple>lignes</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opus</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraphe</single>
-      <multiple>paragraphes</multiple>
-    </term>
-    <term name="part">
-      <single>partie</single>
-      <multiple>parties</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verset</single>
-      <multiple>versets</multiple>
-    </term>
-    <term name="book" form="short">liv</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">n°</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">par</term>
-    <term name="part" form="short">part</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">éd</term>
-    <term name="paragraph" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>éditeur</single>
-      <multiple>éditeurs</multiple>
-    </term>
-    <term name="translator">
-      <single>traducteur</single>
-      <multiple>traducteurs</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>éd</single>
-      <multiple>éd</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>trad</single>
-      <multiple>trad</multiple>
-    </term>
-    <term name="editor" form="verb">édité par</term>
-    <term name="translator" form="verb">traduit par</term>
-    <term name="recipient" form="verb">vers</term>
-    <term name="interviewer" form="verb">interview par</term>
-    <term name="editor" form="verb-short">éd</term>
-    <term name="translator" form="verb-short">trad</term>
-    <term name="month-01">Janvier</term>
-    <term name="month-02">Février</term>
-    <term name="month-03">Mars</term>
-    <term name="month-04">Avril</term>
-    <term name="month-05">Mai</term>
-    <term name="month-06">Juin</term>
-    <term name="month-07">Juillet</term>
-    <term name="month-08">Août</term>
-    <term name="month-09">Septembre</term>
-    <term name="month-10">Octobre</term>
-    <term name="month-11">Novembre</term>
-    <term name="month-12">Décembre</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Fév</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Avr</term>
-    <term name="month-05" form="short">Mai</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aoû</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Déc</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="fr">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">consulté</term>
+      <term name="and">et</term>
+      <term name="and others">et coll.</term>
+      <term name="anonymous">anonyme</term>
+      <term name="anonymous" form="short">anon.</term>
+      <term name="at">à</term>
+      <term name="by">par</term>
+      <term name="circa">vers</term>
+      <term name="circa" form="short">v.</term>
+      <term name="cited">cité</term>
+      <term name="edition">
+         <single>édition</single>
+         <multiple>éditions</multiple>
+      </term>
+      <term name="edition" form="short">éd.</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">à paraître</term>
+      <term name="from">de</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">dans</term>
+      <term name="in press">sous presse</term>
+      <term name="internet">Internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">lettre</term>
+      <term name="no date">sans date</term>
+      <term name="no date" form="short">s.&#xA0;d.</term>
+      <term name="online">en ligne</term>
+      <term name="presented at">présenté à</term>
+      <term name="reference">
+         <single>référence</single>
+         <multiple>références</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>réf.</single>
+         <multiple>réf.</multiple>
+      </term>
+      <term name="retrieved">consulté</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">apr. J.-C.</term>
+      <term name="bc">av. J.-C.</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">«&#xA0;</term>
+      <term name="close-quote">&#xA0;»</term>
+      <term name="open-inner-quote">“</term>
+      <term name="close-inner-quote">”</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">er</term>
+      <term name="ordinal-02">e</term>
+      <term name="ordinal-03">e</term>
+      <term name="ordinal-04">e</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">premier</term>
+      <term name="long-ordinal-02">deuxième</term>
+      <term name="long-ordinal-03">troisième</term>
+      <term name="long-ordinal-04">quatrième</term>
+      <term name="long-ordinal-05">cinquième</term>
+      <term name="long-ordinal-06">sixième</term>
+      <term name="long-ordinal-07">septième</term>
+      <term name="long-ordinal-08">huitième</term>
+      <term name="long-ordinal-09">neuvième</term>
+      <term name="long-ordinal-10">dixième</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropologie</term>
+      <term name="astronomy">astronomie</term>
+      <term name="biology">biologie</term>
+      <term name="botany">botanique</term>
+      <term name="chemistry">chimie</term>
+      <term name="engineering">ingénierie</term>
+      <term name="generic-base">base générique</term>
+      <term name="geography">géographie</term>
+      <term name="geology">géologie</term>
+      <term name="history">histoire</term>
+      <term name="humanities">sciences humaines</term>
+      <term name="linguistics">linguistique</term>
+      <term name="literature">littérature</term>
+      <term name="math">mathématiques</term>
+      <term name="medicine">médecine</term>
+      <term name="philosophy">philosophie</term>
+      <term name="physics">physique</term>
+      <term name="psychology">psychologie</term>
+      <term name="sociology">sociologie</term>
+      <term name="science">science</term>
+      <term name="political_science">science politique</term>
+      <term name="social_science">science sociale</term>
+      <term name="theology">théologie</term>
+      <term name="zoology">zoologie</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>livre</single>
+         <multiple>livres</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapitre</single>
+         <multiple>chapitres</multiple>
+      </term>
+      <term name="column">
+         <single>colonne</single>
+         <multiple>colonnes</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>numéro</single>
+         <multiple>numéros</multiple>
+      </term>
+      <term name="line">
+         <single>ligne</single>
+         <multiple>lignes</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opus</multiple>
+      </term>
+      <term name="page">
+         <single>page</single>
+         <multiple>pages</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraphe</single>
+         <multiple>paragraphes</multiple>
+      </term>
+      <term name="part">
+         <single>partie</single>
+         <multiple>parties</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verset</single>
+         <multiple>versets</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">liv.</term>
+      <term name="chapter" form="short">chap.</term>
+      <term name="column" form="short">col.</term>
+      <term name="figure" form="short">fig.</term>
+      <term name="folio" form="short">f&lt;sup&gt;o&lt;/sup&gt;</term>
+      <term name="issue" form="short">n&lt;sup&gt;o&lt;/sup&gt;</term>
+      <term name="opus" form="short">op.</term>
+      <term name="page" form="short">
+         <single>p.</single>
+         <multiple>p.</multiple>
+      </term>
+      <term name="paragraph" form="short">paragr.</term>
+      <term name="part" form="short">part.</term>
+      <term name="section" form="short">sect.</term>
+      <term name="sub verbo" form="short">
+         <single>s.&#xA0;v.</single>
+         <multiple>s.&#xA0;vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v.</single>
+         <multiple>v.</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol.</single>
+         <multiple>vol.</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>§</single>
+         <multiple>§</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>éditeur</single>
+         <multiple>éditeurs</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>directeur</single>
+         <multiple>directeurs</multiple>
+      </term>
+      <term name="translator">
+         <single>traducteur</single>
+         <multiple>traducteurs</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>éditeur et traducteur</single>
+         <multiple>éditeurs et traducteurs</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>éd.</single>
+         <multiple>éd.</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>dir.</single>
+         <multiple>dir.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>trad.</single>
+         <multiple>trad.</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>éd. et trad.</single>
+         <multiple>éd. et trad.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">édité par</term>
+      <term name="editorial-director" form="verb">sous la direction de</term>
+      <term name="translator" form="verb">traduit par</term>
+      <term name="editortranslator" form="verb">édité et traduit par</term>
+      <term name="recipient" form="verb">à</term>
+      <term name="interviewer" form="verb">interview par</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">par</term>
+      <term name="editor" form="verb-short">éd.</term>
+      <term name="editorial-director" form="verb-short">dir.</term>
+      <term name="translator" form="verb-short">trad.</term>
+      <term name="editortranslator" form="verb-short">éd. et trad.</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">janvier</term>
+      <term name="month-02">février</term>
+      <term name="month-03">mars</term>
+      <term name="month-04">avril</term>
+      <term name="month-05">mai</term>
+      <term name="month-06">juin</term>
+      <term name="month-07">juillet</term>
+      <term name="month-08">août</term>
+      <term name="month-09">septembre</term>
+      <term name="month-10">octobre</term>
+      <term name="month-11">novembre</term>
+      <term name="month-12">décembre</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">janv.</term>
+      <term name="month-02" form="short">févr.</term>
+      <term name="month-03" form="short">mars</term>
+      <term name="month-04" form="short">avr.</term>
+      <term name="month-05" form="short">mai</term>
+      <term name="month-06" form="short">juin</term>
+      <term name="month-07" form="short">juill.</term>
+      <term name="month-08" form="short">août</term>
+      <term name="month-09" form="short">sept.</term>
+      <term name="month-10" form="short">oct.</term>
+      <term name="month-11" form="short">nov.</term>
+      <term name="month-12" form="short">déc.</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">printemps</term>
+      <term name="season-02">été</term>
+      <term name="season-03">automne</term>
+      <term name="season-04">hiver</term>
+   </terms>
+</locale>
diff --git a/locales/locales-he-IL.xml b/locales/locales-he-IL.xml
--- a/locales/locales-he-IL.xml
+++ b/locales/locales-he-IL.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="he">
-    <term name="at">-ב</term>
-    <term name="in">בתוך</term>
-    <term name="ibid">שם</term>
-    <term name="accessed">גישה</term>
-    <term name="retrieved">אוחזר</term>
-    <term name="from">מתוך</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">References</term>
-    <term name="no date">nd</term>
-    <term name="and">ו</term>
-    <term name="et-al">ואחרים</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>ספר</single>
-      <multiple>ספרים</multiple>
-    </term>
-    <term name="chapter">
-      <single>פרק</single>
-      <multiple>פרקים</multiple>
-    </term>
-    <term name="column">
-      <single>טור</single>
-      <multiple>טורים</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>מספר</single>
-      <multiple>מספרים</multiple>
-    </term>
-    <term name="line">
-      <single>שורה</single>
-      <multiple>שורות</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>אופוס</single>
-      <multiple>אופרה</multiple>
-    </term>
-    <term name="page">
-      <single>עמוד</single>
-      <multiple>עמודים</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>פיסקה</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>כרך</single>
-      <multiple>כרכים</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>בית</single>
-      <multiple>בתים</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>'עמ</single>
-      <multiple>'עמ</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>עורך</single>
-      <multiple>עורכים</multiple>
-    </term>
-    <term name="translator">
-      <single>מתרגם</single>
-      <multiple>מתרגמים</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">נערך ע"י</term>
-    <term name="translator" form="verb">תורגם ע"י</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">ינואר</term>
-    <term name="month-02">פברואר</term>
-    <term name="month-03">מרץ</term>
-    <term name="month-04">אפריל</term>
-    <term name="month-05">מאי</term>
-    <term name="month-06">יוני</term>
-    <term name="month-07">יולי</term>
-    <term name="month-08">אוגוסט</term>
-    <term name="month-09">ספטמבר</term>
-    <term name="month-10">אוקטובר</term>
-    <term name="month-11">נובמבר</term>
-    <term name="month-12">דצמבר</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="he">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">גישה</term>
+      <term name="and">ו</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">-ב</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">ואחרים</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">מתוך</term>
+      <term name="ibid">שם</term>
+      <term name="in">בתוך</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">nd</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">אוחזר</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>ספר</single>
+         <multiple>ספרים</multiple>
+      </term>
+      <term name="chapter">
+         <single>פרק</single>
+         <multiple>פרקים</multiple>
+      </term>
+      <term name="column">
+         <single>טור</single>
+         <multiple>טורים</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>מספר</single>
+         <multiple>מספרים</multiple>
+      </term>
+      <term name="line">
+         <single>שורה</single>
+         <multiple>שורות</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>אופוס</single>
+         <multiple>אופרה</multiple>
+      </term>
+      <term name="page">
+         <single>עמוד</single>
+         <multiple>עמודים</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraph</single>
+         <multiple>פיסקה</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>בית</single>
+         <multiple>בתים</multiple>
+      </term>
+      <term name="volume">
+         <single>כרך</single>
+         <multiple>כרכים</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">no</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>'עמ</single>
+         <multiple>'עמ</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>עורך</single>
+         <multiple>עורכים</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>מתרגם</single>
+         <multiple>מתרגמים</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran</single>
+         <multiple>trans</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">נערך ע"י</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">תורגם ע"י</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">ינואר</term>
+      <term name="month-02">פברואר</term>
+      <term name="month-03">מרץ</term>
+      <term name="month-04">אפריל</term>
+      <term name="month-05">מאי</term>
+      <term name="month-06">יוני</term>
+      <term name="month-07">יולי</term>
+      <term name="month-08">אוגוסט</term>
+      <term name="month-09">ספטמבר</term>
+      <term name="month-10">אוקטובר</term>
+      <term name="month-11">נובמבר</term>
+      <term name="month-12">דצמבר</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Oct</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-hu-HU.xml b/locales/locales-hu-HU.xml
--- a/locales/locales-hu-HU.xml
+++ b/locales/locales-hu-HU.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="hu">
-    <term name="at"/>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">elérés</term>
-    <term name="retrieved">elérés</term>
-    <term name="from">forrás</term>
-    <term name="forthcoming">megjelenés alatt</term>
-    <term name="references">hivatkozások</term>
-    <term name="no date">nd</term>
-    <term name="and">és</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interjú</term>
-    <term name="letter">levél</term>
-    <term name="anonymous">név nélkül</term>
-    <term name="anonymous" form="short">nn</term>
-    <term name="and others">és mások</term>
-    <term name="in press">nyomtatás alatt</term>
-    <term name="online">online</term>
-    <term name="cited">idézi</term>
-    <term name="internet">internet</term>
-    <term name="presented at">előadás</term>
-    <term name="anthropology">antropológia</term>
-    <term name="astronomy">csillagászat</term>
-    <term name="biology">biológia</term>
-    <term name="botany">botanika</term>
-    <term name="chemistry">kémia</term>
-    <term name="engineering">mérnöki tudományok</term>
-    <term name="generic-base">általános</term>
-    <term name="geography">földrajz</term>
-    <term name="geology">geológia</term>
-    <term name="history">történelem</term>
-    <term name="humanities">bölcsésztudományok</term>
-    <term name="literature">irodalom</term>
-    <term name="math">matematika</term>
-    <term name="medicine">orvostudomány</term>
-    <term name="philosophy">filozófia</term>
-    <term name="physics">fizika</term>
-    <term name="psychology">pszichológia</term>
-    <term name="sociology">szociológia</term>
-    <term name="science">tudomány</term>
-    <term name="political_science">politikatudomány</term>
-    <term name="social_science">társadalomtudomány</term>
-    <term name="theology">teológia</term>
-    <term name="zoology">zoológia</term>
-    <term name="book">
-      <single>könyv</single>
-      <multiple>könyv</multiple>
-    </term>
-    <term name="chapter">
-      <single>fejezet</single>
-      <multiple>fejezet</multiple>
-    </term>
-    <term name="column">
-      <single>oszlop</single>
-      <multiple>oszlop</multiple>
-    </term>
-    <term name="figure">
-      <single>ábra</single>
-      <multiple>ábra</multiple>
-    </term>
-    <term name="folio">
-      <single>fóliáns</single>
-      <multiple>fóliáns</multiple>
-    </term>
-    <term name="issue">
-      <single>szám</single>
-      <multiple>szám</multiple>
-    </term>
-    <term name="line">
-      <single>sor</single>
-      <multiple>sor</multiple>
-    </term>
-    <term name="note">
-      <single>jegyzet</single>
-      <multiple>jegyzet</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>oldal</single>
-      <multiple>oldal</multiple>
-    </term>
-    <term name="paragraph">
-      <single>bekezdés</single>
-      <multiple>bekezdés</multiple>
-    </term>
-    <term name="part">
-      <single>rész</single>
-      <multiple>rész</multiple>
-    </term>
-    <term name="section">
-      <single>szakasz</single>
-      <multiple>szakasz</multiple>
-    </term>
-    <term name="volume">
-      <single>kötet</single>
-      <multiple>kötet</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>versszak</single>
-      <multiple>versszak</multiple>
-    </term>
-    <term name="book" form="short">könyv</term>
-    <term name="chapter" form="short">fej</term>
-    <term name="column" form="short">oszl</term>
-    <term name="figure" form="short">ábr</term>
-    <term name="folio" form="short">fol</term>
-    <term name="issue" form="short">sz</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>o</single>
-      <multiple>o</multiple>
-    </term>
-    <term name="paragraph" form="short">bek</term>
-    <term name="part" form="short">rész</term>
-    <term name="section" form="short">szak</term>
-    <term name="verse" form="short">
-      <single>vsz</single>
-      <multiple>vsz</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>szerkesztő</single>
-      <multiple>szerkesztő</multiple>
-    </term>
-    <term name="translator">
-      <single>fordító</single>
-      <multiple>fordító</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>szerk</single>
-      <multiple>szerk</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>ford</single>
-      <multiple>ford</multiple>
-    </term>
-    <term name="editor" form="verb">szerkesztette</term>
-    <term name="translator" form="verb">fordította</term>
-    <term name="recipient" form="verb">címzett</term>
-    <term name="interviewer" form="verb">interjúkészítő</term>
-    <term name="editor" form="verb-short">szerk</term>
-    <term name="translator" form="verb-short">ford</term>
-    <term name="month-01">január</term>
-    <term name="month-02">február</term>
-    <term name="month-03">március</term>
-    <term name="month-04">április</term>
-    <term name="month-05">május</term>
-    <term name="month-06">június</term>
-    <term name="month-07">július</term>
-    <term name="month-08">augusztus</term>
-    <term name="month-09">szeptember</term>
-    <term name="month-10">október</term>
-    <term name="month-11">november</term>
-    <term name="month-12">december</term>
-    <term name="month-01" form="short">jan</term>
-    <term name="month-02" form="short">febr</term>
-    <term name="month-03" form="short">márc</term>
-    <term name="month-04" form="short">ápr</term>
-    <term name="month-05" form="short">máj</term>
-    <term name="month-06" form="short">jún</term>
-    <term name="month-07" form="short">júl</term>
-    <term name="month-08" form="short">aug</term>
-    <term name="month-09" form="short">szept</term>
-    <term name="month-10" form="short">okt</term>
-    <term name="month-11" form="short">nov</term>
-    <term name="month-12" form="short">dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="hu">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="year"/>
+      <date-part name="month" prefix=". "/>
+      <date-part name="day" prefix=" " suffix="."/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="."/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="."/>
+   </date>
+   <terms>
+      <term name="accessed">elérés</term>
+      <term name="and">és</term>
+      <term name="and others">és mások</term>
+      <term name="anonymous">név nélkül</term>
+      <term name="anonymous" form="short">nn</term>
+      <term name="at"/>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">idézi</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">megjelenés alatt</term>
+      <term name="from">forrás</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">nyomtatás alatt</term>
+      <term name="internet">internet</term>
+      <term name="interview">interjú</term>
+      <term name="letter">levél</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">nd</term>
+      <term name="online">online</term>
+      <term name="presented at">előadás</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">elérés</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropológia</term>
+      <term name="astronomy">csillagászat</term>
+      <term name="biology">biológia</term>
+      <term name="botany">botanika</term>
+      <term name="chemistry">kémia</term>
+      <term name="engineering">mérnöki tudományok</term>
+      <term name="generic-base">általános</term>
+      <term name="geography">földrajz</term>
+      <term name="geology">geológia</term>
+      <term name="history">történelem</term>
+      <term name="humanities">bölcsésztudományok</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">irodalom</term>
+      <term name="math">matematika</term>
+      <term name="medicine">orvostudomány</term>
+      <term name="philosophy">filozófia</term>
+      <term name="physics">fizika</term>
+      <term name="psychology">pszichológia</term>
+      <term name="sociology">szociológia</term>
+      <term name="science">tudomány</term>
+      <term name="political_science">politikatudomány</term>
+      <term name="social_science">társadalomtudomány</term>
+      <term name="theology">teológia</term>
+      <term name="zoology">zoológia</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>könyv</single>
+         <multiple>könyv</multiple>
+      </term>
+      <term name="chapter">
+         <single>fejezet</single>
+         <multiple>fejezet</multiple>
+      </term>
+      <term name="column">
+         <single>oszlop</single>
+         <multiple>oszlop</multiple>
+      </term>
+      <term name="figure">
+         <single>ábra</single>
+         <multiple>ábra</multiple>
+      </term>
+      <term name="folio">
+         <single>fóliáns</single>
+         <multiple>fóliáns</multiple>
+      </term>
+      <term name="issue">
+         <single>szám</single>
+         <multiple>szám</multiple>
+      </term>
+      <term name="line">
+         <single>sor</single>
+         <multiple>sor</multiple>
+      </term>
+      <term name="note">
+         <single>jegyzet</single>
+         <multiple>jegyzet</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>oldal</single>
+         <multiple>oldal</multiple>
+      </term>
+      <term name="paragraph">
+         <single>bekezdés</single>
+         <multiple>bekezdés</multiple>
+      </term>
+      <term name="part">
+         <single>rész</single>
+         <multiple>rész</multiple>
+      </term>
+      <term name="section">
+         <single>szakasz</single>
+         <multiple>szakasz</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>versszak</single>
+         <multiple>versszak</multiple>
+      </term>
+      <term name="volume">
+         <single>kötet</single>
+         <multiple>kötet</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">könyv</term>
+      <term name="chapter" form="short">fej</term>
+      <term name="column" form="short">oszl</term>
+      <term name="figure" form="short">ábr</term>
+      <term name="folio" form="short">fol</term>
+      <term name="issue" form="short">sz</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>o</single>
+         <multiple>o</multiple>
+      </term>
+      <term name="paragraph" form="short">bek</term>
+      <term name="part" form="short">rész</term>
+      <term name="section" form="short">szak</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>vsz</single>
+         <multiple>vsz</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>szerkesztő</single>
+         <multiple>szerkesztő</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>fordító</single>
+         <multiple>fordító</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>szerk</single>
+         <multiple>szerk</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>ford</single>
+         <multiple>ford</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">szerkesztette</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">fordította</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">címzett</term>
+      <term name="interviewer" form="verb">interjúkészítő</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">szerk</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">ford</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">január</term>
+      <term name="month-02">február</term>
+      <term name="month-03">március</term>
+      <term name="month-04">április</term>
+      <term name="month-05">május</term>
+      <term name="month-06">június</term>
+      <term name="month-07">július</term>
+      <term name="month-08">augusztus</term>
+      <term name="month-09">szeptember</term>
+      <term name="month-10">október</term>
+      <term name="month-11">november</term>
+      <term name="month-12">december</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">jan</term>
+      <term name="month-02" form="short">febr</term>
+      <term name="month-03" form="short">márc</term>
+      <term name="month-04" form="short">ápr</term>
+      <term name="month-05" form="short">máj</term>
+      <term name="month-06" form="short">jún</term>
+      <term name="month-07" form="short">júl</term>
+      <term name="month-08" form="short">aug</term>
+      <term name="month-09" form="short">szept</term>
+      <term name="month-10" form="short">okt</term>
+      <term name="month-11" form="short">nov</term>
+      <term name="month-12" form="short">dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-is-IS.xml b/locales/locales-is-IS.xml
--- a/locales/locales-is-IS.xml
+++ b/locales/locales-is-IS.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="is">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">References</term>
-    <term name="no date">nd</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>line</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="is">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">accessed</term>
+      <term name="and">and</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">from</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">nd</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>line</single>
+         <multiple>line</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>page</single>
+         <multiple>pages</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraph</single>
+         <multiple>paragraph</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">no</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>translator</single>
+         <multiple>translators</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran</single>
+         <multiple>trans</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">edited by</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">translated by</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">January</term>
+      <term name="month-02">February</term>
+      <term name="month-03">March</term>
+      <term name="month-04">April</term>
+      <term name="month-05">May</term>
+      <term name="month-06">June</term>
+      <term name="month-07">July</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">October</term>
+      <term name="month-11">November</term>
+      <term name="month-12">December</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Oct</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-it-IT.xml b/locales/locales-it-IT.xml
--- a/locales/locales-it-IT.xml
+++ b/locales/locales-it-IT.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="it">
-    <term name="at">a</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">consultato</term>
-    <term name="retrieved">recuperato</term>
-    <term name="from">da</term>
-    <term name="forthcoming">futuro</term>
-    <term name="references">Citazioni bibliografiche</term>
-    <term name="no date">S.d.</term>
-    <term name="and">e</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">intervista</term>
-    <term name="letter">lettera</term>
-    <term name="anonymous">anonimo</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">e altri</term>
-    <term name="in press">in stampa</term>
-    <term name="online">in linea</term>
-    <term name="cited">citato</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presentato al</term>
-    <term name="anthropology">antropologia</term>
-    <term name="astronomy">astronomia</term>
-    <term name="biology">biologia</term>
-    <term name="botany">botanica</term>
-    <term name="chemistry">chimica</term>
-    <term name="engineering">ingegneria</term>
-    <term name="generic-base">generica</term>
-    <term name="geography">geografia</term>
-    <term name="geology">geologia</term>
-    <term name="history">storia</term>
-    <term name="humanities">discipline umanistiche</term>
-    <term name="literature">letteratura</term>
-    <term name="math">matematica</term>
-    <term name="medicine">medicina</term>
-    <term name="philosophy">filosofia</term>
-    <term name="physics">fisica</term>
-    <term name="psychology">psicologia</term>
-    <term name="sociology">sociologia</term>
-    <term name="science">scienze</term>
-    <term name="political_science">scienze politiche</term>
-    <term name="social_science">sociologia</term>
-    <term name="theology">teologia</term>
-    <term name="zoology">zoologia</term>
-    <term name="book">
-      <single>libro</single>
-      <multiple>libri</multiple>
-    </term>
-    <term name="chapter">
-      <single>capitolo</single>
-      <multiple>capitoli</multiple>
-    </term>
-    <term name="column">
-      <single>colonna</single>
-      <multiple>colonne</multiple>
-    </term>
-    <term name="figure">
-      <single>figura</single>
-      <multiple>figure</multiple>
-    </term>
-    <term name="folio">
-      <single>foglio</single>
-      <multiple>fogli</multiple>
-    </term>
-    <term name="issue">
-      <single>numero</single>
-      <multiple>numeri</multiple>
-    </term>
-    <term name="line">
-      <single>riga</single>
-      <multiple>righe</multiple>
-    </term>
-    <term name="note">
-      <single>nota</single>
-      <multiple>note</multiple>
-    </term>
-    <term name="opus">
-      <single>opera</single>
-      <multiple>opere</multiple>
-    </term>
-    <term name="page">
-      <single>pagina</single>
-      <multiple>pagine</multiple>
-    </term>
-    <term name="paragraph">
-      <single>capoverso</single>
-      <multiple>capoversi</multiple>
-    </term>
-    <term name="part">
-      <single>parte</single>
-      <multiple>parti</multiple>
-    </term>
-    <term name="section">
-      <single>paragrafo</single>
-      <multiple>paragrafi</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumi</multiple>
-    </term>
-    <term name="edition">
-      <single>edizione</single>
-      <multiple>edizioni</multiple>
-    </term>
-    <term name="verse">
-      <single>verso</single>
-      <multiple>versi</multiple>
-    </term>
-    <term name="book" form="short">lib</term>
-    <term name="chapter" form="short">cap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">fgl</term>
-    <term name="issue" form="short">n°</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>pag</single>
-      <multiple>pagg</multiple>
-    </term>
-    <term name="paragraph" form="short">cpv</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">par</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vol</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>curatore</single>
-      <multiple>curatori</multiple>
-    </term>
-    <term name="translator">
-      <single>traduttore</single>
-      <multiple>traduttori</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>cur</single>
-      <multiple>cur</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>trad</single>
-      <multiple>trad</multiple>
-    </term>
-    <term name="editor" form="verb">a cura di</term>
-    <term name="translator" form="verb">tradotto da</term>
-    <term name="recipient" form="verb">a</term>
-    <term name="interviewer" form="verb">intervista di</term>
-    <term name="editor" form="verb-short">cur. da</term>
-    <term name="translator" form="verb-short">trad. da</term>
-    <term name="month-01">Gennaio</term>
-    <term name="month-02">Febbraio</term>
-    <term name="month-03">Marzo</term>
-    <term name="month-04">Aprile</term>
-    <term name="month-05">Maggio</term>
-    <term name="month-06">Giugno</term>
-    <term name="month-07">Luglio</term>
-    <term name="month-08">Agosto</term>
-    <term name="month-09">Settembre</term>
-    <term name="month-10">Ottobre</term>
-    <term name="month-11">Novembre</term>
-    <term name="month-12">Dicembre</term>
-    <term name="month-01" form="short">Gen</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">Mag</term>
-    <term name="month-06" form="short">Giu</term>
-    <term name="month-07" form="short">Lug</term>
-    <term name="month-08" form="short">Ago</term>
-    <term name="month-09" form="short">Set</term>
-    <term name="month-10" form="short">Ott</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dic</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="it">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">consultato</term>
+      <term name="and">e</term>
+      <term name="and others">e altri</term>
+      <term name="anonymous">anonimo</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">a</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">citato</term>
+      <term name="edition">
+         <single>edizione</single>
+         <multiple>edizioni</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">futuro</term>
+      <term name="from">da</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in stampa</term>
+      <term name="internet">internet</term>
+      <term name="interview">intervista</term>
+      <term name="letter">lettera</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">S.d.</term>
+      <term name="online">in linea</term>
+      <term name="presented at">presentato al</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">recuperato</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologia</term>
+      <term name="astronomy">astronomia</term>
+      <term name="biology">biologia</term>
+      <term name="botany">botanica</term>
+      <term name="chemistry">chimica</term>
+      <term name="engineering">ingegneria</term>
+      <term name="generic-base">generica</term>
+      <term name="geography">geografia</term>
+      <term name="geology">geologia</term>
+      <term name="history">storia</term>
+      <term name="humanities">discipline umanistiche</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">letteratura</term>
+      <term name="math">matematica</term>
+      <term name="medicine">medicina</term>
+      <term name="philosophy">filosofia</term>
+      <term name="physics">fisica</term>
+      <term name="psychology">psicologia</term>
+      <term name="sociology">sociologia</term>
+      <term name="science">scienze</term>
+      <term name="political_science">scienze politiche</term>
+      <term name="social_science">sociologia</term>
+      <term name="theology">teologia</term>
+      <term name="zoology">zoologia</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>libro</single>
+         <multiple>libri</multiple>
+      </term>
+      <term name="chapter">
+         <single>capitolo</single>
+         <multiple>capitoli</multiple>
+      </term>
+      <term name="column">
+         <single>colonna</single>
+         <multiple>colonne</multiple>
+      </term>
+      <term name="figure">
+         <single>figura</single>
+         <multiple>figure</multiple>
+      </term>
+      <term name="folio">
+         <single>foglio</single>
+         <multiple>fogli</multiple>
+      </term>
+      <term name="issue">
+         <single>numero</single>
+         <multiple>numeri</multiple>
+      </term>
+      <term name="line">
+         <single>riga</single>
+         <multiple>righe</multiple>
+      </term>
+      <term name="note">
+         <single>nota</single>
+         <multiple>note</multiple>
+      </term>
+      <term name="opus">
+         <single>opera</single>
+         <multiple>opere</multiple>
+      </term>
+      <term name="page">
+         <single>pagina</single>
+         <multiple>pagine</multiple>
+      </term>
+      <term name="paragraph">
+         <single>capoverso</single>
+         <multiple>capoversi</multiple>
+      </term>
+      <term name="part">
+         <single>parte</single>
+         <multiple>parti</multiple>
+      </term>
+      <term name="section">
+         <single>paragrafo</single>
+         <multiple>paragrafi</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verso</single>
+         <multiple>versi</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumi</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">lib</term>
+      <term name="chapter" form="short">cap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">fgl</term>
+      <term name="issue" form="short">n°</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>pag</single>
+         <multiple>pagg</multiple>
+      </term>
+      <term name="paragraph" form="short">cpv</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">par</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vol</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>curatore</single>
+         <multiple>curatori</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>traduttore</single>
+         <multiple>traduttori</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>cur</single>
+         <multiple>cur</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>trad</single>
+         <multiple>trad</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">a cura di</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">tradotto da</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">a</term>
+      <term name="interviewer" form="verb">intervista di</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">cur. da</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trad. da</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Gennaio</term>
+      <term name="month-02">Febbraio</term>
+      <term name="month-03">Marzo</term>
+      <term name="month-04">Aprile</term>
+      <term name="month-05">Maggio</term>
+      <term name="month-06">Giugno</term>
+      <term name="month-07">Luglio</term>
+      <term name="month-08">Agosto</term>
+      <term name="month-09">Settembre</term>
+      <term name="month-10">Ottobre</term>
+      <term name="month-11">Novembre</term>
+      <term name="month-12">Dicembre</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Gen</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">Mag</term>
+      <term name="month-06" form="short">Giu</term>
+      <term name="month-07" form="short">Lug</term>
+      <term name="month-08" form="short">Ago</term>
+      <term name="month-09" form="short">Set</term>
+      <term name="month-10" form="short">Ott</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dic</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-ja-JP.xml b/locales/locales-ja-JP.xml
--- a/locales/locales-ja-JP.xml
+++ b/locales/locales-ja-JP.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="ja">
-    <term name="at">at</term>
-    <term name="in"> </term>
-    <term name="ibid">前掲</term>
-    <term name="accessed">アクセス</term>
-    <term name="retrieved">読み込み</term>
-    <term name="from">から</term>
-    <term name="forthcoming">近刊</term>
-    <term name="references">参考文献</term>
-    <term name="no date">日付なし</term>
-    <term name="and">と</term>
-    <term name="et-al">他</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>行</single>
-      <multiple>行</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>ページ</single>
-      <multiple>ページ</multiple>
-    </term>
-    <term name="paragraph">
-      <single>段落</single>
-      <multiple>段落</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">号</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>p</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>編集者</single>
-      <multiple>編集者</multiple>
-    </term>
-    <term name="translator">
-      <single>翻訳者</single>
-      <multiple>翻訳者</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>編集者</single>
-      <multiple>編集者</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>翻訳者</single>
-      <multiple>翻訳者</multiple>
-    </term>
-    <term name="editor" form="verb">編集者：</term>
-    <term name="translator" form="verb">翻訳者：</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">1月</term>
-    <term name="month-02">2月</term>
-    <term name="month-03">3月</term>
-    <term name="month-04">4月</term>
-    <term name="month-05">5月</term>
-    <term name="month-06">6月</term>
-    <term name="month-07">7月</term>
-    <term name="month-08">8月</term>
-    <term name="month-09">9月</term>
-    <term name="month-10">10月</term>
-    <term name="month-11">11月</term>
-    <term name="month-12">12月</term>
-    <term name="month-01" form="short">1月</term>
-    <term name="month-02" form="short">2月</term>
-    <term name="month-03" form="short">3月</term>
-    <term name="month-04" form="short">4月</term>
-    <term name="month-05" form="short">5月</term>
-    <term name="month-06" form="short">6月</term>
-    <term name="month-07" form="short">7月</term>
-    <term name="month-08" form="short">8月</term>
-    <term name="month-09" form="short">9月</term>
-    <term name="month-10" form="short">10月</term>
-    <term name="month-11" form="short">11月</term>
-    <term name="month-12" form="short">12月</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="ja">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="year" suffix="&#24180;"/>
+      <date-part name="month" form="numeric" prefix=" " suffix="&#26376;"/>
+      <date-part name="day" prefix=" " suffix="&#26085;"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year" suffix="&#24180;"/>
+      <date-part name="month" form="numeric" prefix=" " suffix="&#26376;"/>
+      <date-part name="day" prefix=" " suffix="&#26085;"/>
+   </date>
+   <terms>
+      <term name="accessed">アクセス</term>
+      <term name="and">と</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">他</term>
+      <term name="forthcoming">近刊</term>
+      <term name="from">から</term>
+      <term name="ibid">前掲</term>
+      <term name="in"/>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">日付なし</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">読み込み</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>行</single>
+         <multiple>行</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>ページ</single>
+         <multiple>ページ</multiple>
+      </term>
+      <term name="paragraph">
+         <single>段落</single>
+         <multiple>段落</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">号</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>p</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>編集者</single>
+         <multiple>編集者</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>翻訳者</single>
+         <multiple>翻訳者</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>編集者</single>
+         <multiple>編集者</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>翻訳者</single>
+         <multiple>翻訳者</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">編集者：</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">翻訳者：</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">1月</term>
+      <term name="month-02">2月</term>
+      <term name="month-03">3月</term>
+      <term name="month-04">4月</term>
+      <term name="month-05">5月</term>
+      <term name="month-06">6月</term>
+      <term name="month-07">7月</term>
+      <term name="month-08">8月</term>
+      <term name="month-09">9月</term>
+      <term name="month-10">10月</term>
+      <term name="month-11">11月</term>
+      <term name="month-12">12月</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">1月</term>
+      <term name="month-02" form="short">2月</term>
+      <term name="month-03" form="short">3月</term>
+      <term name="month-04" form="short">4月</term>
+      <term name="month-05" form="short">5月</term>
+      <term name="month-06" form="short">6月</term>
+      <term name="month-07" form="short">7月</term>
+      <term name="month-08" form="short">8月</term>
+      <term name="month-09" form="short">9月</term>
+      <term name="month-10" form="short">10月</term>
+      <term name="month-11" form="short">11月</term>
+      <term name="month-12" form="short">12月</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-kh-KH.xml b/locales/locales-kh-KH.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-kh-KH.xml
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="kh">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" form="numeric" suffix="&#8203;"/>
+      <date-part name="month" suffix="&#8203;"/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">accessed</term>
+      <term name="and">and</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon.</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed.</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">from</term>
+      <term name="ibid">ibid</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">n.d.</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">ទីមួយ</term>
+      <term name="long-ordinal-02">ទីពីរ</term>
+      <term name="long-ordinal-03">ទីបី</term>
+      <term name="long-ordinal-04">ទីបួន</term>
+      <term name="long-ordinal-05">ទីប្រាំ</term>
+      <term name="long-ordinal-06">ទីប្រាំមួយ</term>
+      <term name="long-ordinal-07">ទីប្រាំពីរ</term>
+      <term name="long-ordinal-08">ទីប្រាំបី</term>
+      <term name="long-ordinal-09">ទីប្រាំបួន</term>
+      <term name="long-ordinal-10">ទីដប់មួយ</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">នរវិទ្យា</term>
+      <term name="astronomy">តារាវិទ្យា</term>
+      <term name="biology">ជីវវិទ្យា</term>
+      <term name="botany">រុក្ខវិទ្យា</term>
+      <term name="chemistry">គីមីវិទ្យា</term>
+      <term name="engineering">វិស្វកម្ម</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">ភូមិវិទ្យា</term>
+      <term name="geology">ភូគព្ភវិទ្យា</term>
+      <term name="history">ប្រវត្តិវិទ្យា</term>
+      <term name="humanities">មនុស្សវិទ្យា</term>
+      <term name="linguistics">ភាសាវិទ្យា</term>
+      <term name="literature">អក្សរសាស្ត្រ</term>
+      <term name="math">គណិតវិទ្យា</term>
+      <term name="medicine">វេជ្ជសាស្ត្រ</term>
+      <term name="philosophy">ទស្សនវិទ្យា</term>
+      <term name="physics">រូបវិទ្យា</term>
+      <term name="psychology">ចិត្តវិទ្យា</term>
+      <term name="sociology">សង្គមវិទ្យា</term>
+      <term name="science">វិទ្យាសាស្ត្រ</term>
+      <term name="political_science">វិទ្យាសាស្ត្រនយោបាយ</term>
+      <term name="social_science">សង្គមវិទ្យា</term>
+      <term name="theology">ទេវវិទ្យា</term>
+      <term name="zoology">សត្តវិទ្យា</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>សៀវភៅ</single>
+         <multiple>សៀវភៅ</multiple>
+      </term>
+      <term name="chapter">
+         <single>ជំពូក</single>
+         <multiple>ជំពូក</multiple>
+      </term>
+      <term name="column">
+         <single>កាឡោន</single>
+         <multiple>កាឡោន</multiple>
+      </term>
+      <term name="figure">
+         <single>តួលេខ</single>
+         <multiple>តួលេខ</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>ចំនួន</single>
+         <multiple>ចំនួន</multiple>
+      </term>
+      <term name="line">
+         <single>បន្ទាត់</single>
+         <multiple>បន្ទាត់</multiple>
+      </term>
+      <term name="note">
+         <single>កំណត់ចំណាំ</single>
+         <multiple>កំណត់ចំណាំ</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>ទំព័រ</single>
+         <multiple>ទំព័រ</multiple>
+      </term>
+      <term name="paragraph">
+         <single>កថាខណ្ឌ</single>
+         <multiple>កថាខណ្ឌ</multiple>
+      </term>
+      <term name="part">
+         <single>ជំពូក</single>
+         <multiple>ជំពូក</multiple>
+      </term>
+      <term name="section">
+         <single>ផ្នែក</single>
+         <multiple>ផ្នែក</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>វ៉ុល</single>
+         <multiple>វ៉ុល</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk.</term>
+      <term name="chapter" form="short">chap.</term>
+      <term name="column" form="short">col.</term>
+      <term name="figure" form="short">fig.</term>
+      <term name="folio" form="short">f.</term>
+      <term name="issue" form="short">no.</term>
+      <term name="opus" form="short">op.</term>
+      <term name="page" form="short">
+         <single>p.</single>
+         <multiple>pp.</multiple>
+      </term>
+      <term name="paragraph" form="short">para.</term>
+      <term name="part" form="short">pt.</term>
+      <term name="section" form="short">sec.</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v.</single>
+         <multiple>vv.</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol.</single>
+         <multiple>vols.</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="editorial-director">
+         <single></single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>translator</single>
+         <multiple>translator</multiple>
+      </term>
+      <term name="editortranslator">
+        <single>editor &amp; translator</single>
+        <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran.</single>
+         <multiple>trans.</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+        <single>ed. &amp; tran.</single>
+        <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">edited by</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">translated by</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed.</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans.</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">មករា</term>
+      <term name="month-02">កុម្ភៈ</term>
+      <term name="month-03">មីនា</term>
+      <term name="month-04">មេសា</term>
+      <term name="month-05">ឧសភា</term>
+      <term name="month-06">មិថុនា</term>
+      <term name="month-07">កក្កដា</term>
+      <term name="month-08">សីហា</term>
+      <term name="month-09">កញ្ញា</term>
+      <term name="month-10">តុលា</term>
+      <term name="month-11">វិច្ឆិកា</term>
+      <term name="month-12">ធ្នូ</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan.</term>
+      <term name="month-02" form="short">Feb.</term>
+      <term name="month-03" form="short">Mar.</term>
+      <term name="month-04" form="short">Apr.</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun.</term>
+      <term name="month-07" form="short">Jul.</term>
+      <term name="month-08" form="short">Aug.</term>
+      <term name="month-09" form="short">Sep.</term>
+      <term name="month-10" form="short">Oct.</term>
+      <term name="month-11" form="short">Nov.</term>
+      <term name="month-12" form="short">Dec.</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term> </terms> 
+</locale>
diff --git a/locales/locales-ko-KR.xml b/locales/locales-ko-KR.xml
--- a/locales/locales-ko-KR.xml
+++ b/locales/locales-ko-KR.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="ko">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">접근된</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">(으)로부터</term>
-    <term name="forthcoming">근간</term>
-    <term name="references">참고 문헌</term>
-    <term name="no date">일자 없음</term>
-    <term name="and">와/과</term>
-    <term name="et-al">기타</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>행</single>
-      <multiple>행</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>페이지</single>
-      <multiple>페이지</multiple>
-    </term>
-    <term name="paragraph">
-      <single>단락</single>
-      <multiple>단락</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">호</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>편집자</single>
-      <multiple>편집자</multiple>
-    </term>
-    <term name="translator">
-      <single>번역자</single>
-      <multiple>번역자</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>편집자</single>
-      <multiple>편집자</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>번역자</single>
-      <multiple>번역자</multiple>
-    </term>
-    <term name="editor" form="verb">편집자：</term>
-    <term name="translator" form="verb">번역자：</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">1월</term>
-    <term name="month-02">2월</term>
-    <term name="month-03">3월</term>
-    <term name="month-04">4월</term>
-    <term name="month-05">5월</term>
-    <term name="month-06">6월</term>
-    <term name="month-07">7월</term>
-    <term name="month-08">8월</term>
-    <term name="month-09">9월</term>
-    <term name="month-10">10월</term>
-    <term name="month-11">11월</term>
-    <term name="month-12">12월</term>
-    <term name="month-01" form="short">1</term>
-    <term name="month-02" form="short">2</term>
-    <term name="month-03" form="short">3</term>
-    <term name="month-04" form="short">4</term>
-    <term name="month-05" form="short">5</term>
-    <term name="month-06" form="short">6</term>
-    <term name="month-07" form="short">7</term>
-    <term name="month-08" form="short">8</term>
-    <term name="month-09" form="short">9</term>
-    <term name="month-10" form="short">10</term>
-    <term name="month-11" form="short">11</term>
-    <term name="month-12" form="short">12</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="ko">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="year" suffix="&#45380;"/>
+      <date-part name="month" form="numeric" prefix=" " suffix="&#50900;"/>
+      <date-part name="day" prefix=" " suffix="&#51068;"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="/"/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="/"/>
+   </date>
+   <terms>
+      <term name="accessed">접근된</term>
+      <term name="and">와/과</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">기타</term>
+      <term name="forthcoming">근간</term>
+      <term name="from">(으)로부터</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">일자 없음</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>행</single>
+         <multiple>행</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>페이지</single>
+         <multiple>페이지</multiple>
+      </term>
+      <term name="paragraph">
+         <single>단락</single>
+         <multiple>단락</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">호</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>편집자</single>
+         <multiple>편집자</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>번역자</single>
+         <multiple>번역자</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>편집자</single>
+         <multiple>편집자</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>번역자</single>
+         <multiple>번역자</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">편집자：</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">번역자：</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">1월</term>
+      <term name="month-02">2월</term>
+      <term name="month-03">3월</term>
+      <term name="month-04">4월</term>
+      <term name="month-05">5월</term>
+      <term name="month-06">6월</term>
+      <term name="month-07">7월</term>
+      <term name="month-08">8월</term>
+      <term name="month-09">9월</term>
+      <term name="month-10">10월</term>
+      <term name="month-11">11월</term>
+      <term name="month-12">12월</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">1</term>
+      <term name="month-02" form="short">2</term>
+      <term name="month-03" form="short">3</term>
+      <term name="month-04" form="short">4</term>
+      <term name="month-05" form="short">5</term>
+      <term name="month-06" form="short">6</term>
+      <term name="month-07" form="short">7</term>
+      <term name="month-08" form="short">8</term>
+      <term name="month-09" form="short">9</term>
+      <term name="month-10" form="short">10</term>
+      <term name="month-11" form="short">11</term>
+      <term name="month-12" form="short">12</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-mn-MN.xml b/locales/locales-mn-MN.xml
--- a/locales/locales-mn-MN.xml
+++ b/locales/locales-mn-MN.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="mn">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">references</term>
-    <term name="no date">n.d.</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>lines</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="mn">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="."/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="."/>
+   </date>
+   <terms>
+      <term name="accessed">accessed</term>
+      <term name="and">and</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">from</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">n.d.</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>line</single>
+         <multiple>lines</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>page</single>
+         <multiple>pages</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraph</single>
+         <multiple>paragraph</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">no</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>translator</single>
+         <multiple>translators</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran</single>
+         <multiple>trans</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">edited by</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">translated by</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">January</term>
+      <term name="month-02">February</term>
+      <term name="month-03">March</term>
+      <term name="month-04">April</term>
+      <term name="month-05">May</term>
+      <term name="month-06">June</term>
+      <term name="month-07">July</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">October</term>
+      <term name="month-11">November</term>
+      <term name="month-12">December</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Oct</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-nb-NO.xml b/locales/locales-nb-NO.xml
--- a/locales/locales-nb-NO.xml
+++ b/locales/locales-nb-NO.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="nb">
-    <term name="at">på</term>
-    <term name="in">i</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">aksessert</term>
-    <term name="retrieved">hentet</term>
-    <term name="from">fra</term>
-    <term name="forthcoming">kommende</term>
-    <term name="references">referanser</term>
-    <term name="no date">udatert</term>
-    <term name="and">og</term>
-    <term name="et-al">mfl</term>
-    <term name="interview">intervju</term>
-    <term name="letter">brev</term>
-    <term name="anonymous">anonym</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">med flere</term>
-    <term name="in press">i trykk</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">Internett</term>
-    <term name="presented at">presentert på</term>
-    <term name="anthropology">antropologi</term>
-    <term name="astronomy">astronomi</term>
-    <term name="biology">biologi</term>
-    <term name="botany">botanikk</term>
-    <term name="chemistry">kjemi</term>
-    <term name="engineering">ingeniørvitenskap</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geografi</term>
-    <term name="geology">geologi</term>
-    <term name="history">historie</term>
-    <term name="humanities">humanistiske fag</term>
-    <term name="literature">litteratur</term>
-    <term name="math">matte</term>
-    <term name="medicine">medisin</term>
-    <term name="philosophy">filosofi</term>
-    <term name="physics">fysikk</term>
-    <term name="psychology">fysiologi</term>
-    <term name="sociology">sosiologi</term>
-    <term name="science">naturvitenskap</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">sosialvitenskap</term>
-    <term name="theology">teologi</term>
-    <term name="zoology">zoologi</term>
-    <term name="book">
-      <single>bok</single>
-      <multiple>bøker</multiple>
-    </term>
-    <term name="chapter">
-      <single>kapittel</single>
-      <multiple>kapitler</multiple>
-    </term>
-    <term name="column">
-      <single>kolonne</single>
-      <multiple>kolenner</multiple>
-    </term>
-    <term name="figure">
-      <single>figur</single>
-      <multiple>figurer</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folioer</multiple>
-    </term>
-    <term name="issue">
-      <single>nummer</single>
-      <multiple>numre</multiple>
-    </term>
-    <term name="line">
-      <single>linje</single>
-      <multiple>linjer</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>noter</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opus</multiple>
-    </term>
-    <term name="page">
-      <single>side</single>
-      <multiple>sider</multiple>
-    </term>
-    <term name="paragraph">
-      <single>avsnitt</single>
-      <multiple>avsnitt</multiple>
-    </term>
-    <term name="part">
-      <single>del</single>
-      <multiple>deler</multiple>
-    </term>
-    <term name="section">
-      <single>seksjon</single>
-      <multiple>seksjoner</multiple>
-    </term>
-    <term name="volume">
-      <single>bind</single>
-      <multiple>bind</multiple>
-    </term>
-    <term name="edition">
-      <single>utgave</single>
-      <multiple>utgaver</multiple>
-    </term>
-    <term name="verse">
-      <single>vers</single>
-      <multiple>vers</multiple>
-    </term>
-    <term name="book" form="short">b</term>
-    <term name="chapter" form="short">kap</term>
-    <term name="column" form="short">kol</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">fol</term>
-    <term name="issue" form="short">nr</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>s</single>
-      <multiple>s</multiple>
-    </term>
-    <term name="paragraph" form="short">avsn</term>
-    <term name="part" form="short">d</term>
-    <term name="section" form="short">sek</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>v</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>bd</single>
-      <multiple>bd</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">utg</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>redaktør</single>
-      <multiple>redaktører</multiple>
-    </term>
-    <term name="translator">
-      <single>oversetter</single>
-      <multiple>oversettere</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>red</single>
-      <multiple>red</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>overs</single>
-      <multiple>overs</multiple>
-    </term>
-    <term name="editor" form="verb">redigert av</term>
-    <term name="translator" form="verb">oversatt av</term>
-    <term name="recipient" form="verb">mottatt av</term>
-    <term name="interviewer" form="verb">intervjuet av</term>
-    <term name="editor" form="verb-short">utg</term>
-    <term name="translator" form="verb-short">overs</term>
-    <term name="month-01">Januar</term>
-    <term name="month-02">Februar</term>
-    <term name="month-03">Mars</term>
-    <term name="month-04">April</term>
-    <term name="month-05">Mai</term>
-    <term name="month-06">Juni</term>
-    <term name="month-07">Juli</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">Oktober</term>
-    <term name="month-11">November</term>
-    <term name="month-12">Desember</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">Mai</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Okt</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Des</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="nb">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+   </date>
+   <terms>
+      <term name="accessed">åpnet</term>
+      <term name="and">og</term>
+      <term name="and others">med flere</term>
+      <term name="anonymous">anonym</term>
+      <term name="anonymous" form="short">anon.</term>
+      <term name="at">på</term>
+      <term name="by">av</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">ca.</term>
+      <term name="cited">sitert</term>
+      <term name="edition">
+         <single>utgave</single>
+         <multiple>utgaver</multiple>
+      </term>
+      <term name="edition" form="short">utg.</term>
+      <term name="et-al">m.fl.</term>
+      <term name="forthcoming">kommende</term>
+      <term name="from">fra</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">i</term>
+      <term name="in press">i trykk</term>
+      <term name="internet">Internett</term>
+      <term name="interview">intervju</term>
+      <term name="letter">brev</term>
+      <term name="no date">ingen dato</term>
+      <term name="no date" form="short">udatert</term>
+      <term name="online">online</term>
+      <term name="presented at">presentert på</term>
+      <term name="reference">
+         <single>referanse</single>
+         <multiple>referanser</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refr.</multiple>
+      </term>
+      <term name="retrieved">hentet</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">f.Kr</term>
+      <term name="bc">e.Kr</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">«</term>
+      <term name="close-quote">»</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">.</term>
+      <term name="ordinal-02">.</term>
+      <term name="ordinal-03">.</term>
+      <term name="ordinal-04">.</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">første</term>
+      <term name="long-ordinal-02">andre</term>
+      <term name="long-ordinal-03">tredje</term>
+      <term name="long-ordinal-04">fjerde</term>
+      <term name="long-ordinal-05">femte</term>
+      <term name="long-ordinal-06">sjette</term>
+      <term name="long-ordinal-07">sjuende</term>
+      <term name="long-ordinal-08">åttende</term>
+      <term name="long-ordinal-09">niende</term>
+      <term name="long-ordinal-10">tiende</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologi</term>
+      <term name="astronomy">astronomi</term>
+      <term name="biology">biologi</term>
+      <term name="botany">botanikk</term>
+      <term name="chemistry">kjemi</term>
+      <term name="engineering">ingeniørvitenskap</term>
+      <term name="generic-base">generell</term>
+      <term name="geography">geografi</term>
+      <term name="geology">geologi</term>
+      <term name="history">historie</term>
+      <term name="humanities">humanistiske fag</term>
+      <term name="linguistics">lingvistikk</term>
+      <term name="literature">litteratur</term>
+      <term name="math">mattematikk</term>
+      <term name="medicine">medisin</term>
+      <term name="philosophy">filosofi</term>
+      <term name="physics">fysikk</term>
+      <term name="psychology">fysiologi</term>
+      <term name="sociology">sosiologi</term>
+      <term name="science">naturvitenskap</term>
+      <term name="political_science">statsvitenskap</term>
+      <term name="social_science">samfunnsvitenskap</term>
+      <term name="theology">teologi</term>
+      <term name="zoology">zoologi</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>bok</single>
+         <multiple>bøker</multiple>
+      </term>
+      <term name="chapter">
+         <single>kapittel</single>
+         <multiple>kapitler</multiple>
+      </term>
+      <term name="column">
+         <single>kolonne</single>
+         <multiple>kolonner</multiple>
+      </term>
+      <term name="figure">
+         <single>figur</single>
+         <multiple>figurer</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folioer</multiple>
+      </term>
+      <term name="issue">
+         <single>nummer</single>
+         <multiple>numre</multiple>
+      </term>
+      <term name="line">
+         <single>linje</single>
+         <multiple>linjer</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>noter</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opus</multiple>
+      </term>
+      <term name="page">
+         <single>side</single>
+         <multiple>sider</multiple>
+      </term>
+      <term name="paragraph">
+         <single>avsnitt</single>
+         <multiple>avsnitt</multiple>
+      </term>
+      <term name="part">
+         <single>del</single>
+         <multiple>deler</multiple>
+      </term>
+      <term name="section">
+         <single>paragraf</single>
+         <multiple>paragrafer</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>vers</single>
+         <multiple>vers</multiple>
+      </term>
+      <term name="volume">
+         <single>bind</single>
+         <multiple>bind</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">b.</term>
+      <term name="chapter" form="short">kap.</term>
+      <term name="column" form="short">kol.</term>
+      <term name="figure" form="short">fig.</term>
+      <term name="folio" form="short">fol.</term>
+      <term name="issue" form="short">nr.</term>
+      <term name="opus" form="short">op.</term>
+      <term name="page" form="short">
+         <single>s.</single>
+         <multiple>s.</multiple>
+      </term>
+      <term name="paragraph" form="short">avsn.</term>
+      <term name="part" form="short">d.</term>
+      <term name="section" form="short">pargr.</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v.</single>
+         <multiple>v.</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>bd.</single>
+         <multiple>bd.</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>redaktør</single>
+         <multiple>redaktører</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>redaktør</single>
+         <multiple>redaktører</multiple>
+      </term>
+      <term name="translator">
+         <single>oversetter</single>
+         <multiple>oversettere</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>redaktør &amp; oversetter</single>
+         <multiple>redaktører &amp; oversettere</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>red.</single>
+         <multiple>red.</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>red.</single>
+         <multiple>red.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>overs.</single>
+         <multiple>overs.</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>red. &amp; overs.</single>
+         <multiple>red. &amp; overs.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">redigert av</term>
+      <term name="editorial-director" form="verb">redigert av</term>
+      <term name="translator" form="verb">oversatt av</term>
+      <term name="editortranslator" form="verb">redigert &amp; oversatt av</term>
+      <term name="recipient" form="verb">mottatt av</term>
+      <term name="interviewer" form="verb">intervjuet av</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">av</term>
+      <term name="editor" form="verb-short">red.</term>
+      <term name="editorial-director" form="verb-short">red.</term>
+      <term name="translator" form="verb-short">overs.</term>
+      <term name="editortranslator" form="verb-short">red. &amp; overs. av</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">januar</term>
+      <term name="month-02">februar</term>
+      <term name="month-03">mars</term>
+      <term name="month-04">april</term>
+      <term name="month-05">mai</term>
+      <term name="month-06">juni</term>
+      <term name="month-07">juli</term>
+      <term name="month-08">august</term>
+      <term name="month-09">september</term>
+      <term name="month-10">oktober</term>
+      <term name="month-11">november</term>
+      <term name="month-12">desember</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">jan.</term>
+      <term name="month-02" form="short">feb.</term>
+      <term name="month-03" form="short">mar.</term>
+      <term name="month-04" form="short">apr.</term>
+      <term name="month-05" form="short">mai</term>
+      <term name="month-06" form="short">jun.</term>
+      <term name="month-07" form="short">jul.</term>
+      <term name="month-08" form="short">aug.</term>
+      <term name="month-09" form="short">sep.</term>
+      <term name="month-10" form="short">okt.</term>
+      <term name="month-11" form="short">nov.</term>
+      <term name="month-12" form="short">des.</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">vår</term>
+      <term name="season-02">sommer</term>
+      <term name="season-03">høst</term>
+      <term name="season-04">vinter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-nl-NL.xml b/locales/locales-nl-NL.xml
--- a/locales/locales-nl-NL.xml
+++ b/locales/locales-nl-NL.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="nl">
-    <term name="at">bij</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">bezocht</term>
-    <term name="retrieved">verkregen</term>
-    <term name="from">van</term>
-    <term name="forthcoming">in voorbereiding</term>
-    <term name="references">referenties</term>
-    <term name="no date">geen datum</term>
-    <term name="and">en</term>
-    <term name="et-al">e.a.</term>
-    <term name="interview">interview</term>
-    <term name="letter">brief</term>
-    <term name="anonymous">anoniem</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">en anderen</term>
-    <term name="in press">in druk</term>
-    <term name="online">online</term>
-    <term name="cited">geciteerd</term>
-    <term name="internet">internet</term>
-    <term name="presented at">gepresenteerd bij</term>
-    <term name="anthropology">anthropologie</term>
-    <term name="astronomy">astronomie</term>
-    <term name="biology">biologie</term>
-    <term name="botany">botanie</term>
-    <term name="chemistry">scheikunde</term>
-    <term name="engineering">techniek</term>
-    <term name="generic-base">generiek</term>
-    <term name="geography">geografie</term>
-    <term name="geology">geologie</term>
-    <term name="history">geschiedenis</term>
-    <term name="humanities">geesteswetenschappen</term>
-    <term name="literature">literatuur</term>
-    <term name="math">wiskunde</term>
-    <term name="medicine">medicijnen</term>
-    <term name="philosophy">filosofie</term>
-    <term name="physics">natuurkunde</term>
-    <term name="psychology">psychologie</term>
-    <term name="sociology">sociologie</term>
-    <term name="science">wetenschap</term>
-    <term name="political_science">politieke wetenschappen</term>
-    <term name="social_science">sociale wetenschappen</term>
-    <term name="theology">theologie</term>
-    <term name="zoology">zoologie</term>
-    <term name="book">
-      <single>boek</single>
-      <multiple>boeken</multiple>
-    </term>
-    <term name="chapter">
-      <single>hoofdstuk</single>
-      <multiple>hoofdstukken</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figuur</single>
-      <multiple>figuren</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folio's</multiple>
-    </term>
-    <term name="issue">
-      <single>nummer</single>
-      <multiple>nummers</multiple>
-    </term>
-    <term name="line">
-      <single>regel</single>
-      <multiple>regels</multiple>
-    </term>
-    <term name="note">
-      <single>aantekening</single>
-      <multiple>aantekeningen</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>pagina</single>
-      <multiple>pagina's</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraaf</single>
-      <multiple>paragrafen</multiple>
-    </term>
-    <term name="part">
-      <single>deel</single>
-      <multiple>delen</multiple>
-    </term>
-    <term name="section">
-      <single>sectie</single>
-      <multiple>secties</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>editie</single>
-      <multiple>edities</multiple>
-    </term>
-    <term name="verse">
-      <single>vers</single>
-      <multiple>versen</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">hfdst</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">nr</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">par</term>
-    <term name="part" form="short">deel</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>redacteur</single>
-      <multiple>redacteuren</multiple>
-    </term>
-    <term name="translator">
-      <single>vertaler</single>
-      <multiple>vertalers</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>red</single>
-      <multiple>red</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>vert</single>
-      <multiple>vert</multiple>
-    </term>
-    <term name="editor" form="verb">bewerkt door</term>
-    <term name="translator" form="verb">vertaald door</term>
-    <term name="recipient" form="verb">ontvangen door</term>
-    <term name="interviewer" form="verb">geinterviewd door</term>
-    <term name="editor" form="verb-short">red</term>
-    <term name="translator" form="verb-short">vert</term>
-    <term name="month-01">januari</term>
-    <term name="month-02">februari</term>
-    <term name="month-03">maart</term>
-    <term name="month-04">april</term>
-    <term name="month-05">mei</term>
-    <term name="month-06">juni</term>
-    <term name="month-07">juli</term>
-    <term name="month-08">augustus</term>
-    <term name="month-09">september</term>
-    <term name="month-10">oktober</term>
-    <term name="month-11">november</term>
-    <term name="month-12">december</term>
-    <term name="month-01" form="short">jan</term>
-    <term name="month-02" form="short">feb</term>
-    <term name="month-03" form="short">mrt</term>
-    <term name="month-04" form="short">apr</term>
-    <term name="month-05" form="short">mei</term>
-    <term name="month-06" form="short">jun</term>
-    <term name="month-07" form="short">jul</term>
-    <term name="month-08" form="short">aug</term>
-    <term name="month-09" form="short">sep</term>
-    <term name="month-10" form="short">okt</term>
-    <term name="month-11" form="short">nov</term>
-    <term name="month-12" form="short">dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="nl">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" suffix="-" range-delimiter="/"/>
+      <date-part name="month" form="numeric" suffix="-" range-delimiter="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">bezocht</term>
+      <term name="and">en</term>
+      <term name="and others">en anderen</term>
+      <term name="anonymous">anoniem</term>
+      <term name="anonymous" form="short">anon.</term>
+      <term name="at">bij</term>
+      <term name="by">door</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">geciteerd</term>
+      <term name="edition">
+         <single>editie</single>
+         <multiple>edities</multiple>
+      </term>
+      <term name="edition" form="short">ed.</term>
+      <term name="et-al">e.a.</term>
+      <term name="forthcoming">in voorbereiding</term>
+      <term name="from">van</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in druk</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">brief</term>
+      <term name="no date">zonder datum</term>
+      <term name="no date" form="short">z.d.</term>
+      <term name="online">online</term>
+      <term name="presented at">gepresenteerd bij</term>
+      <term name="reference">
+         <single>referentie</single>
+         <multiple>referenties</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">verkregen</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">e</term>
+      <term name="ordinal-02">e</term>
+      <term name="ordinal-03">e</term>
+      <term name="ordinal-04">e</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">eerste</term>
+      <term name="long-ordinal-02">tweede</term>
+      <term name="long-ordinal-03">derde</term>
+      <term name="long-ordinal-04">vierde</term>
+      <term name="long-ordinal-05">vijfde</term>
+      <term name="long-ordinal-06">zesde</term>
+      <term name="long-ordinal-07">zevende</term>
+      <term name="long-ordinal-08">achtste</term>
+      <term name="long-ordinal-09">negende</term>
+      <term name="long-ordinal-10">tiende</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropologie</term>
+      <term name="astronomy">astronomie</term>
+      <term name="biology">biologie</term>
+      <term name="botany">botanie</term>
+      <term name="chemistry">scheikunde</term>
+      <term name="engineering">techniek</term>
+      <term name="generic-base">generiek</term>
+      <term name="geography">geografie</term>
+      <term name="geology">geologie</term>
+      <term name="history">geschiedenis</term>
+      <term name="humanities">geesteswetenschappen</term>
+      <term name="linguistics">taalkunde</term>
+      <term name="literature">literatuur</term>
+      <term name="math">wiskunde</term>
+      <term name="medicine">medicijnen</term>
+      <term name="philosophy">filosofie</term>
+      <term name="physics">natuurkunde</term>
+      <term name="psychology">psychologie</term>
+      <term name="sociology">sociologie</term>
+      <term name="science">wetenschap</term>
+      <term name="political_science">politieke wetenschappen</term>
+      <term name="social_science">sociale wetenschappen</term>
+      <term name="theology">theologie</term>
+      <term name="zoology">zoologie</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>boek</single>
+         <multiple>boeken</multiple>
+      </term>
+      <term name="chapter">
+         <single>hoofdstuk</single>
+         <multiple>hoofdstukken</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figuur</single>
+         <multiple>figuren</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folio's</multiple>
+      </term>
+      <term name="issue">
+         <single>nummer</single>
+         <multiple>nummers</multiple>
+      </term>
+      <term name="line">
+         <single>regel</single>
+         <multiple>regels</multiple>
+      </term>
+      <term name="note">
+         <single>aantekening</single>
+         <multiple>aantekeningen</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>pagina</single>
+         <multiple>pagina's</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraaf</single>
+         <multiple>paragrafen</multiple>
+      </term>
+      <term name="part">
+         <single>deel</single>
+         <multiple>delen</multiple>
+      </term>
+      <term name="section">
+         <single>sectie</single>
+         <multiple>secties</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>vers</single>
+         <multiple>versen</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk.</term>
+      <term name="chapter" form="short">hfdst.</term>
+      <term name="column" form="short">col.</term>
+      <term name="figure" form="short">fig.</term>
+      <term name="folio" form="short">f.</term>
+      <term name="issue" form="short">nr.</term>
+      <term name="opus" form="short">op.</term>
+      <term name="page" form="short">
+         <single>p.</single>
+         <multiple>pp.</multiple>
+      </term>
+      <term name="paragraph" form="short">par.</term>
+      <term name="part" form="short">deel</term>
+      <term name="section" form="short">sec.</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v.</single>
+         <multiple>vv.</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol.</single>
+         <multiple>vols.</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>redacteur</single>
+         <multiple>redacteuren</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>redacteur</single>
+         <multiple>redacteuren</multiple>
+      </term>
+      <term name="translator">
+         <single>vertaler</single>
+         <multiple>vertalers</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>redacteur &amp; vertaler</single>
+         <multiple>redacteuren &amp; vertalers</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>red.</single>
+         <multiple>red.</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>red.</single>
+         <multiple>red.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>vert.</single>
+         <multiple>vert.</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>red. &amp; vert.</single>
+         <multiple>red. &amp; vert.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">bewerkt door</term>
+      <term name="editorial-director" form="verb">bewerkt door</term>
+      <term name="translator" form="verb">vertaald door</term>
+      <term name="editortranslator" form="verb">bewerkt &amp; vertaald door</term>
+      <term name="recipient" form="verb">ontvangen door</term>
+      <term name="interviewer" form="verb">geïnterviewd door</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">door</term>
+      <term name="editor" form="verb-short">bewerkt door</term>
+      <term name="editorial-director" form="verb-short">bewerkt door</term>
+      <term name="translator" form="verb-short">vertaald door</term>
+      <term name="editortranslator" form="verb-short">bewerkt &amp; vertaald door</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">januari</term>
+      <term name="month-02">februari</term>
+      <term name="month-03">maart</term>
+      <term name="month-04">april</term>
+      <term name="month-05">mei</term>
+      <term name="month-06">juni</term>
+      <term name="month-07">juli</term>
+      <term name="month-08">augustus</term>
+      <term name="month-09">september</term>
+      <term name="month-10">oktober</term>
+      <term name="month-11">november</term>
+      <term name="month-12">december</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">jan.</term>
+      <term name="month-02" form="short">feb.</term>
+      <term name="month-03" form="short">mrt.</term>
+      <term name="month-04" form="short">apr.</term>
+      <term name="month-05" form="short">mei</term>
+      <term name="month-06" form="short">jun.</term>
+      <term name="month-07" form="short">jul.</term>
+      <term name="month-08" form="short">aug.</term>
+      <term name="month-09" form="short">sep.</term>
+      <term name="month-10" form="short">okt.</term>
+      <term name="month-11" form="short">nov.</term>
+      <term name="month-12" form="short">dec.</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">lente</term>
+      <term name="season-02">zomer</term>
+      <term name="season-03">herst</term>
+      <term name="season-04">winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-nn-NO.xml b/locales/locales-nn-NO.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-nn-NO.xml
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="nn">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+   </date>
+   <terms>
+      <term name="accessed">vitja</term>
+      <term name="and">og</term>
+      <term name="and others">med fleire</term>
+      <term name="anonymous">anonym</term>
+      <term name="anonymous" form="short">anon.</term>
+      <term name="at">på</term>
+      <term name="by">av</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">ca.</term>
+      <term name="cited">sitert</term>
+      <term name="edition">
+         <single>utgåve</single>
+         <multiple>utgåver</multiple>
+      </term>
+      <term name="edition" form="short">utg.</term>
+      <term name="et-al">m.fl.</term>
+      <term name="forthcoming">kommande</term>
+      <term name="from">frå</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">i</term>
+      <term name="in press">i trykk</term>
+      <term name="internet">Internett</term>
+      <term name="interview">intervju</term>
+      <term name="letter">brev</term>
+      <term name="no date">ingen dato</term>
+      <term name="no date" form="short">udatert</term>
+      <term name="online">online</term>
+      <term name="presented at">presentert på</term>
+      <term name="reference">
+         <single>referanse</single>
+         <multiple>referansar</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refr.</multiple>
+      </term>
+      <term name="retrieved">henta</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">f.Kr</term>
+      <term name="bc">e.Kr</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">«</term>
+      <term name="close-quote">»</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">.</term>
+      <term name="ordinal-02">.</term>
+      <term name="ordinal-03">.</term>
+      <term name="ordinal-04">.</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">første</term>
+      <term name="long-ordinal-02">andre</term>
+      <term name="long-ordinal-03">tredje</term>
+      <term name="long-ordinal-04">fjerde</term>
+      <term name="long-ordinal-05">femte</term>
+      <term name="long-ordinal-06">sjette</term>
+      <term name="long-ordinal-07">sjuande</term>
+      <term name="long-ordinal-08">åttande</term>
+      <term name="long-ordinal-09">niande</term>
+      <term name="long-ordinal-10">tiande</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologi</term>
+      <term name="astronomy">astronomi</term>
+      <term name="biology">biologi</term>
+      <term name="botany">botanikk</term>
+      <term name="chemistry">kjemi</term>
+      <term name="engineering">ingeniørvitskap</term>
+      <term name="generic-base">generell</term>
+      <term name="geography">geografi</term>
+      <term name="geology">geologi</term>
+      <term name="history">historie</term>
+      <term name="humanities">humanistiske fag</term>
+      <term name="linguistics">lingvistikk</term>
+      <term name="literature">litteratur</term>
+      <term name="math">mattematikk</term>
+      <term name="medicine">medisin</term>
+      <term name="philosophy">filosofi</term>
+      <term name="physics">fysikk</term>
+      <term name="psychology">fysiologi</term>
+      <term name="sociology">sosiologi</term>
+      <term name="science">naturvitskap</term>
+      <term name="political_science">statsvitskap</term>
+      <term name="social_science">samfunnsvitskap</term>
+      <term name="theology">teologi</term>
+      <term name="zoology">zoologi</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>bok</single>
+         <multiple>bøker</multiple>
+      </term>
+      <term name="chapter">
+         <single>kapittel</single>
+         <multiple>kapittel</multiple>
+      </term>
+      <term name="column">
+         <single>kolonne</single>
+         <multiple>kolonner</multiple>
+      </term>
+      <term name="figure">
+         <single>figur</single>
+         <multiple>figurar</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folioar</multiple>
+      </term>
+      <term name="issue">
+         <single>nummer</single>
+         <multiple>nummer</multiple>
+      </term>
+      <term name="line">
+         <single>linje</single>
+         <multiple>linjer</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notar</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opus</multiple>
+      </term>
+      <term name="page">
+         <single>side</single>
+         <multiple>sider</multiple>
+      </term>
+      <term name="paragraph">
+         <single>avsnitt</single>
+         <multiple>avsnitt</multiple>
+      </term>
+      <term name="part">
+         <single>del</single>
+         <multiple>deler</multiple>
+      </term>
+      <term name="section">
+         <single>paragraf</single>
+         <multiple>paragrafar</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>vers</single>
+         <multiple>vers</multiple>
+      </term>
+      <term name="volume">
+         <single>bind</single>
+         <multiple>bind</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">b.</term>
+      <term name="chapter" form="short">kap.</term>
+      <term name="column" form="short">kol.</term>
+      <term name="figure" form="short">fig.</term>
+      <term name="folio" form="short">fol.</term>
+      <term name="issue" form="short">nr.</term>
+      <term name="opus" form="short">op.</term>
+      <term name="page" form="short">
+         <single>s.</single>
+         <multiple>s.</multiple>
+      </term>
+      <term name="paragraph" form="short">avsn.</term>
+      <term name="part" form="short">d.</term>
+      <term name="section" form="short">par.</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v.</single>
+         <multiple>v.</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>bd.</single>
+         <multiple>bd.</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>redaktør</single>
+         <multiple>redaktørar</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>redaktør</single>
+         <multiple>redaktørar</multiple>
+      </term>
+      <term name="translator">
+         <single>omsetjar</single>
+         <multiple>omsetjarar</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>redaktør &amp; omsetjar</single>
+         <multiple>redaktørar &amp; omsetjarar</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>red.</single>
+         <multiple>red.</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>red.</single>
+         <multiple>red.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>oms.</single>
+         <multiple>oms.</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>red. &amp; oms.</single>
+         <multiple>red. &amp; oms.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">redigert av</term>
+      <term name="editorial-director" form="verb">redigert av</term>
+      <term name="translator" form="verb">omsett av</term>
+      <term name="editortranslator" form="verb">redigert &amp; omsett av</term>
+      <term name="recipient" form="verb">motteke av</term>
+      <term name="interviewer" form="verb">intervjua av</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">av</term>
+      <term name="editor" form="verb-short">red.</term>
+      <term name="editorial-director" form="verb-short">red.</term>
+      <term name="translator" form="verb-short">oms.</term>
+      <term name="editortranslator" form="verb-short">red. &amp; oms. av</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">januar</term>
+      <term name="month-02">februar</term>
+      <term name="month-03">mars</term>
+      <term name="month-04">april</term>
+      <term name="month-05">mai</term>
+      <term name="month-06">juni</term>
+      <term name="month-07">juli</term>
+      <term name="month-08">august</term>
+      <term name="month-09">september</term>
+      <term name="month-10">oktober</term>
+      <term name="month-11">november</term>
+      <term name="month-12">desember</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">jan.</term>
+      <term name="month-02" form="short">feb.</term>
+      <term name="month-03" form="short">mar.</term>
+      <term name="month-04" form="short">apr.</term>
+      <term name="month-05" form="short">mai</term>
+      <term name="month-06" form="short">jun.</term>
+      <term name="month-07" form="short">jul.</term>
+      <term name="month-08" form="short">aug.</term>
+      <term name="month-09" form="short">sep.</term>
+      <term name="month-10" form="short">okt.</term>
+      <term name="month-11" form="short">nov.</term>
+      <term name="month-12" form="short">des.</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">vår</term>
+      <term name="season-02">sommar</term>
+      <term name="season-03">haust</term>
+      <term name="season-04">vinter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-pl-PL.xml b/locales/locales-pl-PL.xml
--- a/locales/locales-pl-PL.xml
+++ b/locales/locales-pl-PL.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="pl">
-    <term name="at">at</term>
-    <term name="in">w</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">udostępniono</term>
-    <term name="retrieved">pobrano</term>
-    <term name="from">z</term>
-    <term name="forthcoming">w druku</term>
-    <term name="references">Referencje</term>
-    <term name="no date">bez daty</term>
-    <term name="and">i</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">wywiad</term>
-    <term name="letter">list</term>
-    <term name="anonymous">anonim</term>
-    <term name="anonymous" form="short">anonim</term>
-    <term name="and others">i inni</term>
-    <term name="in press">w druku</term>
-    <term name="online">online</term>
-    <term name="cited">cytowane</term>
-    <term name="internet">internet</term>
-    <term name="presented at">zaprezentowano</term>
-    <term name="anthropology">antropologia</term>
-    <term name="astronomy">astronomia</term>
-    <term name="biology">biologia</term>
-    <term name="botany">botanika</term>
-    <term name="chemistry">chemia</term>
-    <term name="engineering">inżynieria</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geografia</term>
-    <term name="geology">geologia</term>
-    <term name="history">historia</term>
-    <term name="humanities">humanistyka</term>
-    <term name="literature">literatura</term>
-    <term name="math">matematyka</term>
-    <term name="medicine">medycyna</term>
-    <term name="philosophy">filozofia</term>
-    <term name="physics">fizyka</term>
-    <term name="psychology">psychologia</term>
-    <term name="sociology">socjologia</term>
-    <term name="science">nauki ścisłe</term>
-    <term name="political_science">nauki polityczne</term>
-    <term name="social_science">nauki społeczne</term>
-    <term name="theology">teologia</term>
-    <term name="zoology">zoologia</term>
-    <term name="book">
-      <single>książka</single>
-      <multiple>książki</multiple>
-    </term>
-    <term name="chapter">
-      <single>rozdział</single>
-      <multiple>rozdziały</multiple>
-    </term>
-    <term name="column">
-      <single>kolumna</single>
-      <multiple>kolumny</multiple>
-    </term>
-    <term name="figure">
-      <single>rycina</single>
-      <multiple>ryciny</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>numer</single>
-      <multiple>numery</multiple>
-    </term>
-    <term name="line">
-      <single>wers</single>
-      <multiple>wersy</multiple>
-    </term>
-    <term name="note">
-      <single>notatka</single>
-      <multiple>notatki</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>strona</single>
-      <multiple>strony</multiple>
-    </term>
-    <term name="paragraph">
-      <single>akapit</single>
-      <multiple>akapity</multiple>
-    </term>
-    <term name="part">
-      <single>część</single>
-      <multiple>części</multiple>
-    </term>
-    <term name="section">
-      <single>sekcja</single>
-      <multiple>sekcja</multiple>
-    </term>
-    <term name="volume">
-      <single>tom</single>
-      <multiple>tomy</multiple>
-    </term>
-    <term name="edition">
-      <single>wydanie</single>
-      <multiple>wydania</multiple>
-    </term>
-    <term name="verse">
-      <single>wers</single>
-      <multiple>wersy</multiple>
-    </term>
-    <term name="book" form="short">książka</term>
-    <term name="chapter" form="short">rozdz</term>
-    <term name="column" form="short">kolumna</term>
-    <term name="figure" form="short">ryc</term>
-    <term name="folio" form="short">folio</term>
-    <term name="issue" form="short">nr</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>s</single>
-      <multiple>s</multiple>
-    </term>
-    <term name="paragraph" form="short">akapit</term>
-    <term name="part" form="short">część</term>
-    <term name="section" form="short">sekcja</term>
-    <term name="verse" form="short">
-      <single>wers</single>
-      <multiple>wersy</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>t</single>
-      <multiple>t</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">wyd</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>redaktor</single>
-      <multiple>redaktorzy</multiple>
-    </term>
-    <term name="translator">
-      <single>tłumacz</single>
-      <multiple>tłumacze</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>red</single>
-      <multiple>red</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tłum</single>
-      <multiple>tłum</multiple>
-    </term>
-    <term name="editor" form="verb">zredagowane przez</term>
-    <term name="translator" form="verb">przetłumaczone przez</term>
-    <term name="recipient" form="verb">dla</term>
-    <term name="interviewer" form="verb">przeprowadzony przez</term>
-    <term name="editor" form="verb-short">red</term>
-    <term name="translator" form="verb-short">tłum</term>
-    <term name="month-01">styczeń</term>
-    <term name="month-02">luty</term>
-    <term name="month-03">marzec</term>
-    <term name="month-04">kwiecień</term>
-    <term name="month-05">maj</term>
-    <term name="month-06">czerwiec</term>
-    <term name="month-07">lipiec</term>
-    <term name="month-08">sierpień</term>
-    <term name="month-09">wrzesień</term>
-    <term name="month-10">październik</term>
-    <term name="month-11">listopad</term>
-    <term name="month-12">grudzień</term>
-    <term name="month-01" form="short">styczeń</term>
-    <term name="month-02" form="short">luty</term>
-    <term name="month-03" form="short">marzec</term>
-    <term name="month-04" form="short">kwiecień</term>
-    <term name="month-05" form="short">maj</term>
-    <term name="month-06" form="short">czerwiec</term>
-    <term name="month-07" form="short">lipiec</term>
-    <term name="month-08" form="short">sierpień</term>
-    <term name="month-09" form="short">wrzesień</term>
-    <term name="month-10" form="short">październik</term>
-    <term name="month-11" form="short">listopad</term>
-    <term name="month-12" form="short">grudzień</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="pl">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">udostępniono</term>
+      <term name="and">i</term>
+      <term name="and others">i inni</term>
+      <term name="anonymous">anonim</term>
+      <term name="anonymous" form="short">anonim</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cytowane</term>
+      <term name="edition">
+         <single>wydanie</single>
+         <multiple>wydania</multiple>
+      </term>
+      <term name="edition" form="short">wyd</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">w druku</term>
+      <term name="from">z</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">w</term>
+      <term name="in press">w druku</term>
+      <term name="internet">internet</term>
+      <term name="interview">wywiad</term>
+      <term name="letter">list</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">bez daty</term>
+      <term name="online">online</term>
+      <term name="presented at">zaprezentowano</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">pobrano</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologia</term>
+      <term name="astronomy">astronomia</term>
+      <term name="biology">biologia</term>
+      <term name="botany">botanika</term>
+      <term name="chemistry">chemia</term>
+      <term name="engineering">inżynieria</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geografia</term>
+      <term name="geology">geologia</term>
+      <term name="history">historia</term>
+      <term name="humanities">humanistyka</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literatura</term>
+      <term name="math">matematyka</term>
+      <term name="medicine">medycyna</term>
+      <term name="philosophy">filozofia</term>
+      <term name="physics">fizyka</term>
+      <term name="psychology">psychologia</term>
+      <term name="sociology">socjologia</term>
+      <term name="science">nauki ścisłe</term>
+      <term name="political_science">nauki polityczne</term>
+      <term name="social_science">nauki społeczne</term>
+      <term name="theology">teologia</term>
+      <term name="zoology">zoologia</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>książka</single>
+         <multiple>książki</multiple>
+      </term>
+      <term name="chapter">
+         <single>rozdział</single>
+         <multiple>rozdziały</multiple>
+      </term>
+      <term name="column">
+         <single>kolumna</single>
+         <multiple>kolumny</multiple>
+      </term>
+      <term name="figure">
+         <single>rycina</single>
+         <multiple>ryciny</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>numer</single>
+         <multiple>numery</multiple>
+      </term>
+      <term name="line">
+         <single>wers</single>
+         <multiple>wersy</multiple>
+      </term>
+      <term name="note">
+         <single>notatka</single>
+         <multiple>notatki</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>strona</single>
+         <multiple>strony</multiple>
+      </term>
+      <term name="paragraph">
+         <single>akapit</single>
+         <multiple>akapity</multiple>
+      </term>
+      <term name="part">
+         <single>część</single>
+         <multiple>części</multiple>
+      </term>
+      <term name="section">
+         <single>sekcja</single>
+         <multiple>sekcja</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>wers</single>
+         <multiple>wersy</multiple>
+      </term>
+      <term name="volume">
+         <single>tom</single>
+         <multiple>tomy</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">książka</term>
+      <term name="chapter" form="short">rozdz</term>
+      <term name="column" form="short">kolumna</term>
+      <term name="figure" form="short">ryc</term>
+      <term name="folio" form="short">folio</term>
+      <term name="issue" form="short">nr</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>s</single>
+         <multiple>s</multiple>
+      </term>
+      <term name="paragraph" form="short">akapit</term>
+      <term name="part" form="short">część</term>
+      <term name="section" form="short">sekcja</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>wers</single>
+         <multiple>wersy</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>t</single>
+         <multiple>t</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>redaktor</single>
+         <multiple>redaktorzy</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>tłumacz</single>
+         <multiple>tłumacze</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>red</single>
+         <multiple>red</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tłum</single>
+         <multiple>tłum</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">zredagowane przez</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">przetłumaczone przez</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">dla</term>
+      <term name="interviewer" form="verb">przeprowadzony przez</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">red</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">tłum</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">styczeń</term>
+      <term name="month-02">luty</term>
+      <term name="month-03">marzec</term>
+      <term name="month-04">kwiecień</term>
+      <term name="month-05">maj</term>
+      <term name="month-06">czerwiec</term>
+      <term name="month-07">lipiec</term>
+      <term name="month-08">sierpień</term>
+      <term name="month-09">wrzesień</term>
+      <term name="month-10">październik</term>
+      <term name="month-11">listopad</term>
+      <term name="month-12">grudzień</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">styczeń</term>
+      <term name="month-02" form="short">luty</term>
+      <term name="month-03" form="short">marzec</term>
+      <term name="month-04" form="short">kwiecień</term>
+      <term name="month-05" form="short">maj</term>
+      <term name="month-06" form="short">czerwiec</term>
+      <term name="month-07" form="short">lipiec</term>
+      <term name="month-08" form="short">sierpień</term>
+      <term name="month-09" form="short">wrzesień</term>
+      <term name="month-10" form="short">październik</term>
+      <term name="month-11" form="short">listopad</term>
+      <term name="month-12" form="short">grudzień</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-pt-BR.xml b/locales/locales-pt-BR.xml
--- a/locales/locales-pt-BR.xml
+++ b/locales/locales-pt-BR.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="pt">
-    <term name="at">at</term>
-    <term name="in">em</term>
-    <term name="ibid">ibidem</term>
-    <term name="accessed">acessado</term>
-    <term name="retrieved">restaurado</term>
-    <term name="from">de</term>
-    <term name="forthcoming">sugerido</term>
-    <term name="references">Referências</term>
-    <term name="no date">sd</term>
-    <term name="and">e</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>linha</single>
-      <multiple>linhas</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>página</single>
-      <multiple>páginas</multiple>
-    </term>
-    <term name="paragraph">
-      <single>parágrafo</single>
-      <multiple>parágrafos</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editores</multiple>
-    </term>
-    <term name="translator">
-      <single>tradutor</single>
-      <multiple>tradutores</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">editado por</term>
-    <term name="translator" form="verb">traduzido por</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">Janeiro</term>
-    <term name="month-02">Fevereiro</term>
-    <term name="month-03">Março</term>
-    <term name="month-04">Abril</term>
-    <term name="month-05">Maio</term>
-    <term name="month-06">Junho</term>
-    <term name="month-07">Julho</term>
-    <term name="month-08">Agosto</term>
-    <term name="month-09">Setembro</term>
-    <term name="month-10">Outubro</term>
-    <term name="month-11">Novembro</term>
-    <term name="month-12">Dezembro</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Fev</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Abr</term>
-    <term name="month-05" form="short">Mai</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Ago</term>
-    <term name="month-09" form="short">Set</term>
-    <term name="month-10" form="short">Out</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dez</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="pt">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" de "/>
+      <date-part name="month" suffix=" de "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">acessado</term>
+      <term name="and">e</term>
+      <term name="and others">e outros</term>
+      <term name="anonymous">anônimo</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">em</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">citado</term>
+      <term name="edition">
+         <single>edição</single>
+         <multiple>edições</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">a ser publicado</term>
+      <term name="from">de</term>
+      <term name="ibid">ibidem</term>
+      <term name="in">in</term>
+      <term name="in press">no prelo</term>
+      <term name="internet">internet</term>
+      <term name="interview">entrevista</term>
+      <term name="letter">carta</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">[s.d.]</term>
+      <term name="online">online</term>
+      <term name="presented at">apresentado em</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">recuperado</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologia</term>
+      <term name="astronomy">astronomia</term>
+      <term name="biology">biologia</term>
+      <term name="botany">botânica</term>
+      <term name="chemistry">química</term>
+      <term name="engineering">engenharia</term>
+      <term name="generic-base">base genérica</term>
+      <term name="geography">geografia</term>
+      <term name="geology">geologia</term>
+      <term name="history">história</term>
+      <term name="humanities">humanidades</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literatura</term>
+      <term name="math">matemática</term>
+      <term name="medicine">medicina</term>
+      <term name="philosophy">philosofia</term>
+      <term name="physics">física</term>
+      <term name="psychology">psicologia</term>
+      <term name="sociology">sociologia</term>
+      <term name="science">ciências</term>
+      <term name="political_science">ciências políticas</term>
+      <term name="social_science">ciências sociais</term>
+      <term name="theology">teologia</term>
+      <term name="zoology">zoologia</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>livro</single>
+         <multiple>livros</multiple>
+      </term>
+      <term name="chapter">
+         <single>capítulo</single>
+         <multiple>capítulos</multiple>
+      </term>
+      <term name="column">
+         <single>coluna</single>
+         <multiple>colunas</multiple>
+      </term>
+      <term name="figure">
+         <single>figura</single>
+         <multiple>figuras</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>número</single>
+         <multiple>números</multiple>
+      </term>
+      <term name="line">
+         <single>linha</single>
+         <multiple>linhas</multiple>
+      </term>
+      <term name="note">
+         <single>nota</single>
+         <multiple>notas</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>página</single>
+         <multiple>páginas</multiple>
+      </term>
+      <term name="paragraph">
+         <single>parágrafo</single>
+         <multiple>parágrafos</multiple>
+      </term>
+      <term name="part">
+         <single>parte</single>
+         <multiple>partes</multiple>
+      </term>
+      <term name="section">
+         <single>seção</single>
+         <multiple>seções</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verso</single>
+         <multiple>versos</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">liv</term>
+      <term name="chapter" form="short">cap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">n</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">seç</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>organizador</single>
+         <multiple>organizadores</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>tradutor</single>
+         <multiple>tradutores</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>org</single>
+         <multiple>orgs</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>trad</single>
+         <multiple>trads</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">organizado por</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">traduzido por</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">para</term>
+      <term name="interviewer" form="verb">intrevista de</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">org</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trad</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">janeiro</term>
+      <term name="month-02">fevereiro</term>
+      <term name="month-03">março</term>
+      <term name="month-04">abril</term>
+      <term name="month-05">maio</term>
+      <term name="month-06">junho</term>
+      <term name="month-07">julho</term>
+      <term name="month-08">agosto</term>
+      <term name="month-09">setembro</term>
+      <term name="month-10">outubro</term>
+      <term name="month-11">novembro</term>
+      <term name="month-12">dezembro</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">jan</term>
+      <term name="month-02" form="short">fev</term>
+      <term name="month-03" form="short">mar</term>
+      <term name="month-04" form="short">abr</term>
+      <term name="month-05" form="short">maio</term>
+      <term name="month-06" form="short">jun</term>
+      <term name="month-07" form="short">jul</term>
+      <term name="month-08" form="short">ago</term>
+      <term name="month-09" form="short">set</term>
+      <term name="month-10" form="short">out</term>
+      <term name="month-11" form="short">nov</term>
+      <term name="month-12" form="short">dez</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-pt-PT.xml b/locales/locales-pt-PT.xml
--- a/locales/locales-pt-PT.xml
+++ b/locales/locales-pt-PT.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="pt">
-    <term name="at">em</term>
-    <term name="in">em</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">acedido</term>
-    <term name="retrieved">obtido</term>
-    <term name="from">de</term>
-    <term name="forthcoming">a publicar</term>
-    <term name="references">Referências</term>
-    <term name="no date">sem data</term>
-    <term name="and">e</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">entrevista</term>
-    <term name="letter">carta</term>
-    <term name="anonymous">anónimo</term>
-    <term name="anonymous" form="short">anón</term>
-    <term name="and others">e outros</term>
-    <term name="in press">no prelo</term>
-    <term name="online">em linha</term>
-    <term name="cited">citado</term>
-    <term name="internet">internet</term>
-    <term name="presented at">apresentado na</term>
-    <term name="anthropology">antropologia</term>
-    <term name="astronomy">astronomia</term>
-    <term name="biology">biologia</term>
-    <term name="botany">botânica</term>
-    <term name="chemistry">química</term>
-    <term name="engineering">engenharia</term>
-    <term name="generic-base">base genérica</term>
-    <term name="geography">geografia</term>
-    <term name="geology">geologia</term>
-    <term name="history">história</term>
-    <term name="humanities">humanidades</term>
-    <term name="literature">literatura</term>
-    <term name="math">matemática</term>
-    <term name="medicine">medicina</term>
-    <term name="philosophy">filosofia</term>
-    <term name="physics">física</term>
-    <term name="psychology">psicologia</term>
-    <term name="sociology">sociologia</term>
-    <term name="science">ciência</term>
-    <term name="political_science">ciência política</term>
-    <term name="social_science">ciência social</term>
-    <term name="theology">teologia</term>
-    <term name="zoology">zoologia</term>
-    <term name="book">
-      <single>livro</single>
-      <multiple>livros</multiple>
-    </term>
-    <term name="chapter">
-      <single>capítulo</single>
-      <multiple>capítulos</multiple>
-    </term>
-    <term name="column">
-      <single>coluna</single>
-      <multiple>colunas</multiple>
-    </term>
-    <term name="figure">
-      <single>figura</single>
-      <multiple>figuras</multiple>
-    </term>
-    <term name="folio">
-      <single>fólio</single>
-      <multiple>fólios</multiple>
-    </term>
-    <term name="issue">
-      <single>número</single>
-      <multiple>número</multiple>
-    </term>
-    <term name="line">
-      <single>linha</single>
-      <multiple>linhas</multiple>
-    </term>
-    <term name="note">
-      <single>nota</single>
-      <multiple>notas</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>página</single>
-      <multiple>páginas</multiple>
-    </term>
-    <term name="paragraph">
-      <single>parágrafo</single>
-      <multiple>parágrafos</multiple>
-    </term>
-    <term name="part">
-      <single>parte</single>
-      <multiple>partes</multiple>
-    </term>
-    <term name="section">
-      <single>secção</single>
-      <multiple>secções</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edição</single>
-      <multiple>edições</multiple>
-    </term>
-    <term name="verse">
-      <single>versículo</single>
-      <multiple>versículos</multiple>
-    </term>
-    <term name="book" form="short">liv</term>
-    <term name="chapter" form="short">cap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">n</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">par</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editores</multiple>
-    </term>
-    <term name="translator">
-      <single>tradutor</single>
-      <multiple>tradutores</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>trad</single>
-      <multiple>trads</multiple>
-    </term>
-    <term name="editor" form="verb">editado por</term>
-    <term name="translator" form="verb">traduzido por</term>
-    <term name="recipient" form="verb">para</term>
-    <term name="interviewer" form="verb">entrevistado por</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trad</term>
-    <term name="month-01">Janeiro</term>
-    <term name="month-02">Fevereiro</term>
-    <term name="month-03">Março</term>
-    <term name="month-04">Abril</term>
-    <term name="month-05">Maio</term>
-    <term name="month-06">Junho</term>
-    <term name="month-07">Julho</term>
-    <term name="month-08">Agosto</term>
-    <term name="month-09">Setembro</term>
-    <term name="month-10">Outubro</term>
-    <term name="month-11">Novembro</term>
-    <term name="month-12">Dezembro</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Fev</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Abr</term>
-    <term name="month-05" form="short">Mai</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Ago</term>
-    <term name="month-09" form="short">Set</term>
-    <term name="month-10" form="short">Out</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dez</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="pt">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" de "/>
+      <date-part name="month" suffix=" de "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">acedido</term>
+      <term name="and">e</term>
+      <term name="and others">e outros</term>
+      <term name="anonymous">anónimo</term>
+      <term name="anonymous" form="short">anón</term>
+      <term name="at">em</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">citado</term>
+      <term name="edition">
+         <single>edição</single>
+         <multiple>edições</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">a publicar</term>
+      <term name="from">de</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">em</term>
+      <term name="in press">no prelo</term>
+      <term name="internet">internet</term>
+      <term name="interview">entrevista</term>
+      <term name="letter">carta</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">sem data</term>
+      <term name="online">em linha</term>
+      <term name="presented at">apresentado na</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">obtido</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologia</term>
+      <term name="astronomy">astronomia</term>
+      <term name="biology">biologia</term>
+      <term name="botany">botânica</term>
+      <term name="chemistry">química</term>
+      <term name="engineering">engenharia</term>
+      <term name="generic-base">base genérica</term>
+      <term name="geography">geografia</term>
+      <term name="geology">geologia</term>
+      <term name="history">história</term>
+      <term name="humanities">humanidades</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literatura</term>
+      <term name="math">matemática</term>
+      <term name="medicine">medicina</term>
+      <term name="philosophy">filosofia</term>
+      <term name="physics">física</term>
+      <term name="psychology">psicologia</term>
+      <term name="sociology">sociologia</term>
+      <term name="science">ciência</term>
+      <term name="political_science">ciência política</term>
+      <term name="social_science">ciência social</term>
+      <term name="theology">teologia</term>
+      <term name="zoology">zoologia</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>livro</single>
+         <multiple>livros</multiple>
+      </term>
+      <term name="chapter">
+         <single>capítulo</single>
+         <multiple>capítulos</multiple>
+      </term>
+      <term name="column">
+         <single>coluna</single>
+         <multiple>colunas</multiple>
+      </term>
+      <term name="figure">
+         <single>figura</single>
+         <multiple>figuras</multiple>
+      </term>
+      <term name="folio">
+         <single>fólio</single>
+         <multiple>fólios</multiple>
+      </term>
+      <term name="issue">
+         <single>número</single>
+         <multiple>número</multiple>
+      </term>
+      <term name="line">
+         <single>linha</single>
+         <multiple>linhas</multiple>
+      </term>
+      <term name="note">
+         <single>nota</single>
+         <multiple>notas</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>página</single>
+         <multiple>páginas</multiple>
+      </term>
+      <term name="paragraph">
+         <single>parágrafo</single>
+         <multiple>parágrafos</multiple>
+      </term>
+      <term name="part">
+         <single>parte</single>
+         <multiple>partes</multiple>
+      </term>
+      <term name="section">
+         <single>secção</single>
+         <multiple>secções</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>versículo</single>
+         <multiple>versículos</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">liv</term>
+      <term name="chapter" form="short">cap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">n</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">par</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editores</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>tradutor</single>
+         <multiple>tradutores</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>trad</single>
+         <multiple>trads</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">editado por</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">traduzido por</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">para</term>
+      <term name="interviewer" form="verb">entrevistado por</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trad</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Janeiro</term>
+      <term name="month-02">Fevereiro</term>
+      <term name="month-03">Março</term>
+      <term name="month-04">Abril</term>
+      <term name="month-05">Maio</term>
+      <term name="month-06">Junho</term>
+      <term name="month-07">Julho</term>
+      <term name="month-08">Agosto</term>
+      <term name="month-09">Setembro</term>
+      <term name="month-10">Outubro</term>
+      <term name="month-11">Novembro</term>
+      <term name="month-12">Dezembro</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Fev</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Abr</term>
+      <term name="month-05" form="short">Mai</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Ago</term>
+      <term name="month-09" form="short">Set</term>
+      <term name="month-10" form="short">Out</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dez</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-ro-RO.xml b/locales/locales-ro-RO.xml
--- a/locales/locales-ro-RO.xml
+++ b/locales/locales-ro-RO.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="ro">
-    <term name="at">la</term>
-    <term name="in">în</term>
-    <term name="ibid">ibidem</term>
-    <term name="accessed">accesat în</term>
-    <term name="retrieved">preluat în</term>
-    <term name="from">din</term>
-    <term name="forthcoming">în curs de apariţie</term>
-    <term name="references">Bibliografie</term>
-    <term name="no date">f.a.</term>
-    <term name="and">şi</term>
-    <term name="et-al">ş.a.</term>
-    <term name="interview">interviu</term>
-    <term name="letter">scrisoare</term>
-    <term name="anonymous">anonim</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">şi alţii</term>
-    <term name="in press">sub tipar</term>
-    <term name="online">online</term>
-    <term name="cited">citat</term>
-    <term name="internet">internet</term>
-    <term name="presented at">prezentat la</term>
-    <term name="anthropology">antropologie</term>
-    <term name="astronomy">astronomie</term>
-    <term name="biology">biologie</term>
-    <term name="botany">botanică</term>
-    <term name="chemistry">chimie</term>
-    <term name="engineering">inginerie</term>
-    <term name="generic-base">general (de bază)</term>
-    <term name="geography">geografie</term>
-    <term name="geology">geologie</term>
-    <term name="history">istorie</term>
-    <term name="humanities">umanioare</term>
-    <term name="literature">literatură</term>
-    <term name="math">matematică</term>
-    <term name="medicine">medicină</term>
-    <term name="philosophy">filosofie</term>
-    <term name="physics">fizică</term>
-    <term name="psychology">psihologie</term>
-    <term name="sociology">sociologie</term>
-    <term name="science">ştiinţă</term>
-    <term name="political_science">ştiinţe politice</term>
-    <term name="social_science">ştiinţe sociale</term>
-    <term name="theology">teologie</term>
-    <term name="zoology">zoologie</term>
-    <term name="book">
-      <single>cartea</single>
-      <multiple>cărţile</multiple>
-    </term>
-    <term name="chapter">
-      <single>capitolul</single>
-      <multiple>capitolele</multiple>
-    </term>
-    <term name="column">
-      <single>coloana</single>
-      <multiple>coloanele</multiple>
-    </term>
-    <term name="figure">
-      <single>figura</single>
-      <multiple>figurile</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folio</multiple>
-    </term>
-    <term name="issue">
-      <single>numărul</single>
-      <multiple>numerele</multiple>
-    </term>
-    <term name="line">
-      <single>linia</single>
-      <multiple>liniile</multiple>
-    </term>
-    <term name="note">
-      <single>nota</single>
-      <multiple>notele</multiple>
-    </term>
-    <term name="opus">
-      <single>opusul</single>
-      <multiple>opusurile</multiple>
-    </term>
-    <term name="page">
-      <single>pagina</single>
-      <multiple>paginile</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraful</single>
-      <multiple>paragrafele</multiple>
-    </term>
-    <term name="part">
-      <single>partea</single>
-      <multiple>părţile</multiple>
-    </term>
-    <term name="section">
-      <single>secţiunea</single>
-      <multiple>secţiunile</multiple>
-    </term>
-    <term name="volume">
-      <single>volumul</single>
-      <multiple>volumele</multiple>
-    </term>
-    <term name="edition">
-      <single>ediţia</single>
-      <multiple>ediţiile</multiple>
-    </term>
-    <term name="verse">
-      <single>versetul</single>
-      <multiple>versetele</multiple>
-    </term>
-    <term name="book" form="short">cart</term>
-    <term name="chapter" form="short">cap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">fol</term>
-    <term name="issue" form="short">nr</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">par</term>
-    <term name="part" form="short">part</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vol</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single>autor</single>
-      <multiple>autori</multiple>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editori</multiple>
-    </term>
-    <term name="translator">
-      <single>traducător</single>
-      <multiple>traducători</multiple>
-    </term>
-    <term name="author" form="short">
-      <single>aut</single>
-      <multiple>aut</multiple>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>ed</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>trad</single>
-      <multiple>trad</multiple>
-    </term>
-    <term name="editor" form="verb">ediţie de</term>
-    <term name="translator" form="verb">traducere de</term>
-    <term name="recipient" form="verb">în</term>
-    <term name="interviewer" form="verb">interviu de</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trad</term>
-    <term name="month-01">ianuarie</term>
-    <term name="month-02">februarie</term>
-    <term name="month-03">martie</term>
-    <term name="month-04">aprilie</term>
-    <term name="month-05">mai</term>
-    <term name="month-06">iunie</term>
-    <term name="month-07">iulie</term>
-    <term name="month-08">august</term>
-    <term name="month-09">septembrie</term>
-    <term name="month-10">octombrie</term>
-    <term name="month-11">noiembrie</term>
-    <term name="month-12">decembrie</term>
-    <term name="month-01" form="short">ian</term>
-    <term name="month-02" form="short">feb</term>
-    <term name="month-03" form="short">mar</term>
-    <term name="month-04" form="short">apr</term>
-    <term name="month-05" form="short">mai</term>
-    <term name="month-06" form="short">iun</term>
-    <term name="month-07" form="short">iul</term>
-    <term name="month-08" form="short">aug</term>
-    <term name="month-09" form="short">sep</term>
-    <term name="month-10" form="short">oct</term>
-    <term name="month-11" form="short">nov</term>
-    <term name="month-12" form="short">dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="ro">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" suffix="."/>
+      <date-part name="month"  form="numeric" suffix="."/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">accesat în</term>
+      <term name="and">şi</term>
+      <term name="and others">şi alţii</term>
+      <term name="anonymous">anonim</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">la</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">citat</term>
+      <term name="edition">
+         <single>ediţia</single>
+         <multiple>ediţiile</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">în curs de apariţie</term>
+      <term name="from">din</term>
+      <term name="ibid">ibidem</term>
+      <term name="in">în</term>
+      <term name="in press">sub tipar</term>
+      <term name="internet">internet</term>
+      <term name="interview">interviu</term>
+      <term name="letter">scrisoare</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">f.a.</term>
+      <term name="online">online</term>
+      <term name="presented at">prezentat la</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">preluat în</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologie</term>
+      <term name="astronomy">astronomie</term>
+      <term name="biology">biologie</term>
+      <term name="botany">botanică</term>
+      <term name="chemistry">chimie</term>
+      <term name="engineering">inginerie</term>
+      <term name="generic-base">general (de bază)</term>
+      <term name="geography">geografie</term>
+      <term name="geology">geologie</term>
+      <term name="history">istorie</term>
+      <term name="humanities">umanioare</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literatură</term>
+      <term name="math">matematică</term>
+      <term name="medicine">medicină</term>
+      <term name="philosophy">filosofie</term>
+      <term name="physics">fizică</term>
+      <term name="psychology">psihologie</term>
+      <term name="sociology">sociologie</term>
+      <term name="science">ştiinţă</term>
+      <term name="political_science">ştiinţe politice</term>
+      <term name="social_science">ştiinţe sociale</term>
+      <term name="theology">teologie</term>
+      <term name="zoology">zoologie</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>cartea</single>
+         <multiple>cărţile</multiple>
+      </term>
+      <term name="chapter">
+         <single>capitolul</single>
+         <multiple>capitolele</multiple>
+      </term>
+      <term name="column">
+         <single>coloana</single>
+         <multiple>coloanele</multiple>
+      </term>
+      <term name="figure">
+         <single>figura</single>
+         <multiple>figurile</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folio</multiple>
+      </term>
+      <term name="issue">
+         <single>numărul</single>
+         <multiple>numerele</multiple>
+      </term>
+      <term name="line">
+         <single>linia</single>
+         <multiple>liniile</multiple>
+      </term>
+      <term name="note">
+         <single>nota</single>
+         <multiple>notele</multiple>
+      </term>
+      <term name="opus">
+         <single>opusul</single>
+         <multiple>opusurile</multiple>
+      </term>
+      <term name="page">
+         <single>pagina</single>
+         <multiple>paginile</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraful</single>
+         <multiple>paragrafele</multiple>
+      </term>
+      <term name="part">
+         <single>partea</single>
+         <multiple>părţile</multiple>
+      </term>
+      <term name="section">
+         <single>secţiunea</single>
+         <multiple>secţiunile</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>versetul</single>
+         <multiple>versetele</multiple>
+      </term>
+      <term name="volume">
+         <single>volumul</single>
+         <multiple>volumele</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">cart</term>
+      <term name="chapter" form="short">cap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">fol</term>
+      <term name="issue" form="short">nr</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">par</term>
+      <term name="part" form="short">part</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vol</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single>autor</single>
+         <multiple>autori</multiple>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editori</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>traducător</single>
+         <multiple>traducători</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single>aut</single>
+         <multiple>aut</multiple>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>ed</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>trad</single>
+         <multiple>trad</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">ediţie de</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">traducere de</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">în</term>
+      <term name="interviewer" form="verb">interviu de</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trad</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">ianuarie</term>
+      <term name="month-02">februarie</term>
+      <term name="month-03">martie</term>
+      <term name="month-04">aprilie</term>
+      <term name="month-05">mai</term>
+      <term name="month-06">iunie</term>
+      <term name="month-07">iulie</term>
+      <term name="month-08">august</term>
+      <term name="month-09">septembrie</term>
+      <term name="month-10">octombrie</term>
+      <term name="month-11">noiembrie</term>
+      <term name="month-12">decembrie</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">ian</term>
+      <term name="month-02" form="short">feb</term>
+      <term name="month-03" form="short">mar</term>
+      <term name="month-04" form="short">apr</term>
+      <term name="month-05" form="short">mai</term>
+      <term name="month-06" form="short">iun</term>
+      <term name="month-07" form="short">iul</term>
+      <term name="month-08" form="short">aug</term>
+      <term name="month-09" form="short">sep</term>
+      <term name="month-10" form="short">oct</term>
+      <term name="month-11" form="short">nov</term>
+      <term name="month-12" form="short">dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-ru-RU.xml b/locales/locales-ru-RU.xml
--- a/locales/locales-ru-RU.xml
+++ b/locales/locales-ru-RU.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="ru">
-    <term name="at">at</term>
-    <term name="in">в</term>
-    <term name="ibid">так же</term>
-    <term name="accessed">вызвано</term>
-    <term name="retrieved">извлечено</term>
-    <term name="from">от</term>
-    <term name="forthcoming">грядущие</term>
-    <term name="references">Ссылки</term>
-    <term name="no date">нет даты</term>
-    <term name="and">и</term>
-    <term name="et-al">и др.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>линия</single>
-      <multiple>линии</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>страницы</single>
-      <multiple>страницы</multiple>
-    </term>
-    <term name="paragraph">
-      <single>параграф</single>
-      <multiple>параграфы</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">ном</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>стр-а</single>
-      <multiple>стр-ы</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>редактор</single>
-      <multiple>редакторы</multiple>
-    </term>
-    <term name="translator">
-      <single>переводчик</single>
-      <multiple>переводчики</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ред-р</single>
-      <multiple>ред-ры</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>перев-к</single>
-      <multiple>перев-и</multiple>
-    </term>
-    <term name="editor" form="verb">отредактировано</term>
-    <term name="translator" form="verb">переведено</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ред</term>
-    <term name="translator" form="verb-short">перев</term>
-    <term name="month-01">Январь</term>
-    <term name="month-02">Февраль</term>
-    <term name="month-03">Март</term>
-    <term name="month-04">Апрель</term>
-    <term name="month-05">Май</term>
-    <term name="month-06">Июнь</term>
-    <term name="month-07">Июль</term>
-    <term name="month-08">Август</term>
-    <term name="month-09">Сентябрь</term>
-    <term name="month-10">Октябрь</term>
-    <term name="month-11">Ноябрь</term>
-    <term name="month-12">Декабрь</term>
-    <term name="month-01" form="short">Янв</term>
-    <term name="month-02" form="short">Фев</term>
-    <term name="month-03" form="short">Мар</term>
-    <term name="month-04" form="short">Апр</term>
-    <term name="month-05" form="short">Май</term>
-    <term name="month-06" form="short">Июн</term>
-    <term name="month-07" form="short">Июл</term>
-    <term name="month-08" form="short">Авг</term>
-    <term name="month-09" form="short">Сен</term>
-    <term name="month-10" form="short">Окт</term>
-    <term name="month-11" form="short">Ноя</term>
-    <term name="month-12" form="short">Дек</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="ru">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year" suffix=" &#1075;."/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="."/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">вызвано</term>
+      <term name="and">и</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">и др.</term>
+      <term name="forthcoming">грядущие</term>
+      <term name="from">от</term>
+      <term name="ibid">так же</term>
+      <term name="in">в</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">нет даты</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">извлечено</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>линия</single>
+         <multiple>линии</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>страницы</single>
+         <multiple>страницы</multiple>
+      </term>
+      <term name="paragraph">
+         <single>параграф</single>
+         <multiple>параграфы</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">ном</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>стр-а</single>
+         <multiple>стр-ы</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>редактор</single>
+         <multiple>редакторы</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>переводчик</single>
+         <multiple>переводчики</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ред-р</single>
+         <multiple>ред-ры</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>перев-к</single>
+         <multiple>перев-и</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">отредактировано</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">переведено</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ред</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">перев</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Январь</term>
+      <term name="month-02">Февраль</term>
+      <term name="month-03">Март</term>
+      <term name="month-04">Апрель</term>
+      <term name="month-05">Май</term>
+      <term name="month-06">Июнь</term>
+      <term name="month-07">Июль</term>
+      <term name="month-08">Август</term>
+      <term name="month-09">Сентябрь</term>
+      <term name="month-10">Октябрь</term>
+      <term name="month-11">Ноябрь</term>
+      <term name="month-12">Декабрь</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Янв</term>
+      <term name="month-02" form="short">Фев</term>
+      <term name="month-03" form="short">Мар</term>
+      <term name="month-04" form="short">Апр</term>
+      <term name="month-05" form="short">Май</term>
+      <term name="month-06" form="short">Июн</term>
+      <term name="month-07" form="short">Июл</term>
+      <term name="month-08" form="short">Авг</term>
+      <term name="month-09" form="short">Сен</term>
+      <term name="month-10" form="short">Окт</term>
+      <term name="month-11" form="short">Ноя</term>
+      <term name="month-12" form="short">Дек</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-sk-SK.xml b/locales/locales-sk-SK.xml
--- a/locales/locales-sk-SK.xml
+++ b/locales/locales-sk-SK.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="sk">
-    <term name="at">v</term>
-    <term name="in">v</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">cit</term>
-    <term name="retrieved">cit</term>
-    <term name="from">z</term>
-    <term name="forthcoming">nadchádzajúci</term>
-    <term name="references">referencie</term>
-    <term name="no date">n.d.</term>
-    <term name="and">a</term>
-    <term name="et-al">et al</term>
-    <term name="interview">osobná komunikácia</term>
-    <term name="letter">list</term>
-    <term name="anonymous">anonymný</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and ďalší</term>
-    <term name="in press">v tlači</term>
-    <term name="online">online</term>
-    <term name="cited">cit</term>
-    <term name="internet">internet</term>
-    <term name="presented at">prezentované na</term>
-    <term name="anthropology">antropológia</term>
-    <term name="astronomy">astronómia</term>
-    <term name="biology">biológia</term>
-    <term name="botany">botanika</term>
-    <term name="chemistry">chémia</term>
-    <term name="engineering">strojárstvo/technika</term>
-    <term name="generic-base">všeobecný základ</term>
-    <term name="geography">geografia</term>
-    <term name="geology">geológia</term>
-    <term name="history">história</term>
-    <term name="humanities">humanitné vedy</term>
-    <term name="literature">literatúra</term>
-    <term name="math">matematika</term>
-    <term name="medicine">medicína</term>
-    <term name="philosophy">filozofia</term>
-    <term name="physics">fyzika</term>
-    <term name="psychology">psychológia</term>
-    <term name="sociology">sociológia</term>
-    <term name="science">veda</term>
-    <term name="political_science">politické vedy</term>
-    <term name="social_science">sociálne vedy</term>
-    <term name="theology">teológia</term>
-    <term name="zoology">zoológia</term>
-    <term name="book">
-      <single>kniha</single>
-      <multiple>knihy</multiple>
-    </term>
-    <term name="chapter">
-      <single>kapitola</single>
-      <multiple>kapitoly</multiple>
-    </term>
-    <term name="column">
-      <single>stĺpec</single>
-      <multiple>stĺpce</multiple>
-    </term>
-    <term name="figure">
-      <single>obrázok</single>
-      <multiple>obrázky</multiple>
-    </term>
-    <term name="folio">
-      <single>list</single>
-      <multiple>listy</multiple>
-    </term>
-    <term name="issue">
-      <single>číslo</single>
-      <multiple>čísla</multiple>
-    </term>
-    <term name="line">
-      <single>riadok</single>
-      <multiple>riadky</multiple>
-    </term>
-    <term name="note">
-      <single>poznámka</single>
-      <multiple>poznámky</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>strana</single>
-      <multiple>strany</multiple>
-    </term>
-    <term name="paragraph">
-      <single>odstavec</single>
-      <multiple>odstavce</multiple>
-    </term>
-    <term name="part">
-      <single>časť</single>
-      <multiple>časti</multiple>
-    </term>
-    <term name="section">
-      <single>sekcia</single>
-      <multiple>sekcie</multiple>
-    </term>
-    <term name="volume">
-      <single>ročník</single>
-      <multiple>ročníky</multiple>
-    </term>
-    <term name="edition">
-      <single>vydanie</single>
-      <multiple>vydania</multiple>
-    </term>
-    <term name="verse">
-      <single>verš</single>
-      <multiple>verše</multiple>
-    </term>
-    <term name="book" form="short">k</term>
-    <term name="chapter" form="short">kap</term>
-    <term name="column" form="short">stĺp</term>
-    <term name="figure" form="short">obr</term>
-    <term name="folio" form="short">l</term>
-    <term name="issue" form="short">č</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>s</single>
-      <multiple>s</multiple>
-    </term>
-    <term name="paragraph" form="short">par</term>
-    <term name="part" form="short">č</term>
-    <term name="section" form="short">sek</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>v</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>roč</single>
-      <multiple>roč</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">vyd</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editori</multiple>
-    </term>
-    <term name="translator">
-      <single>prekladateľ</single>
-      <multiple>prekladatelia</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>ed</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>prek</single>
-      <multiple>prek</multiple>
-    </term>
-    <term name="editor" form="verb">editoval</term>
-    <term name="translator" form="verb">preložil</term>
-    <term name="recipient" form="verb">adresát</term>
-    <term name="interviewer" form="verb">rozhovor urobil</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">prel</term>
-    <term name="month-01">január</term>
-    <term name="month-02">február</term>
-    <term name="month-03">marec</term>
-    <term name="month-04">apríl</term>
-    <term name="month-05">máj</term>
-    <term name="month-06">jún</term>
-    <term name="month-07">júl</term>
-    <term name="month-08">august</term>
-    <term name="month-09">september</term>
-    <term name="month-10">október</term>
-    <term name="month-11">november</term>
-    <term name="month-12">december</term>
-    <term name="month-01" form="short">jan</term>
-    <term name="month-02" form="short">feb</term>
-    <term name="month-03" form="short">mar</term>
-    <term name="month-04" form="short">apr</term>
-    <term name="month-05" form="short">máj</term>
-    <term name="month-06" form="short">jún</term>
-    <term name="month-07" form="short">júl</term>
-    <term name="month-08" form="short">aug</term>
-    <term name="month-09" form="short">sep</term>
-    <term name="month-10" form="short">okt</term>
-    <term name="month-11" form="short">nov</term>
-    <term name="month-12" form="short">dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="sk">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" form="numeric-leading-zeros" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" suffix="."/>
+      <date-part name="month" form="numeric" suffix="."/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">cit</term>
+      <term name="and">a</term>
+      <term name="and others">and ďalší</term>
+      <term name="anonymous">anonym</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">v</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cit</term>
+      <term name="edition">
+         <single>vydanie</single>
+         <multiple>vydania</multiple>
+      </term>
+      <term name="edition" form="short">vyd</term>
+      <term name="et-al">et al</term>
+      <term name="forthcoming">nadchádzajúci</term>
+      <term name="from">z</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">v</term>
+      <term name="in press">v tlači</term>
+      <term name="internet">internet</term>
+      <term name="interview">osobná komunikácia</term>
+      <term name="letter">list</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">n.d.</term>
+      <term name="online">online</term>
+      <term name="presented at">prezentované na</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">cit</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropológia</term>
+      <term name="astronomy">astronómia</term>
+      <term name="biology">biológia</term>
+      <term name="botany">botanika</term>
+      <term name="chemistry">chémia</term>
+      <term name="engineering">strojárstvo/technika</term>
+      <term name="generic-base">všeobecný základ</term>
+      <term name="geography">geografia</term>
+      <term name="geology">geológia</term>
+      <term name="history">história</term>
+      <term name="humanities">humanitné vedy</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literatúra</term>
+      <term name="math">matematika</term>
+      <term name="medicine">medicína</term>
+      <term name="philosophy">filozofia</term>
+      <term name="physics">fyzika</term>
+      <term name="psychology">psychológia</term>
+      <term name="sociology">sociológia</term>
+      <term name="science">veda</term>
+      <term name="political_science">politické vedy</term>
+      <term name="social_science">sociálne vedy</term>
+      <term name="theology">teológia</term>
+      <term name="zoology">zoológia</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>kniha</single>
+         <multiple>knihy</multiple>
+      </term>
+      <term name="chapter">
+         <single>kapitola</single>
+         <multiple>kapitoly</multiple>
+      </term>
+      <term name="column">
+         <single>stĺpec</single>
+         <multiple>stĺpce</multiple>
+      </term>
+      <term name="figure">
+         <single>obrázok</single>
+         <multiple>obrázky</multiple>
+      </term>
+      <term name="folio">
+         <single>list</single>
+         <multiple>listy</multiple>
+      </term>
+      <term name="issue">
+         <single>číslo</single>
+         <multiple>čísla</multiple>
+      </term>
+      <term name="line">
+         <single>riadok</single>
+         <multiple>riadky</multiple>
+      </term>
+      <term name="note">
+         <single>poznámka</single>
+         <multiple>poznámky</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>strana</single>
+         <multiple>strany</multiple>
+      </term>
+      <term name="paragraph">
+         <single>odstavec</single>
+         <multiple>odstavce</multiple>
+      </term>
+      <term name="part">
+         <single>časť</single>
+         <multiple>časti</multiple>
+      </term>
+      <term name="section">
+         <single>sekcia</single>
+         <multiple>sekcie</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verš</single>
+         <multiple>verše</multiple>
+      </term>
+      <term name="volume">
+         <single>ročník</single>
+         <multiple>ročníky</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">k</term>
+      <term name="chapter" form="short">kap</term>
+      <term name="column" form="short">stĺp</term>
+      <term name="figure" form="short">obr</term>
+      <term name="folio" form="short">l</term>
+      <term name="issue" form="short">č</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>s</single>
+         <multiple>s</multiple>
+      </term>
+      <term name="paragraph" form="short">par</term>
+      <term name="part" form="short">č</term>
+      <term name="section" form="short">sek</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>v</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>roč</single>
+         <multiple>roč</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editori</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>prekladateľ</single>
+         <multiple>prekladatelia</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>ed</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>prek</single>
+         <multiple>prek</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">editoval</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">preložil</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">adresát</term>
+      <term name="interviewer" form="verb">rozhovor urobil</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">prel</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">január</term>
+      <term name="month-02">február</term>
+      <term name="month-03">marec</term>
+      <term name="month-04">apríl</term>
+      <term name="month-05">máj</term>
+      <term name="month-06">jún</term>
+      <term name="month-07">júl</term>
+      <term name="month-08">august</term>
+      <term name="month-09">september</term>
+      <term name="month-10">október</term>
+      <term name="month-11">november</term>
+      <term name="month-12">december</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">jan</term>
+      <term name="month-02" form="short">feb</term>
+      <term name="month-03" form="short">mar</term>
+      <term name="month-04" form="short">apr</term>
+      <term name="month-05" form="short">máj</term>
+      <term name="month-06" form="short">jún</term>
+      <term name="month-07" form="short">júl</term>
+      <term name="month-08" form="short">aug</term>
+      <term name="month-09" form="short">sep</term>
+      <term name="month-10" form="short">okt</term>
+      <term name="month-11" form="short">nov</term>
+      <term name="month-12" form="short">dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-sl-SI.xml b/locales/locales-sl-SI.xml
--- a/locales/locales-sl-SI.xml
+++ b/locales/locales-sl-SI.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="sl">
-    <term name="at">pri</term>
-    <term name="in">v</term>
-    <term name="ibid">isto</term>
-    <term name="accessed">dostopano</term>
-    <term name="retrieved">pridobljeno</term>
-    <term name="from">od</term>
-    <term name="forthcoming">pred izidom</term>
-    <term name="references">sklici</term>
-    <term name="no date">b.d.</term>
-    <term name="and">in</term>
-    <term name="et-al">idr.</term>
-    <term name="interview">intervju</term>
-    <term name="letter">pismo</term>
-    <term name="anonymous">anonimni</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">in drugi</term>
-    <term name="in press">v tisku</term>
-    <term name="online">na spletu</term>
-    <term name="cited">citirano</term>
-    <term name="internet">internet</term>
-    <term name="presented at">predstavljeno na</term>
-    <term name="anthropology">antropologija</term>
-    <term name="astronomy">astronomija</term>
-    <term name="biology">biologija</term>
-    <term name="botany">botanika</term>
-    <term name="chemistry">kemija</term>
-    <term name="engineering">strojništvo</term>
-    <term name="generic-base">splošno</term>
-    <term name="geography">geografija</term>
-    <term name="geology">geologija</term>
-    <term name="history">zgodovina</term>
-    <term name="humanities">humanistika</term>
-    <term name="literature">literatura</term>
-    <term name="math">matematika</term>
-    <term name="medicine">medicina</term>
-    <term name="philosophy">filozofija</term>
-    <term name="physics">fizika</term>
-    <term name="psychology">psihologija</term>
-    <term name="sociology">sociologija</term>
-    <term name="science">znanost</term>
-    <term name="political_science">politologija</term>
-    <term name="social_science">družbene vede</term>
-    <term name="theology">teologija</term>
-    <term name="zoology">zoologija</term>
-    <term name="book">
-      <single>knjiga</single>
-      <multiple>knjige</multiple>
-    </term>
-    <term name="chapter">
-      <single>poglavje</single>
-      <multiple>poglavja</multiple>
-    </term>
-    <term name="column">
-      <single>stolpec</single>
-      <multiple>stolpci</multiple>
-    </term>
-    <term name="figure">
-      <single>slika</single>
-      <multiple>slike</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folii</multiple>
-    </term>
-    <term name="issue">
-      <single>številka</single>
-      <multiple>številke</multiple>
-    </term>
-    <term name="line">
-      <single>vrstica</single>
-      <multiple>vrstice</multiple>
-    </term>
-    <term name="note">
-      <single>opomba</single>
-      <multiple>opombe</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>stran</single>
-      <multiple>strani</multiple>
-    </term>
-    <term name="paragraph">
-      <single>odstavek</single>
-      <multiple>odstavki</multiple>
-    </term>
-    <term name="part">
-      <single>del</single>
-      <multiple>deli</multiple>
-    </term>
-    <term name="section">
-      <single>odsek</single>
-      <multiple>odseki</multiple>
-    </term>
-    <term name="volume">
-      <single>letnik</single>
-      <multiple>letniki</multiple>
-    </term>
-    <term name="edition">
-      <single>izdaja</single>
-      <multiple>izdaje</multiple>
-    </term>
-    <term name="verse">
-      <single>verz</single>
-      <multiple>verzi</multiple>
-    </term>
-    <term name="book" form="short">knj</term>
-    <term name="chapter" form="short">pogl</term>
-    <term name="column" form="short">sto</term>
-    <term name="figure" form="short">sl</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">št</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>str</single>
-      <multiple>str</multiple>
-    </term>
-    <term name="paragraph" form="short">odst</term>
-    <term name="part" form="short">del</term>
-    <term name="section" form="short">odsk</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>v</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>let</single>
-      <multiple>let</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">iz</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>urednik</single>
-      <multiple>uredniki</multiple>
-    </term>
-    <term name="translator">
-      <single>prevajalec</single>
-      <multiple>prevajalci</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ur</single>
-      <multiple>ur</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>prev</single>
-      <multiple>prev</multiple>
-    </term>
-    <term name="editor" form="verb">uredil</term>
-    <term name="translator" form="verb">prevedel</term>
-    <term name="recipient" form="verb">za</term>
-    <term name="interviewer" form="verb">intervjuval</term>
-    <term name="editor" form="verb-short">ur</term>
-    <term name="translator" form="verb-short">prev</term>
-    <term name="month-01">januar</term>
-    <term name="month-02">februar</term>
-    <term name="month-03">marec</term>
-    <term name="month-04">april</term>
-    <term name="month-05">maj</term>
-    <term name="month-06">junij</term>
-    <term name="month-07">julij</term>
-    <term name="month-08">avgust</term>
-    <term name="month-09">september</term>
-    <term name="month-10">oktober</term>
-    <term name="month-11">november</term>
-    <term name="month-12">december</term>
-    <term name="month-01" form="short">jan</term>
-    <term name="month-02" form="short">feb</term>
-    <term name="month-03" form="short">mar</term>
-    <term name="month-04" form="short">apr</term>
-    <term name="month-05" form="short">maj</term>
-    <term name="month-06" form="short">jun</term>
-    <term name="month-07" form="short">jul</term>
-    <term name="month-08" form="short">avg</term>
-    <term name="month-09" form="short">sep</term>
-    <term name="month-10" form="short">okt</term>
-    <term name="month-11" form="short">nov</term>
-    <term name="month-12" form="short">dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="sl">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" form="numeric-leading-zeros" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year" suffix="."/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+   </date>
+   <terms>
+      <term name="accessed">dostopano</term>
+      <term name="and">in</term>
+      <term name="and others">in drugi</term>
+      <term name="anonymous">anonimni</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">pri</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">citirano</term>
+      <term name="edition">
+         <single>izdaja</single>
+         <multiple>izdaje</multiple>
+      </term>
+      <term name="edition" form="short">iz</term>
+      <term name="et-al">idr.</term>
+      <term name="forthcoming">pred izidom</term>
+      <term name="from">od</term>
+      <term name="ibid">isto</term>
+      <term name="in">v</term>
+      <term name="in press">v tisku</term>
+      <term name="internet">internet</term>
+      <term name="interview">intervju</term>
+      <term name="letter">pismo</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">b.d.</term>
+      <term name="online">na spletu</term>
+      <term name="presented at">predstavljeno na</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">pridobljeno</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologija</term>
+      <term name="astronomy">astronomija</term>
+      <term name="biology">biologija</term>
+      <term name="botany">botanika</term>
+      <term name="chemistry">kemija</term>
+      <term name="engineering">strojništvo</term>
+      <term name="generic-base">splošno</term>
+      <term name="geography">geografija</term>
+      <term name="geology">geologija</term>
+      <term name="history">zgodovina</term>
+      <term name="humanities">humanistika</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literatura</term>
+      <term name="math">matematika</term>
+      <term name="medicine">medicina</term>
+      <term name="philosophy">filozofija</term>
+      <term name="physics">fizika</term>
+      <term name="psychology">psihologija</term>
+      <term name="sociology">sociologija</term>
+      <term name="science">znanost</term>
+      <term name="political_science">politologija</term>
+      <term name="social_science">družbene vede</term>
+      <term name="theology">teologija</term>
+      <term name="zoology">zoologija</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>knjiga</single>
+         <multiple>knjige</multiple>
+      </term>
+      <term name="chapter">
+         <single>poglavje</single>
+         <multiple>poglavja</multiple>
+      </term>
+      <term name="column">
+         <single>stolpec</single>
+         <multiple>stolpci</multiple>
+      </term>
+      <term name="figure">
+         <single>slika</single>
+         <multiple>slike</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folii</multiple>
+      </term>
+      <term name="issue">
+         <single>številka</single>
+         <multiple>številke</multiple>
+      </term>
+      <term name="line">
+         <single>vrstica</single>
+         <multiple>vrstice</multiple>
+      </term>
+      <term name="note">
+         <single>opomba</single>
+         <multiple>opombe</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>stran</single>
+         <multiple>strani</multiple>
+      </term>
+      <term name="paragraph">
+         <single>odstavek</single>
+         <multiple>odstavki</multiple>
+      </term>
+      <term name="part">
+         <single>del</single>
+         <multiple>deli</multiple>
+      </term>
+      <term name="section">
+         <single>odsek</single>
+         <multiple>odseki</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verz</single>
+         <multiple>verzi</multiple>
+      </term>
+      <term name="volume">
+         <single>letnik</single>
+         <multiple>letniki</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">knj</term>
+      <term name="chapter" form="short">pogl</term>
+      <term name="column" form="short">sto</term>
+      <term name="figure" form="short">sl</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">št</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>str</single>
+         <multiple>str</multiple>
+      </term>
+      <term name="paragraph" form="short">odst</term>
+      <term name="part" form="short">del</term>
+      <term name="section" form="short">odsk</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>v</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>let</single>
+         <multiple>let</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>urednik</single>
+         <multiple>uredniki</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>prevajalec</single>
+         <multiple>prevajalci</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ur</single>
+         <multiple>ur</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>prev</single>
+         <multiple>prev</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">uredil</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">prevedel</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">za</term>
+      <term name="interviewer" form="verb">intervjuval</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ur</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">prev</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">januar</term>
+      <term name="month-02">februar</term>
+      <term name="month-03">marec</term>
+      <term name="month-04">april</term>
+      <term name="month-05">maj</term>
+      <term name="month-06">junij</term>
+      <term name="month-07">julij</term>
+      <term name="month-08">avgust</term>
+      <term name="month-09">september</term>
+      <term name="month-10">oktober</term>
+      <term name="month-11">november</term>
+      <term name="month-12">december</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">jan</term>
+      <term name="month-02" form="short">feb</term>
+      <term name="month-03" form="short">mar</term>
+      <term name="month-04" form="short">apr</term>
+      <term name="month-05" form="short">maj</term>
+      <term name="month-06" form="short">jun</term>
+      <term name="month-07" form="short">jul</term>
+      <term name="month-08" form="short">avg</term>
+      <term name="month-09" form="short">sep</term>
+      <term name="month-10" form="short">okt</term>
+      <term name="month-11" form="short">nov</term>
+      <term name="month-12" form="short">dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-sr-RS.xml b/locales/locales-sr-RS.xml
--- a/locales/locales-sr-RS.xml
+++ b/locales/locales-sr-RS.xml
@@ -1,207 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="sr">
-    <term name="at">на</term>
-    <term name="in">у</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">приступљено</term>
-    <term name="retrieved">преузето</term>
-    <term name="from">од</term>
-    <term name="forthcoming">долазећи</term>
-    <term name="references">референце</term>
-    <term name="no date">без датума</term>
-    <term name="and">и</term>
-    <term name="et-al">и остали</term>
-    <term name="interview">интервју</term>
-    <term name="letter">писмо</term>
-    <term name="anonymous">анонимна</term>
-    <term name="anonymous" form="short">анон.</term>
-    <term name="and others">и остали</term>
-    <term name="in press">у штампи</term>
-    <term name="online">на Интернету</term>
-    <term name="cited">цитирано</term>
-    <term name="internet">Интернет</term>
-    <term name="presented at">представљено на</term>
-    <term name="anthropology">антропологија</term>
-    <term name="astronomy">астрономија</term>
-    <term name="biology">биологија</term>
-    <term name="botany">ботаника</term>
-    <term name="chemistry">хемија</term>
-    <term name="engineering">инжињерство</term>
-    <term name="generic-base">уопштена основа</term>
-    <term name="geography">географија</term>
-    <term name="geology">геологија</term>
-    <term name="history">историја</term>
-    <term name="humanities">култура и уметност</term>
-    <term name="literature">литература</term>
-    <term name="math">математика</term>
-    <term name="medicine">медицина</term>
-    <term name="philosophy">филозофија</term>
-    <term name="physics">физика</term>
-    <term name="psychology">психологија</term>
-    <term name="sociology">социологија</term>
-    <term name="science">наука</term>
-    <term name="political_science">политичка наука</term>
-    <term name="social_science">друштвена наука</term>
-    <term name="theology">теологија</term>
-    <term name="zoology">зоологија</term>
-    <term name="book">
-      <single>књига</single>
-      <multiple>књиге</multiple>
-    </term>
-    <term name="chapter">
-      <single>поглавље</single>
-      <multiple>поглавља</multiple>
-    </term>
-    <term name="column">
-      <single>колона</single>
-      <multiple>колоне</multiple>
-    </term>
-    <term name="figure">
-      <single>цртеж</single>
-      <multiple>цртежи</multiple>
-    </term>
-    <term name="folio">
-      <single>фолио</single>
-      <multiple>фолији</multiple>
-    </term>
-    <term name="issue">
-      <single>број</single>
-      <multiple>бројеви</multiple>
-    </term>
-    <term name="line">
-      <single>линија</single>
-      <multiple>линије</multiple>
-    </term>
-    <term name="note">
-      <single>белешка</single>
-      <multiple>белешке</multiple>
-    </term>
-    <term name="opus">
-      <single>опус</single>
-      <multiple>опера</multiple>
-    </term>
-    <term name="page">
-      <single>страница</single>
-      <multiple>странице</multiple>
-    </term>
-    <term name="paragraph">
-      <single>параграф</single>
-      <multiple>параграфи</multiple>
-    </term>
-    <term name="part">
-      <single>део</single>
-      <multiple>делова</multiple>
-    </term>
-    <term name="section">
-      <single>одељак</single>
-      <multiple>одељака</multiple>
-    </term>
-    <term name="volume">
-      <single>том</single>
-      <multiple>томова</multiple>
-    </term>
-    <term name="edition">
-      <single>издање</single>
-      <multiple>издања</multiple>
-    </term>
-    <term name="verse">
-      <single>строфа</single>
-      <multiple>строфе</multiple>
-    </term>
-    <term name="sub verbo">
-      <single>sub verbo</single>
-      <multiple>s.vv</multiple>
-    </term>
-    <term name="book" form="short">књига</term>
-    <term name="chapter" form="short">Пог.</term>
-    <term name="column" form="short">кол.</term>
-    <term name="figure" form="short">црт.</term>
-    <term name="folio" form="short">фолио</term>
-    <term name="issue" form="short">изд.</term>
-    <term name="opus" form="short">оп.</term>
-    <term name="page" form="short">
-      <single>стр.</single>
-      <multiple>стр.</multiple>
-    </term>
-    <term name="paragraph" form="short">пар.</term>
-    <term name="part" form="short">део</term>
-    <term name="section" form="short">од.</term>
-    <term name="sub verbo" form="short">
-      <single>s.v</single>
-      <multiple>s.vv</multiple>
-    </term>
-    <term name="verse" form="short">
-      <single>стр.</single>
-      <multiple>стр.</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>том</single>
-      <multiple>томови</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">изд.</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>уредник</single>
-      <multiple>урединици</multiple>
-    </term>
-    <term name="translator">
-      <single>преводилац</single>
-      <multiple>преводиоци</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ур.</single>
-      <multiple>ур.</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>прев.</single>
-      <multiple>прев.</multiple>
-    </term>
-    <term name="editor" form="verb">уредио</term>
-    <term name="translator" form="verb">превео</term>
-    <term name="recipient" form="verb">прима</term>
-    <term name="interviewer" form="verb">интервјуисао</term>
-    <term name="editor" form="verb-short">ур.</term>
-    <term name="translator" form="verb-short">прев.</term>
-    <term name="month-01">Јануар</term>
-    <term name="month-02">Фебруар</term>
-    <term name="month-03">Март</term>
-    <term name="month-04">Април</term>
-    <term name="month-05">Мај</term>
-    <term name="month-06">Јуни</term>
-    <term name="month-07">Јули</term>
-    <term name="month-08">Август</term>
-    <term name="month-09">Септембар</term>
-    <term name="month-10">Октобар</term>
-    <term name="month-11">Новембар</term>
-    <term name="month-12">Децембар</term>
-    <term name="month-01" form="short">Јан.</term>
-    <term name="month-02" form="short">Феб.</term>
-    <term name="month-03" form="short">Март</term>
-    <term name="month-04" form="short">Апр.</term>
-    <term name="month-05" form="short">Мај</term>
-    <term name="month-06" form="short">Јуни</term>
-    <term name="month-07" form="short">Јули</term>
-    <term name="month-08" form="short">Авг.</term>
-    <term name="month-09" form="short">Сеп.</term>
-    <term name="month-10" form="short">Окт.</term>
-    <term name="month-11" form="short">Нов.</term>
-    <term name="month-12" form="short">Дец.</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="sr">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" form="numeric-leading-zeros" suffix=". "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year" suffix="."/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+   </date>
+   <terms>
+      <term name="accessed">приступљено</term>
+      <term name="and">и</term>
+      <term name="and others">и остали</term>
+      <term name="anonymous">анонимна</term>
+      <term name="anonymous" form="short">анон.</term>
+      <term name="at">на</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">цитирано</term>
+      <term name="edition">
+         <single>издање</single>
+         <multiple>издања</multiple>
+      </term>
+      <term name="edition" form="short">изд.</term>
+      <term name="et-al">и остали</term>
+      <term name="forthcoming">долазећи</term>
+      <term name="from">од</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">у</term>
+      <term name="in press">у штампи</term>
+      <term name="internet">Интернет</term>
+      <term name="interview">интервју</term>
+      <term name="letter">писмо</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">без датума</term>
+      <term name="online">на Интернету</term>
+      <term name="presented at">представљено на</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">преузето</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">антропологија</term>
+      <term name="astronomy">астрономија</term>
+      <term name="biology">биологија</term>
+      <term name="botany">ботаника</term>
+      <term name="chemistry">хемија</term>
+      <term name="engineering">инжињерство</term>
+      <term name="generic-base">уопштена основа</term>
+      <term name="geography">географија</term>
+      <term name="geology">геологија</term>
+      <term name="history">историја</term>
+      <term name="humanities">култура и уметност</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">литература</term>
+      <term name="math">математика</term>
+      <term name="medicine">медицина</term>
+      <term name="philosophy">филозофија</term>
+      <term name="physics">физика</term>
+      <term name="psychology">психологија</term>
+      <term name="sociology">социологија</term>
+      <term name="science">наука</term>
+      <term name="political_science">политичка наука</term>
+      <term name="social_science">друштвена наука</term>
+      <term name="theology">теологија</term>
+      <term name="zoology">зоологија</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>књига</single>
+         <multiple>књиге</multiple>
+      </term>
+      <term name="chapter">
+         <single>поглавље</single>
+         <multiple>поглавља</multiple>
+      </term>
+      <term name="column">
+         <single>колона</single>
+         <multiple>колоне</multiple>
+      </term>
+      <term name="figure">
+         <single>цртеж</single>
+         <multiple>цртежи</multiple>
+      </term>
+      <term name="folio">
+         <single>фолио</single>
+         <multiple>фолији</multiple>
+      </term>
+      <term name="issue">
+         <single>број</single>
+         <multiple>бројеви</multiple>
+      </term>
+      <term name="line">
+         <single>линија</single>
+         <multiple>линије</multiple>
+      </term>
+      <term name="note">
+         <single>белешка</single>
+         <multiple>белешке</multiple>
+      </term>
+      <term name="opus">
+         <single>опус</single>
+         <multiple>опера</multiple>
+      </term>
+      <term name="page">
+         <single>страница</single>
+         <multiple>странице</multiple>
+      </term>
+      <term name="paragraph">
+         <single>параграф</single>
+         <multiple>параграфи</multiple>
+      </term>
+      <term name="part">
+         <single>део</single>
+         <multiple>делова</multiple>
+      </term>
+      <term name="section">
+         <single>одељак</single>
+         <multiple>одељака</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>строфа</single>
+         <multiple>строфе</multiple>
+      </term>
+      <term name="volume">
+         <single>том</single>
+         <multiple>томова</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">књига</term>
+      <term name="chapter" form="short">Пог.</term>
+      <term name="column" form="short">кол.</term>
+      <term name="figure" form="short">црт.</term>
+      <term name="folio" form="short">фолио</term>
+      <term name="issue" form="short">изд.</term>
+      <term name="opus" form="short">оп.</term>
+      <term name="page" form="short">
+         <single>стр.</single>
+         <multiple>стр.</multiple>
+      </term>
+      <term name="paragraph" form="short">пар.</term>
+      <term name="part" form="short">део</term>
+      <term name="section" form="short">од.</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>стр.</single>
+         <multiple>стр.</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>том</single>
+         <multiple>томови</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>уредник</single>
+         <multiple>урединици</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>преводилац</single>
+         <multiple>преводиоци</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ур.</single>
+         <multiple>ур.</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>прев.</single>
+         <multiple>прев.</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">уредио</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">превео</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">прима</term>
+      <term name="interviewer" form="verb">интервјуисао</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ур.</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">прев.</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Јануар</term>
+      <term name="month-02">Фебруар</term>
+      <term name="month-03">Март</term>
+      <term name="month-04">Април</term>
+      <term name="month-05">Мај</term>
+      <term name="month-06">Јуни</term>
+      <term name="month-07">Јули</term>
+      <term name="month-08">Август</term>
+      <term name="month-09">Септембар</term>
+      <term name="month-10">Октобар</term>
+      <term name="month-11">Новембар</term>
+      <term name="month-12">Децембар</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Јан.</term>
+      <term name="month-02" form="short">Феб.</term>
+      <term name="month-03" form="short">Март</term>
+      <term name="month-04" form="short">Апр.</term>
+      <term name="month-05" form="short">Мај</term>
+      <term name="month-06" form="short">Јуни</term>
+      <term name="month-07" form="short">Јули</term>
+      <term name="month-08" form="short">Авг.</term>
+      <term name="month-09" form="short">Сеп.</term>
+      <term name="month-10" form="short">Окт.</term>
+      <term name="month-11" form="short">Нов.</term>
+      <term name="month-12" form="short">Дец.</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-sv-SE.xml b/locales/locales-sv-SE.xml
--- a/locales/locales-sv-SE.xml
+++ b/locales/locales-sv-SE.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="sv">
-    <term name="at">vid</term>
-    <term name="in">i</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">åtkomstdatum</term>
-    <term name="retrieved">hämtad</term>
-    <term name="from">från</term>
-    <term name="forthcoming">kommande</term>
-    <term name="references">Referenser</term>
-    <term name="no date">nd</term>
-    <term name="and">och</term>
-    <term name="et-al">m.fl.</term>
-    <term name="interview">intervju</term>
-    <term name="letter">brev</term>
-    <term name="anonymous">anonym</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">och andra</term>
-    <term name="in press">i tryck</term>
-    <term name="online">online</term>
-    <term name="cited">citerad</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presenterad vid</term>
-    <term name="anthropology">antropologi</term>
-    <term name="astronomy">astronomi</term>
-    <term name="biology">biologi</term>
-    <term name="botany">botanik</term>
-    <term name="chemistry">kemi</term>
-    <term name="engineering">teknik</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geografi</term>
-    <term name="geology">geologi</term>
-    <term name="history">historia</term>
-    <term name="humanities">humaniora</term>
-    <term name="literature">litteraturvetenskap</term>
-    <term name="math">matematik</term>
-    <term name="medicine">medicin</term>
-    <term name="philosophy">filosofi</term>
-    <term name="physics">fysik</term>
-    <term name="psychology">psykologi</term>
-    <term name="sociology">sociologi</term>
-    <term name="science">vetenskap</term>
-    <term name="political_science">statsvetenskap</term>
-    <term name="social_science">samhällsvetenskap</term>
-    <term name="theology">teologi</term>
-    <term name="zoology">zoologi</term>
-    <term name="book">
-      <single>bok</single>
-      <multiple>böcker</multiple>
-    </term>
-    <term name="chapter">
-      <single>kapitel</single>
-      <multiple>kapitel</multiple>
-    </term>
-    <term name="column">
-      <single>kolumn</single>
-      <multiple>kolumner</multiple>
-    </term>
-    <term name="figure">
-      <single>figur</single>
-      <multiple>figurer</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>nummer</single>
-      <multiple>nummer</multiple>
-    </term>
-    <term name="line">
-      <single>rad</single>
-      <multiple>rader</multiple>
-    </term>
-    <term name="note">
-      <single>not</single>
-      <multiple>noter</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>sida</single>
-      <multiple>sidor</multiple>
-    </term>
-    <term name="paragraph">
-      <single>stycke</single>
-      <multiple>stycken</multiple>
-    </term>
-    <term name="part">
-      <single>dek</single>
-      <multiple>delar</multiple>
-    </term>
-    <term name="section">
-      <single>avnitt</single>
-      <multiple>avsnitt</multiple>
-    </term>
-    <term name="volume">
-      <single>volym</single>
-      <multiple>volumer</multiple>
-    </term>
-    <term name="edition">
-      <single>upplaga</single>
-      <multiple>upplagor</multiple>
-    </term>
-    <term name="verse">
-      <single>vers</single>
-      <multiple>verser</multiple>
-    </term>
-    <term name="book" form="short">bok</term>
-    <term name="chapter" form="short">kap</term>
-    <term name="column" form="short">kol</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">num</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>s</single>
-      <multiple>ss</multiple>
-    </term>
-    <term name="paragraph" form="short">st</term>
-    <term name="part" form="short">del</term>
-    <term name="section" form="short">avs</term>
-    <term name="verse" form="short">
-      <single>vers</single>
-      <multiple>verser</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">uppl</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>redaktör</single>
-      <multiple>redaktörer</multiple>
-    </term>
-    <term name="translator">
-      <single>översättare</single>
-      <multiple>översättare</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>red</single>
-      <multiple>reds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>övers</single>
-      <multiple>övers</multiple>
-    </term>
-    <term name="editor" form="verb">redigerad av</term>
-    <term name="translator" form="verb">översatt av</term>
-    <term name="recipient" form="verb">till</term>
-    <term name="interviewer" form="verb">intervju av</term>
-    <term name="editor" form="verb-short">red</term>
-    <term name="translator" form="verb-short">övers</term>
-    <term name="month-01">Januari</term>
-    <term name="month-02">Februari</term>
-    <term name="month-03">Mars</term>
-    <term name="month-04">April</term>
-    <term name="month-05">Maj</term>
-    <term name="month-06">Juni</term>
-    <term name="month-07">Juli</term>
-    <term name="month-08">Augusti</term>
-    <term name="month-09">September</term>
-    <term name="month-10">Oktober</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">Maj</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Okt</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="sv">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" form="numeric-leading-zeros" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="-" range-delimiter="/"/>
+   </date>
+   <terms>
+      <term name="accessed">åtkomstdatum</term>
+      <term name="and">och</term>
+      <term name="and others">och andra</term>
+      <term name="anonymous">anonym</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">vid</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">citerad</term>
+      <term name="edition">
+         <single>upplaga</single>
+         <multiple>upplagor</multiple>
+      </term>
+      <term name="edition" form="short">uppl</term>
+      <term name="et-al">m.fl.</term>
+      <term name="forthcoming">kommande</term>
+      <term name="from">från</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">i</term>
+      <term name="in press">i tryck</term>
+      <term name="internet">internet</term>
+      <term name="interview">intervju</term>
+      <term name="letter">brev</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">nd</term>
+      <term name="online">online</term>
+      <term name="presented at">presenterad vid</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">hämtad</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropologi</term>
+      <term name="astronomy">astronomi</term>
+      <term name="biology">biologi</term>
+      <term name="botany">botanik</term>
+      <term name="chemistry">kemi</term>
+      <term name="engineering">teknik</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geografi</term>
+      <term name="geology">geologi</term>
+      <term name="history">historia</term>
+      <term name="humanities">humaniora</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">litteraturvetenskap</term>
+      <term name="math">matematik</term>
+      <term name="medicine">medicin</term>
+      <term name="philosophy">filosofi</term>
+      <term name="physics">fysik</term>
+      <term name="psychology">psykologi</term>
+      <term name="sociology">sociologi</term>
+      <term name="science">vetenskap</term>
+      <term name="political_science">statsvetenskap</term>
+      <term name="social_science">samhällsvetenskap</term>
+      <term name="theology">teologi</term>
+      <term name="zoology">zoologi</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>bok</single>
+         <multiple>böcker</multiple>
+      </term>
+      <term name="chapter">
+         <single>kapitel</single>
+         <multiple>kapitel</multiple>
+      </term>
+      <term name="column">
+         <single>kolumn</single>
+         <multiple>kolumner</multiple>
+      </term>
+      <term name="figure">
+         <single>figur</single>
+         <multiple>figurer</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>nummer</single>
+         <multiple>nummer</multiple>
+      </term>
+      <term name="line">
+         <single>rad</single>
+         <multiple>rader</multiple>
+      </term>
+      <term name="note">
+         <single>not</single>
+         <multiple>noter</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>sida</single>
+         <multiple>sidor</multiple>
+      </term>
+      <term name="paragraph">
+         <single>stycke</single>
+         <multiple>stycken</multiple>
+      </term>
+      <term name="part">
+         <single>dek</single>
+         <multiple>delar</multiple>
+      </term>
+      <term name="section">
+         <single>avsnitt</single>
+         <multiple>avsnitt</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>vers</single>
+         <multiple>verser</multiple>
+      </term>
+      <term name="volume">
+         <single>volym</single>
+         <multiple>volumer</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bok</term>
+      <term name="chapter" form="short">kap</term>
+      <term name="column" form="short">kol</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">num</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>s</single>
+         <multiple>ss</multiple>
+      </term>
+      <term name="paragraph" form="short">st</term>
+      <term name="part" form="short">del</term>
+      <term name="section" form="short">avs</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>vers</single>
+         <multiple>verser</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>redaktör</single>
+         <multiple>redaktörer</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>översättare</single>
+         <multiple>översättare</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>red</single>
+         <multiple>reds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>övers</single>
+         <multiple>övers</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">redigerad av</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">översatt av</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">till</term>
+      <term name="interviewer" form="verb">intervju av</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">red</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">övers</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Januari</term>
+      <term name="month-02">Februari</term>
+      <term name="month-03">Mars</term>
+      <term name="month-04">April</term>
+      <term name="month-05">Maj</term>
+      <term name="month-06">Juni</term>
+      <term name="month-07">Juli</term>
+      <term name="month-08">Augusti</term>
+      <term name="month-09">September</term>
+      <term name="month-10">Oktober</term>
+      <term name="month-11">November</term>
+      <term name="month-12">December</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">Maj</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Okt</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-th-TH.xml b/locales/locales-th-TH.xml
--- a/locales/locales-th-TH.xml
+++ b/locales/locales-th-TH.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="th">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">references</term>
-    <term name="no date">n.d.</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>lines</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="th">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">accessed</term>
+      <term name="and">and</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">from</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">n.d.</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>line</single>
+         <multiple>lines</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>page</single>
+         <multiple>pages</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraph</single>
+         <multiple>paragraph</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">no</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>translator</single>
+         <multiple>translators</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran</single>
+         <multiple>trans</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">edited by</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">translated by</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">January</term>
+      <term name="month-02">February</term>
+      <term name="month-03">March</term>
+      <term name="month-04">April</term>
+      <term name="month-05">May</term>
+      <term name="month-06">June</term>
+      <term name="month-07">July</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">October</term>
+      <term name="month-11">November</term>
+      <term name="month-12">December</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Oct</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-tr-TR.xml b/locales/locales-tr-TR.xml
--- a/locales/locales-tr-TR.xml
+++ b/locales/locales-tr-TR.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="tr">
-    <term name="at">de</term>
-    <term name="in">içinde</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">erişildi</term>
-    <term name="retrieved">erişildi</term>
-    <term name="from">den</term>
-    <term name="forthcoming">gelecek</term>
-    <term name="references">referans</term>
-    <term name="no date">tarih yok</term>
-    <term name="and">ve</term>
-    <term name="et-al">ve diğ.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">isimsiz</term>
-    <term name="anonymous" form="short">isimsiz</term>
-    <term name="and others">ve diğ.</term>
-    <term name="in press">basımda</term>
-    <term name="online">çevrimiçi</term>
-    <term name="cited">kaynak</term>
-    <term name="internet">internet</term>
-    <term name="presented at">sunulan</term>
-    <term name="anthropology">antropoloji</term>
-    <term name="astronomy">astronomi</term>
-    <term name="biology">biyoloji</term>
-    <term name="botany">botanik</term>
-    <term name="chemistry">kimya</term>
-    <term name="engineering">mühendislik</term>
-    <term name="generic-base">generic-base</term>
-    <term name="geography">coğrafya</term>
-    <term name="geology">jeoloji</term>
-    <term name="history">tarih</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">edebiyat</term>
-    <term name="math">matematik</term>
-    <term name="medicine">tıp</term>
-    <term name="philosophy">felsefe</term>
-    <term name="physics">fizik</term>
-    <term name="psychology">pisikoloji</term>
-    <term name="sociology">sosyoloji</term>
-    <term name="science">bilim</term>
-    <term name="political_science">siyaset bilimi</term>
-    <term name="social_science">sosyal bilimler</term>
-    <term name="theology">din bilimi</term>
-    <term name="zoology">hayvanbilimi</term>
-    <term name="book">
-      <single>kitap</single>
-      <multiple>kitaplar</multiple>
-    </term>
-    <term name="chapter">
-      <single>bölüm</single>
-      <multiple>bölümler</multiple>
-    </term>
-    <term name="column">
-      <single>sütun</single>
-      <multiple>sütunlar</multiple>
-    </term>
-    <term name="figure">
-      <single>şekil</single>
-      <multiple>şekiller</multiple>
-    </term>
-    <term name="folio">
-      <single>folyo</single>
-      <multiple>folyo</multiple>
-    </term>
-    <term name="issue">
-      <single>sayı</single>
-      <multiple>sayılar</multiple>
-    </term>
-    <term name="line">
-      <single>satır</single>
-      <multiple>satırlar</multiple>
-    </term>
-    <term name="note">
-      <single>not</single>
-      <multiple>notlar</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>sayfa</single>
-      <multiple>sayfalar</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraf</single>
-      <multiple>paragraflar</multiple>
-    </term>
-    <term name="part">
-      <single>kısım</single>
-      <multiple>kısımlar</multiple>
-    </term>
-    <term name="section">
-      <single>bölüm</single>
-      <multiple>bölümler</multiple>
-    </term>
-    <term name="volume">
-      <single>cilt</single>
-      <multiple>ciltler</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>dize</single>
-      <multiple>dizeler</multiple>
-    </term>
-    <term name="book" form="short">kit</term>
-    <term name="chapter" form="short">böl</term>
-    <term name="column" form="short">süt</term>
-    <term name="figure" form="short">şek</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">sayı</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>s</single>
-      <multiple>ss</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">kıs</term>
-    <term name="section" form="short">böl</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editör</single>
-      <multiple>editörler</multiple>
-    </term>
-    <term name="translator">
-      <single>çevirmen</single>
-      <multiple>çevirmenler</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>ed</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>çev</single>
-      <multiple>çev</multiple>
-    </term>
-    <term name="editor" form="verb">editör</term>
-    <term name="translator" form="verb">çeviren</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">Röportaj yapan</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">çev</term>
-    <term name="month-01">Ocak</term>
-    <term name="month-02">Şubat</term>
-    <term name="month-03">Mart</term>
-    <term name="month-04">Nisan</term>
-    <term name="month-05">Mayıs</term>
-    <term name="month-06">Haziran</term>
-    <term name="month-07">Temmuz</term>
-    <term name="month-08">Ağustos</term>
-    <term name="month-09">Eylül</term>
-    <term name="month-10">Ekim</term>
-    <term name="month-11">Kasım</term>
-    <term name="month-12">Aralık</term>
-    <term name="month-01" form="short">Oca</term>
-    <term name="month-02" form="short">Şub</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Nis</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Haz</term>
-    <term name="month-07" form="short">Tem</term>
-    <term name="month-08" form="short">Ağu</term>
-    <term name="month-09" form="short">Eyl</term>
-    <term name="month-10" form="short">Eki</term>
-    <term name="month-11" form="short">Kas</term>
-    <term name="month-12" form="short">Ara</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="tr">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" form="numeric-leading-zeros" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">erişildi</term>
+      <term name="and">ve</term>
+      <term name="and others">ve diğ.</term>
+      <term name="anonymous">isimsiz</term>
+      <term name="anonymous" form="short">isimsiz</term>
+      <term name="at">de</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">kaynak</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">ve diğ.</term>
+      <term name="forthcoming">gelecek</term>
+      <term name="from">den</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">içinde</term>
+      <term name="in press">basımda</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">tarih yok</term>
+      <term name="online">çevrimiçi</term>
+      <term name="presented at">sunulan</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">erişildi</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">antropoloji</term>
+      <term name="astronomy">astronomi</term>
+      <term name="biology">biyoloji</term>
+      <term name="botany">botanik</term>
+      <term name="chemistry">kimya</term>
+      <term name="engineering">mühendislik</term>
+      <term name="generic-base">generic-base</term>
+      <term name="geography">coğrafya</term>
+      <term name="geology">jeoloji</term>
+      <term name="history">tarih</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">edebiyat</term>
+      <term name="math">matematik</term>
+      <term name="medicine">tıp</term>
+      <term name="philosophy">felsefe</term>
+      <term name="physics">fizik</term>
+      <term name="psychology">pisikoloji</term>
+      <term name="sociology">sosyoloji</term>
+      <term name="science">bilim</term>
+      <term name="political_science">siyaset bilimi</term>
+      <term name="social_science">sosyal bilimler</term>
+      <term name="theology">din bilimi</term>
+      <term name="zoology">hayvanbilimi</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>kitap</single>
+         <multiple>kitaplar</multiple>
+      </term>
+      <term name="chapter">
+         <single>bölüm</single>
+         <multiple>bölümler</multiple>
+      </term>
+      <term name="column">
+         <single>sütun</single>
+         <multiple>sütunlar</multiple>
+      </term>
+      <term name="figure">
+         <single>şekil</single>
+         <multiple>şekiller</multiple>
+      </term>
+      <term name="folio">
+         <single>folyo</single>
+         <multiple>folyo</multiple>
+      </term>
+      <term name="issue">
+         <single>sayı</single>
+         <multiple>sayılar</multiple>
+      </term>
+      <term name="line">
+         <single>satır</single>
+         <multiple>satırlar</multiple>
+      </term>
+      <term name="note">
+         <single>not</single>
+         <multiple>notlar</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>sayfa</single>
+         <multiple>sayfalar</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraf</single>
+         <multiple>paragraflar</multiple>
+      </term>
+      <term name="part">
+         <single>kısım</single>
+         <multiple>kısımlar</multiple>
+      </term>
+      <term name="section">
+         <single>bölüm</single>
+         <multiple>bölümler</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>dize</single>
+         <multiple>dizeler</multiple>
+      </term>
+      <term name="volume">
+         <single>cilt</single>
+         <multiple>ciltler</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">kit</term>
+      <term name="chapter" form="short">böl</term>
+      <term name="column" form="short">süt</term>
+      <term name="figure" form="short">şek</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">sayı</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>s</single>
+         <multiple>ss</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">kıs</term>
+      <term name="section" form="short">böl</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editör</single>
+         <multiple>editörler</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>çevirmen</single>
+         <multiple>çevirmenler</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>ed</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>çev</single>
+         <multiple>çev</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">editör</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">çeviren</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">Röportaj yapan</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">çev</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Ocak</term>
+      <term name="month-02">Şubat</term>
+      <term name="month-03">Mart</term>
+      <term name="month-04">Nisan</term>
+      <term name="month-05">Mayıs</term>
+      <term name="month-06">Haziran</term>
+      <term name="month-07">Temmuz</term>
+      <term name="month-08">Ağustos</term>
+      <term name="month-09">Eylül</term>
+      <term name="month-10">Ekim</term>
+      <term name="month-11">Kasım</term>
+      <term name="month-12">Aralık</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Oca</term>
+      <term name="month-02" form="short">Şub</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Nis</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Haz</term>
+      <term name="month-07" form="short">Tem</term>
+      <term name="month-08" form="short">Ağu</term>
+      <term name="month-09" form="short">Eyl</term>
+      <term name="month-10" form="short">Eki</term>
+      <term name="month-11" form="short">Kas</term>
+      <term name="month-12" form="short">Ara</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-uk-UA.xml b/locales/locales-uk-UA.xml
--- a/locales/locales-uk-UA.xml
+++ b/locales/locales-uk-UA.xml
@@ -1,207 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="uk">
-    <term name="at">на</term>
-    <term name="in">в</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">із</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">посилання</term>
-    <term name="no date">n.d.</term>
-    <term name="and">і</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">інтервю</term>
-    <term name="letter">лист</term>
-    <term name="anonymous">анонімний</term>
-    <term name="anonymous" form="short">анон.</term>
-    <term name="and others">та інші</term>
-    <term name="in press">у пресі</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">інтернет</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">антропологія</term>
-    <term name="astronomy">астрономія</term>
-    <term name="biology">біологія</term>
-    <term name="botany">ботаніка</term>
-    <term name="chemistry">хімія</term>
-    <term name="engineering">інженерія</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">географія</term>
-    <term name="geology">геологія</term>
-    <term name="history">історія</term>
-    <term name="humanities">гуманітарні</term>
-    <term name="literature">література</term>
-    <term name="math">математика</term>
-    <term name="medicine">медицина</term>
-    <term name="philosophy">філософія</term>
-    <term name="physics">фізика</term>
-    <term name="psychology">психологія</term>
-    <term name="sociology">соціологія</term>
-    <term name="science">наука</term>
-    <term name="political_science">політичні науки</term>
-    <term name="social_science">соціальні науки</term>
-    <term name="theology">теологія</term>
-    <term name="zoology">зоологія</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>lines</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="sub verbo">
-      <single>sub verbo</single>
-      <multiple>s.vv</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="sub verbo" form="short">
-      <single>s.v</single>
-      <multiple>s.vv</multiple>
-    </term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">Січень</term>
-    <term name="month-02">Лютий</term>
-    <term name="month-03">Березень</term>
-    <term name="month-04">Квітень</term>
-    <term name="month-05">Травень</term>
-    <term name="month-06">Червень</term>
-    <term name="month-07">Липень</term>
-    <term name="month-08">Серпень</term>
-    <term name="month-09">Вересень</term>
-    <term name="month-10">Жовтень</term>
-    <term name="month-11">Листопад</term>
-    <term name="month-12">Грудень</term>
-    <term name="month-01" form="short">Січ</term>
-    <term name="month-02" form="short">Лют</term>
-    <term name="month-03" form="short">Бер</term>
-    <term name="month-04" form="short">Квіт</term>
-    <term name="month-05" form="short">Трав</term>
-    <term name="month-06" form="short">Чер</term>
-    <term name="month-07" form="short">Лип</term>
-    <term name="month-08" form="short">Сер</term>
-    <term name="month-09" form="short">Вер</term>
-    <term name="month-10" form="short">Жов</term>
-    <term name="month-11" form="short">Лис</term>
-    <term name="month-12" form="short">Груд</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="uk">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" form="numeric-leading-zeros" suffix=", "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">accessed</term>
+      <term name="and">і</term>
+      <term name="and others">та інші</term>
+      <term name="anonymous">анонімний</term>
+      <term name="anonymous" form="short">анон.</term>
+      <term name="at">на</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">із</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">в</term>
+      <term name="in press">у пресі</term>
+      <term name="internet">інтернет</term>
+      <term name="interview">інтервю</term>
+      <term name="letter">лист</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">n.d.</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">антропологія</term>
+      <term name="astronomy">астрономія</term>
+      <term name="biology">біологія</term>
+      <term name="botany">ботаніка</term>
+      <term name="chemistry">хімія</term>
+      <term name="engineering">інженерія</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">географія</term>
+      <term name="geology">геологія</term>
+      <term name="history">історія</term>
+      <term name="humanities">гуманітарні</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">література</term>
+      <term name="math">математика</term>
+      <term name="medicine">медицина</term>
+      <term name="philosophy">філософія</term>
+      <term name="physics">фізика</term>
+      <term name="psychology">психологія</term>
+      <term name="sociology">соціологія</term>
+      <term name="science">наука</term>
+      <term name="political_science">політичні науки</term>
+      <term name="social_science">соціальні науки</term>
+      <term name="theology">теологія</term>
+      <term name="zoology">зоологія</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>line</single>
+         <multiple>lines</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>page</single>
+         <multiple>pages</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraph</single>
+         <multiple>paragraph</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">no</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>translator</single>
+         <multiple>translators</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran</single>
+         <multiple>trans</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">edited by</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">translated by</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Січень</term>
+      <term name="month-02">Лютий</term>
+      <term name="month-03">Березень</term>
+      <term name="month-04">Квітень</term>
+      <term name="month-05">Травень</term>
+      <term name="month-06">Червень</term>
+      <term name="month-07">Липень</term>
+      <term name="month-08">Серпень</term>
+      <term name="month-09">Вересень</term>
+      <term name="month-10">Жовтень</term>
+      <term name="month-11">Листопад</term>
+      <term name="month-12">Грудень</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Січ</term>
+      <term name="month-02" form="short">Лют</term>
+      <term name="month-03" form="short">Бер</term>
+      <term name="month-04" form="short">Квіт</term>
+      <term name="month-05" form="short">Трав</term>
+      <term name="month-06" form="short">Чер</term>
+      <term name="month-07" form="short">Лип</term>
+      <term name="month-08" form="short">Сер</term>
+      <term name="month-09" form="short">Вер</term>
+      <term name="month-10" form="short">Жов</term>
+      <term name="month-11" form="short">Лис</term>
+      <term name="month-12" form="short">Груд</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-vi-VN.xml b/locales/locales-vi-VN.xml
--- a/locales/locales-vi-VN.xml
+++ b/locales/locales-vi-VN.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="vi">
-    <term name="at">at</term>
-    <term name="in">trong</term>
-    <term name="ibid">n.t.</term>
-    <term name="accessed">truy cập</term>
-    <term name="retrieved">truy vấn</term>
-    <term name="from">từ</term>
-    <term name="forthcoming">sắp tới</term>
-    <term name="references">tham khảo</term>
-    <term name="no date">không ngày</term>
-    <term name="and">và</term>
-    <term name="et-al">và c.s.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>dòng</single>
-      <multiple>dòng</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>trang</single>
-      <multiple>trang</multiple>
-    </term>
-    <term name="paragraph">
-      <single>đoạn văn</single>
-      <multiple>đoạn văn</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">số p.h</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>tr</single>
-      <multiple>tr</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>biên tập viên</single>
-      <multiple>biên tập viên</multiple>
-    </term>
-    <term name="translator">
-      <single>biên dịch viên</single>
-      <multiple>biên dịch viên</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>b.t.v</single>
-      <multiple>b.t.v</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>b.d.v</single>
-      <multiple>b.d.v</multiple>
-    </term>
-    <term name="editor" form="verb">biên tập bởi</term>
-    <term name="translator" form="verb">biên dịch bởi</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">b.t</term>
-    <term name="translator" form="verb-short">b.d</term>
-    <term name="month-01">Tháng Giêng</term>
-    <term name="month-02">Tháng Hai</term>
-    <term name="month-03">Tháng Ba</term>
-    <term name="month-04">Tháng Tư</term>
-    <term name="month-05">Tháng Năm</term>
-    <term name="month-06">Tháng Sáu</term>
-    <term name="month-07">Tháng Bảy</term>
-    <term name="month-08">Tháng Tám</term>
-    <term name="month-09">Tháng Chín</term>
-    <term name="month-10">Tháng Mười</term>
-    <term name="month-11">Tháng Mười-Một</term>
-    <term name="month-12">Tháng Chạp</term>
-    <term name="month-01" form="short">tháng 1</term>
-    <term name="month-02" form="short">tháng 2</term>
-    <term name="month-03" form="short">tháng 3</term>
-    <term name="month-04" form="short">tháng 4</term>
-    <term name="month-05" form="short">tháng 5</term>
-    <term name="month-06" form="short">tháng 6</term>
-    <term name="month-07" form="short">tháng 7</term>
-    <term name="month-08" form="short">tháng 8</term>
-    <term name="month-09" form="short">tháng 9</term>
-    <term name="month-10" form="short">tháng 10</term>
-    <term name="month-11" form="short">tháng 11</term>
-    <term name="month-12" form="short">tháng 12</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="vi">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="day" suffix=" "/>
+      <date-part name="month" suffix=" "/>
+      <date-part name="year"/>
+   </date>
+   <date form="numeric">
+      <date-part name="day" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="month" form="numeric-leading-zeros" suffix="/"/>
+      <date-part name="year"/>
+   </date>
+   <terms>
+      <term name="accessed">truy cập</term>
+      <term name="and">và</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">và c.s.</term>
+      <term name="forthcoming">sắp tới</term>
+      <term name="from">từ</term>
+      <term name="ibid">n.t.</term>
+      <term name="in">trong</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">không ngày</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">truy vấn</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>dòng</single>
+         <multiple>dòng</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>trang</single>
+         <multiple>trang</multiple>
+      </term>
+      <term name="paragraph">
+         <single>đoạn văn</single>
+         <multiple>đoạn văn</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">số p.h</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>tr</single>
+         <multiple>tr</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>biên tập viên</single>
+         <multiple>biên tập viên</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>biên dịch viên</single>
+         <multiple>biên dịch viên</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>b.t.v</single>
+         <multiple>b.t.v</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>b.d.v</single>
+         <multiple>b.d.v</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">biên tập bởi</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">biên dịch bởi</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">b.t</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">b.d</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">Tháng Giêng</term>
+      <term name="month-02">Tháng Hai</term>
+      <term name="month-03">Tháng Ba</term>
+      <term name="month-04">Tháng Tư</term>
+      <term name="month-05">Tháng Năm</term>
+      <term name="month-06">Tháng Sáu</term>
+      <term name="month-07">Tháng Bảy</term>
+      <term name="month-08">Tháng Tám</term>
+      <term name="month-09">Tháng Chín</term>
+      <term name="month-10">Tháng Mười</term>
+      <term name="month-11">Tháng Mười-Một</term>
+      <term name="month-12">Tháng Chạp</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">tháng 1</term>
+      <term name="month-02" form="short">tháng 2</term>
+      <term name="month-03" form="short">tháng 3</term>
+      <term name="month-04" form="short">tháng 4</term>
+      <term name="month-05" form="short">tháng 5</term>
+      <term name="month-06" form="short">tháng 6</term>
+      <term name="month-07" form="short">tháng 7</term>
+      <term name="month-08" form="short">tháng 8</term>
+      <term name="month-09" form="short">tháng 9</term>
+      <term name="month-10" form="short">tháng 10</term>
+      <term name="month-11" form="short">tháng 11</term>
+      <term name="month-12" form="short">tháng 12</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-zh-CN.xml b/locales/locales-zh-CN.xml
--- a/locales/locales-zh-CN.xml
+++ b/locales/locales-zh-CN.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="zh">
-    <term name="at">at</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">accessed</term>
-    <term name="retrieved">retrieved</term>
-    <term name="from">from</term>
-    <term name="forthcoming">forthcoming</term>
-    <term name="references">References</term>
-    <term name="no date">nd</term>
-    <term name="and">and</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">interview</term>
-    <term name="letter">letter</term>
-    <term name="anonymous">anonymous</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">and others</term>
-    <term name="in press">in press</term>
-    <term name="online">online</term>
-    <term name="cited">cited</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presented at the</term>
-    <term name="anthropology">anthropology</term>
-    <term name="astronomy">astronomy</term>
-    <term name="biology">biology</term>
-    <term name="botany">botany</term>
-    <term name="chemistry">chemistry</term>
-    <term name="engineering">engineering</term>
-    <term name="generic-base">generic base</term>
-    <term name="geography">geography</term>
-    <term name="geology">geology</term>
-    <term name="history">history</term>
-    <term name="humanities">humanities</term>
-    <term name="literature">literature</term>
-    <term name="math">math</term>
-    <term name="medicine">medicine</term>
-    <term name="philosophy">philosophy</term>
-    <term name="physics">physics</term>
-    <term name="psychology">psychology</term>
-    <term name="sociology">sociology</term>
-    <term name="science">science</term>
-    <term name="political_science">political science</term>
-    <term name="social_science">social science</term>
-    <term name="theology">theology</term>
-    <term name="zoology">zoology</term>
-    <term name="book">
-      <single>book</single>
-      <multiple>books</multiple>
-    </term>
-    <term name="chapter">
-      <single>chapter</single>
-      <multiple>chapters</multiple>
-    </term>
-    <term name="column">
-      <single>column</single>
-      <multiple>columns</multiple>
-    </term>
-    <term name="figure">
-      <single>figure</single>
-      <multiple>figures</multiple>
-    </term>
-    <term name="folio">
-      <single>folio</single>
-      <multiple>folios</multiple>
-    </term>
-    <term name="issue">
-      <single>number</single>
-      <multiple>numbers</multiple>
-    </term>
-    <term name="line">
-      <single>line</single>
-      <multiple>line</multiple>
-    </term>
-    <term name="note">
-      <single>note</single>
-      <multiple>notes</multiple>
-    </term>
-    <term name="opus">
-      <single>opus</single>
-      <multiple>opera</multiple>
-    </term>
-    <term name="page">
-      <single>page</single>
-      <multiple>pages</multiple>
-    </term>
-    <term name="paragraph">
-      <single>paragraph</single>
-      <multiple>paragraph</multiple>
-    </term>
-    <term name="part">
-      <single>part</single>
-      <multiple>parts</multiple>
-    </term>
-    <term name="section">
-      <single>section</single>
-      <multiple>sections</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumes</multiple>
-    </term>
-    <term name="edition">
-      <single>edition</single>
-      <multiple>editions</multiple>
-    </term>
-    <term name="verse">
-      <single>verse</single>
-      <multiple>verses</multiple>
-    </term>
-    <term name="book" form="short">bk</term>
-    <term name="chapter" form="short">chap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">f</term>
-    <term name="issue" form="short">no</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>p</single>
-      <multiple>pp</multiple>
-    </term>
-    <term name="paragraph" form="short">para</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">sec</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vols</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>editor</single>
-      <multiple>editors</multiple>
-    </term>
-    <term name="translator">
-      <single>translator</single>
-      <multiple>translators</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>ed</single>
-      <multiple>eds</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>tran</single>
-      <multiple>trans</multiple>
-    </term>
-    <term name="editor" form="verb">edited by</term>
-    <term name="translator" form="verb">translated by</term>
-    <term name="recipient" form="verb">to</term>
-    <term name="interviewer" form="verb">interview by</term>
-    <term name="editor" form="verb-short">ed</term>
-    <term name="translator" form="verb-short">trans</term>
-    <term name="month-01">January</term>
-    <term name="month-02">February</term>
-    <term name="month-03">March</term>
-    <term name="month-04">April</term>
-    <term name="month-05">May</term>
-    <term name="month-06">June</term>
-    <term name="month-07">July</term>
-    <term name="month-08">August</term>
-    <term name="month-09">September</term>
-    <term name="month-10">October</term>
-    <term name="month-11">November</term>
-    <term name="month-12">December</term>
-    <term name="month-01" form="short">Jan</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">May</term>
-    <term name="month-06" form="short">Jun</term>
-    <term name="month-07" form="short">Jul</term>
-    <term name="month-08" form="short">Aug</term>
-    <term name="month-09" form="short">Sep</term>
-    <term name="month-10" form="short">Oct</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dec</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="zh">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="year" suffix="&#24180;"/>
+      <date-part name="month" form="numeric" suffix="&#26376;"/>
+      <date-part name="day" suffix="&#26085;"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric" prefix="-" range-delimiter="/"/>
+      <date-part name="day" prefix="-" range-delimiter="/"/>
+   </date>
+   <terms>
+      <term name="accessed">accessed</term>
+      <term name="and">and</term>
+      <term name="and others">and others</term>
+      <term name="anonymous">anonymous</term>
+      <term name="anonymous" form="short">anon</term>
+      <term name="at">at</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">cited</term>
+      <term name="edition">
+         <single>edition</single>
+         <multiple>editions</multiple>
+      </term>
+      <term name="edition" form="short">ed</term>
+      <term name="et-al">et al.</term>
+      <term name="forthcoming">forthcoming</term>
+      <term name="from">from</term>
+      <term name="ibid">ibid.</term>
+      <term name="in">in</term>
+      <term name="in press">in press</term>
+      <term name="internet">internet</term>
+      <term name="interview">interview</term>
+      <term name="letter">letter</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">nd</term>
+      <term name="online">online</term>
+      <term name="presented at">presented at the</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">retrieved</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">anthropology</term>
+      <term name="astronomy">astronomy</term>
+      <term name="biology">biology</term>
+      <term name="botany">botany</term>
+      <term name="chemistry">chemistry</term>
+      <term name="engineering">engineering</term>
+      <term name="generic-base">generic base</term>
+      <term name="geography">geography</term>
+      <term name="geology">geology</term>
+      <term name="history">history</term>
+      <term name="humanities">humanities</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">literature</term>
+      <term name="math">math</term>
+      <term name="medicine">medicine</term>
+      <term name="philosophy">philosophy</term>
+      <term name="physics">physics</term>
+      <term name="psychology">psychology</term>
+      <term name="sociology">sociology</term>
+      <term name="science">science</term>
+      <term name="political_science">political science</term>
+      <term name="social_science">social science</term>
+      <term name="theology">theology</term>
+      <term name="zoology">zoology</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>book</single>
+         <multiple>books</multiple>
+      </term>
+      <term name="chapter">
+         <single>chapter</single>
+         <multiple>chapters</multiple>
+      </term>
+      <term name="column">
+         <single>column</single>
+         <multiple>columns</multiple>
+      </term>
+      <term name="figure">
+         <single>figure</single>
+         <multiple>figures</multiple>
+      </term>
+      <term name="folio">
+         <single>folio</single>
+         <multiple>folios</multiple>
+      </term>
+      <term name="issue">
+         <single>number</single>
+         <multiple>numbers</multiple>
+      </term>
+      <term name="line">
+         <single>line</single>
+         <multiple>line</multiple>
+      </term>
+      <term name="note">
+         <single>note</single>
+         <multiple>notes</multiple>
+      </term>
+      <term name="opus">
+         <single>opus</single>
+         <multiple>opera</multiple>
+      </term>
+      <term name="page">
+         <single>page</single>
+         <multiple>pages</multiple>
+      </term>
+      <term name="paragraph">
+         <single>paragraph</single>
+         <multiple>paragraph</multiple>
+      </term>
+      <term name="part">
+         <single>part</single>
+         <multiple>parts</multiple>
+      </term>
+      <term name="section">
+         <single>section</single>
+         <multiple>sections</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>verse</single>
+         <multiple>verses</multiple>
+      </term>
+      <term name="volume">
+         <single>volume</single>
+         <multiple>volumes</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">bk</term>
+      <term name="chapter" form="short">chap</term>
+      <term name="column" form="short">col</term>
+      <term name="figure" form="short">fig</term>
+      <term name="folio" form="short">f</term>
+      <term name="issue" form="short">no</term>
+      <term name="opus" form="short">op</term>
+      <term name="page" form="short">
+         <single>p</single>
+         <multiple>pp</multiple>
+      </term>
+      <term name="paragraph" form="short">para</term>
+      <term name="part" form="short">pt</term>
+      <term name="section" form="short">sec</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>v</single>
+         <multiple>vv</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>vol</single>
+         <multiple>vols</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>translator</single>
+         <multiple>translators</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single/>
+         <multiple/>
+      </term>
+      <term name="editor" form="short">
+         <single>ed</single>
+         <multiple>eds</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>tran</single>
+         <multiple>trans</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">edited by</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">translated by</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">to</term>
+      <term name="interviewer" form="verb">interview by</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">ed</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">trans</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">January</term>
+      <term name="month-02">February</term>
+      <term name="month-03">March</term>
+      <term name="month-04">April</term>
+      <term name="month-05">May</term>
+      <term name="month-06">June</term>
+      <term name="month-07">July</term>
+      <term name="month-08">August</term>
+      <term name="month-09">September</term>
+      <term name="month-10">October</term>
+      <term name="month-11">November</term>
+      <term name="month-12">December</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">Jan</term>
+      <term name="month-02" form="short">Feb</term>
+      <term name="month-03" form="short">Mar</term>
+      <term name="month-04" form="short">Apr</term>
+      <term name="month-05" form="short">May</term>
+      <term name="month-06" form="short">Jun</term>
+      <term name="month-07" form="short">Jul</term>
+      <term name="month-08" form="short">Aug</term>
+      <term name="month-09" form="short">Sep</term>
+      <term name="month-10" form="short">Oct</term>
+      <term name="month-11" form="short">Nov</term>
+      <term name="month-12" form="short">Dec</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/locales/locales-zh-TW.xml b/locales/locales-zh-TW.xml
--- a/locales/locales-zh-TW.xml
+++ b/locales/locales-zh-TW.xml
@@ -1,199 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="zh">
-    <term name="at">在</term>
-    <term name="in">在</term>
-    <term name="ibid">同上出處</term>
-    <term name="accessed">被取用</term>
-    <term name="retrieved">被取回</term>
-    <term name="from">從</term>
-    <term name="forthcoming">將來的</term>
-    <term name="references">參考資料</term>
-    <term name="no date">無日期</term>
-    <term name="and">及</term>
-    <term name="et-al">等人</term>
-    <term name="interview">訪問</term>
-    <term name="letter">信件</term>
-    <term name="anonymous">不具名的</term>
-    <term name="anonymous" form="short">無名</term>
-    <term name="and others">及其他</term>
-    <term name="in press">印行中</term>
-    <term name="online">在線上</term>
-    <term name="cited">被引用</term>
-    <term name="internet">網際網路</term>
-    <term name="presented at">簡報於</term>
-    <term name="anthropology">人類學</term>
-    <term name="astronomy">天文學</term>
-    <term name="biology">生物學</term>
-    <term name="botany">植物學</term>
-    <term name="chemistry">化學</term>
-    <term name="engineering">工程學</term>
-    <term name="generic-base">一般基礎</term>
-    <term name="geography">地理學</term>
-    <term name="geology">地質學</term>
-    <term name="history">歷史學</term>
-    <term name="humanities">人文學科</term>
-    <term name="literature">文學</term>
-    <term name="math">數學</term>
-    <term name="medicine">醫學</term>
-    <term name="philosophy">哲學</term>
-    <term name="physics">物理學</term>
-    <term name="psychology">心理學</term>
-    <term name="sociology">社會學</term>
-    <term name="science">自然科學</term>
-    <term name="political_science">政治科學</term>
-    <term name="social_science">社會科學</term>
-    <term name="theology">神學</term>
-    <term name="zoology">動物學</term>
-    <term name="book">
-      <single>書</single>
-      <multiple>書</multiple>
-    </term>
-    <term name="chapter">
-      <single>章</single>
-      <multiple>章</multiple>
-    </term>
-    <term name="column">
-      <single>欄</single>
-      <multiple>欄</multiple>
-    </term>
-    <term name="figure">
-      <single>圖</single>
-      <multiple>圖</multiple>
-    </term>
-    <term name="folio">
-      <single>對開紙</single>
-      <multiple>對開紙</multiple>
-    </term>
-    <term name="issue">
-      <single>期數</single>
-      <multiple>期數</multiple>
-    </term>
-    <term name="line">
-      <single>行</single>
-      <multiple>行</multiple>
-    </term>
-    <term name="note">
-      <single>筆記</single>
-      <multiple>筆記</multiple>
-    </term>
-    <term name="opus">
-      <single>作品</single>
-      <multiple>作品</multiple>
-    </term>
-    <term name="page">
-      <single>頁</single>
-      <multiple>頁</multiple>
-    </term>
-    <term name="paragraph">
-      <single>段落</single>
-      <multiple>段落</multiple>
-    </term>
-    <term name="part">
-      <single>部</single>
-      <multiple>部</multiple>
-    </term>
-    <term name="section">
-      <single>節</single>
-      <multiple>節</multiple>
-    </term>
-    <term name="volume">
-      <single>冊</single>
-      <multiple>冊</multiple>
-    </term>
-    <term name="edition">
-      <single>版本</single>
-      <multiple>版本</multiple>
-    </term>
-    <term name="verse">
-      <single>詩句</single>
-      <multiple>詩句</multiple>
-    </term>
-    <term name="book" form="short">書</term>
-    <term name="chapter" form="short">章</term>
-    <term name="column" form="short">欄</term>
-    <term name="figure" form="short">圖</term>
-    <term name="folio" form="short">開</term>
-    <term name="issue" form="short">期</term>
-    <term name="opus" form="short">作</term>
-    <term name="page" form="short">
-      <single>頁</single>
-      <multiple>頁</multiple>
-    </term>
-    <term name="paragraph" form="short">段</term>
-    <term name="part" form="short">部</term>
-    <term name="section" form="short">節</term>
-    <term name="verse" form="short">
-      <single>句</single>
-      <multiple>句</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>冊</single>
-      <multiple>冊</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">版</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single>作者</single>
-      <multiple>作者</multiple>
-    </term>
-    <term name="editor">
-      <single>編輯</single>
-      <multiple>編輯</multiple>
-    </term>
-    <term name="translator">
-      <single>翻譯</single>
-      <multiple>翻譯</multiple>
-    </term>
-    <term name="author" form="short">
-      <single>作</single>
-      <multiple>作</multiple>
-    </term>
-    <term name="editor" form="short">
-      <single>編</single>
-      <multiple>編</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>譯</single>
-      <multiple>譯</multiple>
-    </term>
-    <term name="editor" form="verb">編者是</term>
-    <term name="translator" form="verb">譯者是</term>
-    <term name="recipient" form="verb">授與</term>
-    <term name="interviewer" form="verb">訪問者是</term>
-    <term name="editor" form="verb-short">編</term>
-    <term name="translator" form="verb-short">譯</term>
-    <term name="month-01">一月</term>
-    <term name="month-02">二月</term>
-    <term name="month-03">三月</term>
-    <term name="month-04">四月</term>
-    <term name="month-05">五月</term>
-    <term name="month-06">六月</term>
-    <term name="month-07">七月</term>
-    <term name="month-08">八月</term>
-    <term name="month-09">九月</term>
-    <term name="month-10">十月</term>
-    <term name="month-11">十一月</term>
-    <term name="month-12">十二月</term>
-    <term name="month-01" form="short">1月</term>
-    <term name="month-02" form="short">2月</term>
-    <term name="month-03" form="short">3月</term>
-    <term name="month-04" form="short">4月</term>
-    <term name="month-05" form="short">5月</term>
-    <term name="month-06" form="short">6月</term>
-    <term name="month-07" form="short">7月</term>
-    <term name="month-08" form="short">8月</term>
-    <term name="month-09" form="short">9月</term>
-    <term name="month-10" form="short">10月</term>
-    <term name="month-11" form="short">11月</term>
-    <term name="month-12" form="short">12月</term>
-  </locale>
-</terms>
+<?xml version="1.0" encoding="utf-8"?>
+<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="zh">
+   <style-options punctuation-in-quote="false"/>
+   <date form="text">
+      <date-part name="year" suffix="&#24180;"/>
+      <date-part name="month" form="numeric" suffix="&#26376;"/>
+      <date-part name="day" suffix="&#26085;"/>
+   </date>
+   <date form="numeric">
+      <date-part name="year"/>
+      <date-part name="month" form="numeric-leading-zeros" prefix="/"/>
+      <date-part name="day" form="numeric-leading-zeros" prefix="/"/>
+   </date>
+   <terms>
+      <term name="accessed">被取用</term>
+      <term name="and">及</term>
+      <term name="and others">及其他</term>
+      <term name="anonymous">不具名的</term>
+      <term name="anonymous" form="short">無名</term>
+      <term name="at">在</term>
+      <term name="by">by</term>
+      <term name="circa">circa</term>
+      <term name="circa" form="short">c.</term>
+      <term name="cited">被引用</term>
+      <term name="edition">
+         <single>版本</single>
+         <multiple>版本</multiple>
+      </term>
+      <term name="edition" form="short">版</term>
+      <term name="et-al">等人</term>
+      <term name="forthcoming">將來的</term>
+      <term name="from">從</term>
+      <term name="ibid">同上出處</term>
+      <term name="in">在</term>
+      <term name="in press">印行中</term>
+      <term name="internet">網際網路</term>
+      <term name="interview">訪問</term>
+      <term name="letter">信件</term>
+      <term name="no date">no date</term>
+      <term name="no date" form="short">無日期</term>
+      <term name="online">在線上</term>
+      <term name="presented at">簡報於</term>
+      <term name="reference">
+         <single>reference</single>
+         <multiple>references</multiple>
+      </term>
+      <term name="reference" form="short">
+         <single>ref.</single>
+         <multiple>refs.</multiple>
+      </term>
+      <term name="retrieved">被取回</term>
+
+      <!-- ANNO DOMINI; BEFORE CHRIST -->
+      <term name="ad">AD</term>
+      <term name="bc">BC</term>
+
+      <!-- QUOTES -->
+      <term name="open-quote">“</term>
+      <term name="close-quote">”</term>
+      <term name="open-inner-quote">‘</term>
+      <term name="close-inner-quote">’</term>
+
+      <!-- ORDINALS -->
+      <term name="ordinal-01">st</term>
+      <term name="ordinal-02">nd</term>
+      <term name="ordinal-03">rd</term>
+      <term name="ordinal-04">th</term>
+
+      <!-- LONG ORDINALS -->
+      <term name="long-ordinal-01">first</term>
+      <term name="long-ordinal-02">second</term>
+      <term name="long-ordinal-03">third</term>
+      <term name="long-ordinal-04">fourth</term>
+      <term name="long-ordinal-05">fifth</term>
+      <term name="long-ordinal-06">sixth</term>
+      <term name="long-ordinal-07">seventh</term>
+      <term name="long-ordinal-08">eighth</term>
+      <term name="long-ordinal-09">ninth</term>
+      <term name="long-ordinal-10">tenth</term>
+
+      <!-- CATEGORIES -->
+      <term name="anthropology">人類學</term>
+      <term name="astronomy">天文學</term>
+      <term name="biology">生物學</term>
+      <term name="botany">植物學</term>
+      <term name="chemistry">化學</term>
+      <term name="engineering">工程學</term>
+      <term name="generic-base">一般基礎</term>
+      <term name="geography">地理學</term>
+      <term name="geology">地質學</term>
+      <term name="history">歷史學</term>
+      <term name="humanities">人文學科</term>
+      <term name="linguistics">linguistics</term>
+      <term name="literature">文學</term>
+      <term name="math">數學</term>
+      <term name="medicine">醫學</term>
+      <term name="philosophy">哲學</term>
+      <term name="physics">物理學</term>
+      <term name="psychology">心理學</term>
+      <term name="sociology">社會學</term>
+      <term name="science">自然科學</term>
+      <term name="political_science">政治科學</term>
+      <term name="social_science">社會科學</term>
+      <term name="theology">神學</term>
+      <term name="zoology">動物學</term>
+
+      <!-- LONG LOCATOR FORMS -->
+      <term name="book">
+         <single>書</single>
+         <multiple>書</multiple>
+      </term>
+      <term name="chapter">
+         <single>章</single>
+         <multiple>章</multiple>
+      </term>
+      <term name="column">
+         <single>欄</single>
+         <multiple>欄</multiple>
+      </term>
+      <term name="figure">
+         <single>圖</single>
+         <multiple>圖</multiple>
+      </term>
+      <term name="folio">
+         <single>對開紙</single>
+         <multiple>對開紙</multiple>
+      </term>
+      <term name="issue">
+         <single>期數</single>
+         <multiple>期數</multiple>
+      </term>
+      <term name="line">
+         <single>行</single>
+         <multiple>行</multiple>
+      </term>
+      <term name="note">
+         <single>筆記</single>
+         <multiple>筆記</multiple>
+      </term>
+      <term name="opus">
+         <single>作品</single>
+         <multiple>作品</multiple>
+      </term>
+      <term name="page">
+         <single>頁</single>
+         <multiple>頁</multiple>
+      </term>
+      <term name="paragraph">
+         <single>段落</single>
+         <multiple>段落</multiple>
+      </term>
+      <term name="part">
+         <single>部</single>
+         <multiple>部</multiple>
+      </term>
+      <term name="section">
+         <single>節</single>
+         <multiple>節</multiple>
+      </term>
+      <term name="sub verbo">
+         <single>sub verbo</single>
+         <multiple>sub verbis</multiple>
+      </term>
+      <term name="verse">
+         <single>詩句</single>
+         <multiple>詩句</multiple>
+      </term>
+      <term name="volume">
+         <single>冊</single>
+         <multiple>冊</multiple>
+      </term>
+
+      <!-- SHORT LOCATOR FORMS -->
+      <term name="book" form="short">書</term>
+      <term name="chapter" form="short">章</term>
+      <term name="column" form="short">欄</term>
+      <term name="figure" form="short">圖</term>
+      <term name="folio" form="short">開</term>
+      <term name="issue" form="short">期</term>
+      <term name="opus" form="short">作</term>
+      <term name="page" form="short">
+         <single>頁</single>
+         <multiple>頁</multiple>
+      </term>
+      <term name="paragraph" form="short">段</term>
+      <term name="part" form="short">部</term>
+      <term name="section" form="short">節</term>
+      <term name="sub verbo" form="short">
+         <single>s.v.</single>
+         <multiple>s.vv.</multiple>
+      </term>
+      <term name="verse" form="short">
+         <single>句</single>
+         <multiple>句</multiple>
+      </term>
+      <term name="volume" form="short">
+         <single>冊</single>
+         <multiple>冊</multiple>
+      </term>
+
+      <!-- SYMBOL LOCATOR FORMS -->
+      <term name="paragraph" form="symbol">
+         <single>¶</single>
+         <multiple>¶¶</multiple>
+      </term>
+      <term name="section" form="symbol">
+         <single>§</single>
+         <multiple>§§</multiple>
+      </term>
+
+      <!-- LONG ROLE FORMS -->
+      <term name="author">
+         <single>作者</single>
+         <multiple>作者</multiple>
+      </term>
+      <term name="editor">
+         <single>編輯</single>
+         <multiple>編輯</multiple>
+      </term>
+      <term name="editorial-director">
+         <single>editor</single>
+         <multiple>editors</multiple>
+      </term>
+      <term name="translator">
+         <single>翻譯</single>
+         <multiple>翻譯</multiple>
+      </term>
+      <term name="editortranslator">
+         <single>editor &amp; translator</single>
+         <multiple>editors &amp; translators</multiple>
+      </term>
+
+      <!-- SHORT ROLE FORMS -->
+      <term name="author" form="short">
+         <single>作</single>
+         <multiple>作</multiple>
+      </term>
+      <term name="editor" form="short">
+         <single>編</single>
+         <multiple>編</multiple>
+      </term>
+      <term name="editorial-director" form="short">
+         <single>ed.</single>
+         <multiple>eds.</multiple>
+      </term>
+      <term name="translator" form="short">
+         <single>譯</single>
+         <multiple>譯</multiple>
+      </term>
+      <term name="editortranslator" form="short">
+         <single>ed. &amp; tran.</single>
+         <multiple>eds. &amp; trans.</multiple>
+      </term>
+
+      <!-- VERB ROLE FORMS -->
+      <term name="editor" form="verb">編者是</term>
+      <term name="editorial-director" form="verb">edited by</term>
+      <term name="translator" form="verb">譯者是</term>
+      <term name="editortranslator" form="verb">edited &amp; translated by</term>
+      <term name="recipient" form="verb">授與</term>
+      <term name="interviewer" form="verb">訪問者是</term>
+
+      <!-- SHORT VERB ROLE FORMS -->
+      <term name="container-author" form="verb-short">by</term>
+      <term name="editor" form="verb-short">編</term>
+      <term name="editorial-director" form="verb-short">ed.</term>
+      <term name="translator" form="verb-short">譯</term>
+      <term name="editortranslator" form="verb-short">ed. &amp; trans. by</term>
+
+      <!-- LONG MONTH FORMS -->
+      <term name="month-01">一月</term>
+      <term name="month-02">二月</term>
+      <term name="month-03">三月</term>
+      <term name="month-04">四月</term>
+      <term name="month-05">五月</term>
+      <term name="month-06">六月</term>
+      <term name="month-07">七月</term>
+      <term name="month-08">八月</term>
+      <term name="month-09">九月</term>
+      <term name="month-10">十月</term>
+      <term name="month-11">十一月</term>
+      <term name="month-12">十二月</term>
+
+      <!-- SHORT MONTH FORMS -->
+      <term name="month-01" form="short">1月</term>
+      <term name="month-02" form="short">2月</term>
+      <term name="month-03" form="short">3月</term>
+      <term name="month-04" form="short">4月</term>
+      <term name="month-05" form="short">5月</term>
+      <term name="month-06" form="short">6月</term>
+      <term name="month-07" form="short">7月</term>
+      <term name="month-08" form="short">8月</term>
+      <term name="month-09" form="short">9月</term>
+      <term name="month-10" form="short">10月</term>
+      <term name="month-11" form="short">11月</term>
+      <term name="month-12" form="short">12月</term>
+
+      <!-- SEASONS -->
+      <term name="season-01">Spring</term>
+      <term name="season-02">Summer</term>
+      <term name="season-03">Autumn</term>
+      <term name="season-04">Winter</term>
+   </terms>
+</locale>
diff --git a/src/Text/CSL.hs b/src/Text/CSL.hs
--- a/src/Text/CSL.hs
+++ b/src/Text/CSL.hs
@@ -11,7 +11,7 @@
 -- /citeproc-hs/ is a library for automatically formatting
 -- bibliographic reference citations into a variety of styles using a
 -- macro language called Citation Style Language (CSL). More details
--- on CSL can be found here: <http://xbiblio.sourceforge.net/>.
+-- on CSL can be found here: <http://citationstyles.org/>.
 --
 -- This module documents and exports the library API.
 --
@@ -27,11 +27,13 @@
       -- * Reading Bibliographic Databases
       readBiblioFile
     , readModsFile
-    , readModsColletionFile
+    , readModsCollectionFile
 
     -- ** Reference Representation
     , Reference (..)
     , getReference
+    , parseLocator
+    , setNearNote
 
     -- * CSL Parser, Representation, and Processing
     , readCSLFile
@@ -40,8 +42,14 @@
     , Style (..)
     , Citation (..)
     , Bibliography (..)
+    , Cite (..)
+    , Affix (..)
+    , emptyCite
 
     -- ** High Level Processing
+    , ProcOpts (..)
+    , procOpts
+    , BibOpts (..)
     , citeproc
     , processCitations
     , processBibliography
@@ -54,6 +62,12 @@
     , renderPandoc
     , renderPandoc'
     , renderPandocStrict
+    , headInline
+    , initInline
+    , tailFirstInlineStr
+    , toCapital
+    , startWithPunct
+    , endWithPunct
     ) where
 
 import Text.CSL.Parser
@@ -78,28 +92,26 @@
 -- The library also provides a wrapper around hs-bibutils, the Haskell
 -- bindings to Chris Putnam's bibutils, a library that interconverts
 -- between various bibliography formats using a common MODS-format XML
--- intermediate.
---
--- For more information about hs-bibutils see here:
+-- intermediate. For more information about hs-bibutils see here:
 -- <http://code.haskell.org/hs-bibutils/>.
 --
--- /citeproc-hs/ can natively read MODS formatted bibliographic
--- databases.
+-- /citeproc-hs/ can natively read MODS and JSON formatted
+-- bibliographic databases. The JSON format is only partially
+-- documented. It is used by citeproc-js, by the CSL processor
+-- test-suite and is derived by the CSL scheme. More information can
+-- be read here:
+-- <http://citationstyles.org/>.
+--
+-- A (git) repository of styles can be found here:
+-- <https://github.com/citation-style-language/styles>.
 
 -- $overview
 --
--- The following example assumes you have properly installed
--- hs-bibutils. If not you can use bibutils to convert the following
--- bibtex bibliographic database into a MODS collection.
+-- The following example assumes you have installed citeproc-hs with
+-- hs-bibutils support (which is the default).
 --
 -- Suppose you have a small bibliographic database, like this one:
 --
--- > @Book{Rossato2005,
--- > author="Andrea Rossato",
--- > title="My First Book",
--- > year="2005"
--- > }
--- >
 -- > @Book{Rossato2006,
 -- > author="Andrea Rossato",
 -- > title="My Second Book",
@@ -114,25 +126,34 @@
 --
 -- Save it as @mybibdb.bib@.
 --
--- Then you can grab one of the CSL style developed by the Zotero
--- community. Suppose this one:
+-- Then you can grab one of the CSL styles that come with the
+-- test-suite for CSL processors. Suppose this one:
 --
--- <http://www.zotero.org/styles/apa>
+-- <https://bitbucket.org/bdarcus/citeproc-test/raw/18141149d1d3/styles/apa-x.csl>
 --
--- saved locally as @apa.csl@.
+-- saved locally as @apa-x.csl@.
 --
 -- This would be a simple program that formats a list of citations
 -- according to that style:
 --
 -- > import Text.CSL
 -- >
+-- > cites :: [Cite]
+-- > cites = [emptyCite { citeId = "Caso2007"
+-- >                    , citeLabel = "page"
+-- >                    , citeLocator = "15"}
+-- >         ,emptyCite { citeId = "Rossato2006"
+-- >                    , citeLabel = "page"
+-- >                    , citeLocator = "10"}
+-- >         ]
+-- >
 -- > main :: IO ()
 -- > main = do
--- >   m <- readBiblioFile "mybibdb.bib" "bibtex"
--- >   s <- readCSLFile "apa.csl"
--- >   let result = citeproc s m $ [[("Caso2007","p. 10"),("Rossato2005","p. 10"),("Rossato2006","p. 15")]]
+-- >   m <- readBiblioFile "mybibdb.bib"
+-- >   s <- readCSLFile "apa-x.csl"
+-- >   let result = citeproc procOpts s m $ [cites]
 -- >   putStrLn . unlines . map (renderPlainStrict) . citations $ result
 --
 -- The result would be:
 --
--- > (Caso, 2007, p. 10; Rossato, 2005, p. 10, 2006, p. 15)
+-- > (Caso, 2007, p. 15; Rossato, 2006, p. 10)
diff --git a/src/Text/CSL/Eval.hs b/src/Text/CSL/Eval.hs
--- a/src/Text/CSL/Eval.hs
+++ b/src/Text/CSL/Eval.hs
@@ -13,84 +13,120 @@
 --
 -----------------------------------------------------------------------------
 
-module Text.CSL.Eval where
+module Text.CSL.Eval
+    ( evalLayout
+    , evalSorting
+    , last'
+    , module Text.CSL.Eval.Common
+    , module Text.CSL.Eval.Output
+    ) where
 
-import Control.Arrow ( (&&&) )
+import Control.Arrow
 import Control.Applicative ( (<$>) )
 import Control.Monad.State
-import Data.Char ( toLower   )
-import Data.List ( elemIndex )
+import Data.Char
 import Data.Maybe
 
+import Text.CSL.Eval.Common
+import Text.CSL.Eval.Output
+import Text.CSL.Eval.Date
+import Text.CSL.Eval.Names
 import Text.CSL.Output.Plain
-import Text.CSL.Parser ( toRead )
 import Text.CSL.Reference
 import Text.CSL.Style
-
-data EvalState
-    = EvalState
-      { ref     :: ReferenceMap
-      , pos     :: String
-      , env     :: Environment
-      , debug   :: [String]
-      , disamb  :: Bool
-      , consume :: Bool
-      }
-
-data Environment
-    = Env
-      { terms   :: [TermMap]
-      , macros  :: [MacroMap]
-      , options :: [Option]
-      , name    :: [Name]
-      } deriving ( Show )
+import Text.Pandoc.Definition
+import Text.ParserCombinators.Parsec hiding ( State (..) )
 
-evalLayout :: Layout   -> Bool -> [TermMap] -> [MacroMap]
-           -> [Option] -> String -> Reference -> [Output]
-evalLayout (Layout _ _ es) b t m o p r = evalState job initSt
+-- | Produce the output with a 'Layout', the 'EvalMode', a 'Bool'
+-- 'True' if the evaluation happens for disambiguation purposes, the
+-- 'Locale', the 'MacrpMap', the position of the cite and the
+-- 'Reference'.
+evalLayout :: Layout   -> EvalMode -> Bool -> [Locale] -> [MacroMap]
+           -> [Option] -> Reference -> [Output]
+evalLayout (Layout _ _ es) em b l m o r
+    = cleanOutput result
     where
+      evalOut = case evalState job initSt of
+                  [] -> if (isSorting $ em)
+                        then []
+                        else [noOutputError]
+                  x | title r == citeId cit ++ " not found!" -> [noBibDataError $ cit]
+                    | otherwise                              -> x
+      addAff f x c = case f c of
+                       PlainText  []    -> []
+                       PlainText  p | x -> [Output (rtfParser emptyFormatting p) emptyFormatting, OSpace]
+                       PlainText  p     -> [OSpace, Output (rtfParser emptyFormatting p) emptyFormatting]
+                       PandocText []    -> []
+                       PandocText p | x -> [OPan p, OSpace]
+                       PandocText p     -> [OPan p]
+      result  = case em of
+                  EvalCite c -> addAff citePrefix True c ++ evalOut ++ addAff citeSuffix False c
+                  _          -> evalOut
+      locale = case l of
+                 [x] -> x
+                 _   -> Locale [] [] [] [] []
       job    = concatMapM evalElement es
-      initSt = EvalState (mkRefMap r) p (Env t m o []) [] b False
+      cit    = case em of
+                 EvalCite    c -> c
+                 EvalSorting c -> c
+                 EvalBiblio  s -> emptyCite { citePosition = s }
+      initSt = EvalState (mkRefMap r) (Env cit (localeTermMap locale) m
+                         (localeDate locale) o []) [] em b False [] False [] [] []
 
-evalSorting ::  [TermMap] -> [MacroMap] -> [Option] -> [Sort] -> Reference -> [Sorting]
-evalSorting ts ms opts ss r
+evalSorting :: EvalMode -> [Locale] -> [MacroMap] -> [Option] -> [Sort] -> Reference -> [Sorting]
+evalSorting m l ms opts ss r
     = map (format . sorting) ss
     where
-      render       = renderPlainStrict . map formatOutput . proc addYearSuffix
-      format (s,e) = applaySort s . render $ eval e
-      eval      e  = evalLayout (Layout emptyFormatting [] [e]) False ts ms opts [] r
+      render       = renderPlainStrict . formatOutputList
+      format (s,e) = applaySort s . render $ uncurry eval e
+      eval     o e = evalLayout (Layout emptyFormatting [] [e]) m False l ms o r
       applaySort c s
           | Ascending {} <- c = Ascending  s
           | otherwise         = Descending s
-      sorting s = case s of
-                    SortVariable str o -> (o, Variable [str] Long emptyFormatting [])
-                    SortMacro    str o -> (o, Macro     str  Long emptyFormatting   )
 
+      unsetOpts ("et-al-min"                 ,_) = ("et-al-min"           ,"")
+      unsetOpts ("et-al-use-first"           ,_) = ("et-al-use-first"     ,"")
+      unsetOpts ("et-al-subsequent-min"      ,_) = ("et-al-subsequent-min","")
+      unsetOpts ("et-al-subsequent-use-first",_) = ("et-al-subsequent-use-first","")
+      unsetOpts  x                               = x
+      setOpts s i = if i /= 0 then (s, show i) else ([],[])
+      sorting s
+          = case s of
+              SortVariable str s'     -> (s', ( ("name-as-sort-order","all") : opts
+                                              , Variable [str] Long emptyFormatting []))
+              SortMacro  str s' a b c -> (s', ( setOpts "et-al-min"       a : ("et-al-use-last",c) :
+                                                setOpts "et-al-use-first" b : proc unsetOpts opts
+                                              , Macro str emptyFormatting))
+
 evalElements :: [Element] -> State EvalState [Output]
 evalElements x = concatMapM evalElement x
 
 evalElement :: Element -> State EvalState [Output]
 evalElement el
-    | Choose i ei e             <- el = evalIfThen i ei e
-    | Macro        s _ fm       <- el = return . appendOutput fm =<< evalElements =<< getMacro s
-    | Const        s   fm       <- el = return . output fm $ s
-    | PointLocator s _ fm       <- el = return . output fm  =<< getStringVar s
-    | Number       s _ fm       <- el = return . output fm  =<< getStringVar s
-    | Variable     s f fm d     <- el = return . addDelim d =<< concatMapM (getVariable f fm) s
-    | Group            fm d _ l <- el = when' ((/=) [] <$> tryGroup l) $
-                                        return . outputList fm d =<< evalElements l
-    | Date         s   fm d dp  <- el = return . outputList fm d =<< evalDate dp s
-    | Label        s f fm i p   <- el = formatLabel f fm i p s
-    | Term         s f fm i p   <- el = formatLabel f fm i p s
-    | Names        s n fm d sub <- el = ifEmpty (evalNames s n d)
-                                                (withName (getName n) $ evalElements sub)
-                                                (appendOutput fm)
-    | Substitute (e:els)        <- el = ifEmpty (consuming $ evalElement e)
-                                                (getFirst els) id
-    | ShortNames   s   fm d     <- el = head <$> gets (name . env) >>= \(Name f _ nf d') ->
-                                        evalNames s [Name f fm nf d'] d
-    | otherwise                       = return []
+    | Choose i ei e         <- el = evalIfThen i ei e
+    | Macro    s   fm       <- el = return . appendOutput fm =<< evalElements =<< getMacro s
+    | Const    s   fm       <- el = return . output fm $ s
+    | Number   s f fm       <- el = formatNumber f fm =<< getStringVar s
+    | Variable s f fm d     <- el = return . addDelim d =<< concatMapM (getVariable f fm) s
+    | Group        fm d l   <- el = when' ((/=) [] <$> tryGroup l) $
+                                    return . outputList fm d =<< evalElements l
+    | Date     _ _ _  _ _ _ <- el = evalDate el
+    | Label    s f fm _     <- el = formatLabel f fm True s -- FIXME !!
+    | Term     s f fm p     <- el = formatLabel f fm p s
+    | Names    s n fm d sub <- el = modify (\st -> st { contNum = [] }) >>
+                                    ifEmpty (evalNames False s n d)
+                                            (withNames el $ evalElements sub)
+                                            (appendOutput fm)
+    | Substitute (e:els)    <- el = ifEmpty (consuming $ evalElement e)
+                                            (getFirst els) id
+    | ShortNames   s fm d   <- el = head <$> gets (names . env) >>= \(Names _ ns fm' d' _) ->
+                                    appendOutput fm' <$> evalNames False s (updateNameParts d fm ns) d'
+    | otherwise                   = return []
     where
+      updateNameParts d fm (Name f fm' nf d' np : xs) = Name f (mergeFM fm' fm) nf (d `betterThen` d') np : xs
+      updateNameParts d fm                   (x : xs) = x : updateNameParts d fm xs
+      updateNameParts _ _                         []  = []
+
       tryGroup     l = get >>= \s -> evalElements (rmTermConst l) >>= \r -> put s >> return r
       rmTermConst [] = []
       rmTermConst (e:es)
@@ -100,10 +136,10 @@
 
       ifEmpty p t e = p >>= \r -> if r == [] then t else return (e r)
 
-      withName  n f = modify (\s -> s { env = (env s)
-                                        {name =    n : name (env s)}}) >> f >>= \r ->
-                       modify (\s -> s { env = (env s)
-                                        {name = tail $ name (env s)}}) >> return r
+      withNames n f = modify (\s -> s { env = (env s)
+                                        {names = n : names (env s)}}) >> f >>= \r ->
+                      modify (\s -> s { env = (env s)
+                                        {names = tail $ names (env s)}}) >> return r
 
       getFirst        [] = return []
       getFirst    (x:xs) = whenElse ((/=) []  <$> evalElement x)
@@ -111,10 +147,15 @@
                                     (getFirst xs)
 
       getMacro         s = maybe [] id . lookup s <$> gets (macros . env)
-      getName            = head . filter isName
-      getVariable f fm s = getStringVar "year-suffix" >>= \su ->
-                           getVar [] (getFormattedValue su f fm) s >>=
-                           \r -> consumeVariable s >> return r
+      getVariable f fm s = case s of
+                             "year-suffix" -> getStringVar "ref-id" >>= \k  ->
+                                              return . return $ OYearSuf [] k [] fm
+                             "page"        -> getStringVar "page" >>= formatRange fm
+                             "title"       -> formatTitle f fm
+                             "locator"     -> getLocVar >>= formatRange fm . snd
+                             _             -> gets (options . env) >>= \opts ->
+                                              getVar [] (getFormattedValue opts f fm) s >>= \r ->
+                                              consumeVariable s >> return r
 
 evalIfThen :: IfThen -> [IfThen] -> [Element] -> State EvalState [Output]
 evalIfThen i ei e
@@ -128,13 +169,13 @@
                       else whenElse (evalCond m c)
                                     (evalElements el)
                                     (evalIfThen (head ei) (tail ei) e)
-      evalCond m c = do t <- checkCond chkType         isType         c m
-                        v <- checkCond isVarSet        isSet          c m
-                        n <- checkCond chkNumeric      isNumeric      c m
-                        d <- checkCond chkDate         isDate         c m
-                        p <- checkCond chkPosition     isPosition     c m
-                        a <- checkCond chkDisambiguate disambiguation c m
-                        l <- checkCond chkLocator      isLocator      c m
+      evalCond m c = do t <- checkCond chkType         isType          c m
+                        v <- checkCond isVarSet        isSet           c m
+                        n <- checkCond chkNumeric      isNumeric       c m
+                        d <- checkCond chkDate         isUncertainDate c m
+                        p <- checkCond chkPosition     isPosition      c m
+                        a <- checkCond chkDisambiguate disambiguation  c m
+                        l <- checkCond chkLocator      isLocator       c m
                         return $ match m $ concat [t,v,n,d,p,a,l]
 
       checkCond a f c m = if f c /= [] then mapM a (f c) else checkMatch m
@@ -144,275 +185,197 @@
 
       chkType         t = let chk = (==) (formatVariable t) . show . fromMaybe NoType . fromValue
                           in  getVar False chk "ref-type"
-      chkNumeric      v = isVarSet v
-      chkDate         v = isVarSet v
-      chkPosition     s = gets pos >>= return . compPosition s
-      chkDisambiguate s = gets disamb >>= return . (==) (formatVariable s) . map toLower . show
-      chkLocator      v = getLocVar v >>= return . (==) v . fst
+      numericVars       = ["edition", "volume", "number-of-volumes", "number", "issue", "citation-number"]
+      chkNumeric      v = do val <- getStringVar v
+                             return (v `elem` numericVars && or (map isDigit val))
+      chkDate         v = getDateVar v >>= return . not . null . filter ((/=) [] . circa)
+      chkPosition     s = if s == "near-note"
+                          then gets (nearNote . cite . env)
+                          else gets (citePosition . cite . env) >>= return . compPosition s
+      chkDisambiguate s = gets disamb  >>= return . (==) (formatVariable s) . map toLower . show
+      chkLocator      v = getLocVar    >>= return . (==) v . fst
       isIbid          s = if s == "first" || s == "subsequent" then False else True
       compPosition a b
-          | "first"             <- a = if b == "first"             then True  else False
-          | "subsequent"        <- a = if b == "first"             then False else True
-          | "ibid-with-locator" <- a = if b == "ibid-with-locator" then True  else False
+          | "first"             <- a = if b == "first"               then True  else False
+          | "subsequent"        <- a = if b == "first"               then False else True
+          | "ibid-with-locator" <- a = if b == "ibid-with-locator" ||
+                                          b == "ibid-with-locator-c" then True  else False
           | otherwise                = isIbid b
 
-evalNames :: [String] -> [Name] -> String -> State EvalState [Output]
-evalNames ns nl d
-    | (s:xs) <- ns = do ags <- getAgents s
-                        k   <- getStringVar "cite-key"
-                        p   <- gets pos
-                        ops <- gets (options . env)
-                        let (b ,l ) = isEtAl ops p ags
-                            (ea,as) = if b
-                                      then (,) True  $ take l ags
-                                      else (,) False $ ags
-                        r   <- if s == "author" && ags /= [] && p == "subsequent" &&
-                                  isOptionSet "subsequent-author-substitute" ops
-                               then return $ output emptyFormatting $
-                                             getOptionVal "subsequent-author-substitute" ops
-                               else do res <- agents ea s as
-                                       if res /= []
-                                          then return . return . OContrib k res =<<
-                                               mapM (rest ags ea s)  [1 + l .. length ags]
-                                           else return []
-                        r'  <- evalNames xs nl d
-                        return $ if r /= [] && r' /= []
-                                 then r ++ [ODel d] ++ r'
-                                 else cleanOutput (r ++ r')
-    | otherwise    = return []
-    where
-      agents ea s l = concatMapM (formatNames ea s l) nl
-      rest l ea s n = agents (if n == length l then False else ea) s $ take n l
-      etAlMin     s = read . getOptionVal s
-      isEtAl o p ags
-          | p /= "first"
-          , isOptionSet    "et-al-subsequent-min"       o
-          , isOptionSet    "et-al-subsequent-use-first" o
-          , len <- etAlMin "et-al-subsequent-min"       o
-          , length ags >  1
-          , length ags >= len = (,) True $ etAlMin "et-al-subsequent-use-first" o
-          | isOptionSet    "et-al-min"       o
-          , isOptionSet    "et-al-use-first" o
-          , len <- etAlMin "et-al-min"       o
-          , length ags >  1
-          , length ags >= len = (,) True $ etAlMin "et-al-use-first" o
-          | otherwise         = (False,  0)
-
-evalDate :: [DatePart] -> [String] -> State EvalState [Output]
-evalDate dp s = do tm <- gets $ filter ((==) "month-" . take 6 . fst . fst) . terms . env
-                   sf <- getStringVar "year-suffix"
-                   concatMap (formatDate sf tm dp) <$> mapM getDateVar s
-
--- | If the first parameter is 'True' the plural form will be retrieved.
-getTerm :: Bool -> Form -> String -> State EvalState String
-getTerm b f s = maybe [] g . lookup (s,f) <$> gets (terms  . env) -- FIXME: vedere i fallback
-    where g = if b then snd else fst
-
-getStringVar :: String -> State EvalState String
-getStringVar
-    = getVar [] getStringValue
-
-getDateVar :: String -> State EvalState [RefDate]
-getDateVar
-    = getVar [] getDateValue
-    where
-      getDateValue val
-          | Just v <- fromValue val = v
-          | otherwise               = []
-
-getLocVar :: String -> State EvalState (String,String)
-getLocVar s
-    = (show &&& locString) <$> getVar NoneLoc getLocValue s
-    where
-      getLocValue val
-          | Just v <- fromValue val = v
-          | otherwise               = NoneLoc
-
-getVar :: a -> (Value -> a) -> String -> State EvalState a
-getVar a f s
-    = withRefMap $ maybe a f . lookup (formatVariable s)
-
-getAgents :: String -> State EvalState [Agent]
-getAgents s
-    = do
-      mv <- withRefMap (lookup s)
-      case mv of
-        Just v -> case fromValue v of
-                    Just x -> consumeVariable s >> return x
-                    _      -> return []
-        _      -> return []
-
-getFormattedValue :: String -> Form -> Formatting -> Value -> [Output]
-getFormattedValue s f fm val
-    | Just v <- fromValue val :: Maybe String    = output  fm v
-    | Just v <- fromValue val :: Maybe Locator   = output  fm (locString v)
+getFormattedValue :: [Option] -> Form -> Formatting -> Value -> [Output]
+getFormattedValue o f fm val
+    | Just v <- fromValue val :: Maybe String    = rtfParser fm v
     | Just v <- fromValue val :: Maybe Int       = output  fm (if v == 0 then [] else show v)
     | Just v <- fromValue val :: Maybe CNum      = if v == 0 then [] else [OCitNum (unCNum v) fm]
-    | Just v <- fromValue val :: Maybe [RefDate] = formatDate s [] defaultDate v
-    | Just v <- fromValue val :: Maybe [Agent]   = concatMap (formatName True f fm defaultNameFormatting) v
+    | Just v <- fromValue val :: Maybe [RefDate] = formatDate (EvalSorting emptyCite) [] [] sortDate v
+    | Just v <- fromValue val :: Maybe [Agent]   = concatMap (formatName (EvalSorting emptyCite) True f
+                                                              fm nameOpts []) v
     | otherwise                                  = []
-
-getStringValue :: Value -> String
-getStringValue val
-    | Just v <- fromValue val = v
-    | otherwise               = []
-
-getOptionVal :: String -> [Option] -> String
-getOptionVal s = fromMaybe [] . lookup s
-
-isOptionSet :: String -> [Option] -> Bool
-isOptionSet s = maybe False (not . null) . lookup s
-
-isVarSet :: String -> State EvalState Bool
-isVarSet = getVar False isValueSet
-
-withRefMap :: (ReferenceMap -> a) -> State EvalState a
-withRefMap f = return . f =<< gets ref
-
-formatNames :: Bool -> String -> [Agent] -> Name -> State EvalState [Output]
-formatNames et s as n
-    | Name      f fm nf d <- n = return . delim nf d =<< (++) (names f fm nf) <$> et_al fm
-    | NameLabel f fm i  p <- n = when' (isVarSet s) $ formatLabel f fm i (isPlural p $ length as) s
-    | otherwise                = return []
     where
-      et_al fm = if not et then return [] else return . output fm =<< getTerm False Long "et-al"
-      names f fm nf
-          | "first" <- nameAsSortOrder nf, (a:xs) <- as = formatName True f fm nf a ++
-                                                          concatMap (formatName False f fm nf) xs
-          | "all"   <- nameAsSortOrder nf               = concatMap (formatName True  f fm nf) as
-          | otherwise                                   = concatMap (formatName False f fm nf) as
-      delim nf d x
-          | True  <- et
-          , length x >  1 = addDelim d x
-          | "always" <- delimiterPrecedesLast nf
-          , length x == 2 = addDelim d (init x) ++ ODel (d <> andStr nf) : [last x]
-          | length x == 2 = addDelim d (init x) ++ ODel (     andStr nf) : [last x]
-          | length x >  2 = addDelim d (init x) ++ ODel (d <> andStr nf) : [last x]
-          | otherwise     = addDelim d x
-      andStr nf
-          | "text"   <- andConnector nf = " and "
-          | "symbol" <- andConnector nf = " & "
-          | otherwise                   = []
-      isPlural  p = (&&) p . (<) 1
+      nameOpts = ("name-as-sort-order","all") : o
+      sortDate = [ DatePart "year"  "numeric-leading-zeros" "" emptyFormatting
+                 , DatePart "month" "numeric-leading-zeros" "" emptyFormatting
+                 , DatePart "day"   "numeric-leading-zeros" "" emptyFormatting]
 
--- | Generate the 'Agent's names applying et-al options, with all
--- possible permutations to disambiguate colliding citations.
-formatName :: Bool -> Form -> Formatting -> NameFormatting -> Agent -> [Output]
-formatName b f fm nf n
-    | Person {} <- n
-    , Short     <- f = return $ OName  short        rest         fm
-    | Person {} <- n = return $ OName (long given') [long given] fm
-    | Entity  s <- n = output fm s
-    | otherwise      = []
+rtfTags :: [(String, (String,Formatting))]
+rtfTags =
+    [("b"                      , ("b"   , ef {fontWeight    = "bold"      }))
+    ,("i"                      , ("i"   , ef {fontStyle     = "italic"    }))
+    ,("sc"                     , ("sc"  , ef {fontVariant   = "small-caps"}))
+    ,("sup"                    , ("sup" , ef {verticalAlign = "sub"       }))
+    ,("sub"                    , ("sub" , ef {verticalAlign = "sub"       }))
+    ,("span class=\"nocase\""  , ("span", ef {noCase        = True        }))
+    ,("span class=\"nodecor\"" , ("span", ef {noDecor       = True        }))
+    ]
     where
-      rest = [ family $ concatMap addPnt (givenName n)
-             , long given]
-      addSpace = flip (++) (if b then [] else " ")
-      addPnt x = if x /= [] then head x : ". " else []
-      format x = procList x initia
-      initia x = if initializeWith nf /= []
-                 then head x : initializeWith nf
-                 else addSpace x
-      long   g = if b
-                 then family [] ++ sortSeparator nf ++ g
-                 else family g
-      short    = family []
-      family x = namePrefix n <+> (x ++ articular n <+> familyName n <+> nameSuffix n)
-      given'   = concatMap  format (givenName n)
-      given    = addSpace $ concat (givenName n)
+      ef = emptyFormatting
 
-formatLabel :: Form -> Formatting -> Bool -> Bool -> String -> State EvalState [Output]
-formatLabel f fm i p s
-    | "locator" <- s = when' (isVarSet s) $ do
-                       (l,v) <- getLocVar s
-                       format l ('-' `elem` v)
-    | "page"    <- s = when' (isVarSet s) $ do
-                       v <- getStringVar s
-                       format s ('-' `elem` v)
-    | otherwise      = format s p
+rtfParser :: Formatting -> String -> [Output]
+rtfParser _ [] = []
+rtfParser fm s
+    = either (const [OStr s fm]) (return . flip Output fm . concat) $
+      parse (manyTill parser eof) "" s
     where
-      format t b = return . output fm =<< flip (++) period <$> getTerm (b && p) f t
-      period     = if i then "." else []
+      parser = parseText <|> parseMarkup
 
-formatDate :: String -> [TermMap] -> [DatePart] -> [RefDate] -> [Output]
-formatDate s tm dp date
-    | [d] <- date = concatMap (formatDatePart d) dp
-    | otherwise   = []
-    where
-      addZero n = if length n == 1 then '0' : n else n
-      formatDatePart (RefDate y m d o) (DatePart n f fm)
-          | "year"  <- n, y /= 0  = return $ OYear (formatYear  f $ show y) s fm
-          | "month" <- n, m /= 0  = output fm      (formatMonth f $ show m)
-          | "day"   <- n, d /= 0  = output fm      (formatDay   f $ show d)
-          | "other" <- n, o /= [] = output fm      o
-          | otherwise             = []
-      formatYear f y
-          | "short"   <- f = drop 2 y
-          | otherwise      = y
-      formatMonth f m
-          | "short"   <- f = getMonth $ flip (++) "." . fst
-          | "long"    <- f = getMonth fst
-          | "numeric" <- f = m
-          | otherwise      = addZero m
-          where
-            getMonth g = maybe m g $ lookup ("month-" ++ addZero m, read $ toRead f) tm
-      formatDay f d
-          | "numeric-leading-zeros" <- f = addZero d
-          | "ordinal"               <- f = d ++ ordinal
-          | otherwise                    = d
-          where
-            ordinal = case last d of
-                        '1' -> "st"
-                        '2' -> "nd"
-                        '3' -> "rd"
-                        _   -> "th"
+      parseText = do
+        x  <- many $ noneOf "<'\"`"
+        xs <- option [] parseMarkup
+        ys <- option [] parseQuotes
+        return (OStr x emptyFormatting : xs ++ ys)
 
-output :: Formatting -> String -> [Output]
-output fm s = if s /= "" then [OStr s fm] else []
+      parseMarkup = do
+        m   <- string "<" >> manyTill anyChar (try $ string ">")
+        res <- case lookup m rtfTags of
+                 Just tf -> do r <- manyTill anyChar $ try $ string $ "</" ++ fst tf ++ ">"
+                               return [Output (rtfParser emptyFormatting r) (snd tf)]
+                 Nothing -> do r <- many $ noneOf "<"
+                               return [OStr ("<" ++ m ++ ">" ++ r) emptyFormatting]
+        return [Output res emptyFormatting]
 
-appendOutput :: Formatting -> [Output] -> [Output]
-appendOutput fm xs = if xs /= [] then [Output xs fm] else []
+      parseQuotes = choice [parseQ "'" "'"
+                           ,parseQ "\"" "\""
+                           ,parseQ "``" "''"
+                           ,parseQ "`" "'"
+                           ]
+      parseQ a b = do
+        q <- string a >> manyTill anyChar (try $ string b)
+        return [Output (rtfParser emptyFormatting q) (emptyFormatting {quotes = True})]
 
-outputList :: Formatting -> Delimiter -> [Output] -> [Output]
-outputList fm d = appendOutput fm . addDelim d . cleanOutput
+formatTitle :: Form -> Formatting -> State EvalState [Output]
+formatTitle f fm
+    | Short <- f = getIt "short-title" "title"
+    | otherwise  = getIt "title" "short-title"
+    where
+      getIt x fb = do
+        o <- gets (options . env)
+        r <- getVar [] (getFormattedValue o f fm) x
+        case r of
+          [] -> getVar [] (getFormattedValue o f fm) fb
+          _  -> return r
 
-cleanOutput :: [Output] -> [Output]
-cleanOutput = filter isNotEmpty
+formatNumber :: NumericForm -> Formatting -> String -> State EvalState [Output]
+formatNumber f fm s
+    | or (map isDigit s) = do tm <- gets (terms . env)
+                              return . output fm . format tm . filter isDigit $ s
+    | otherwise          = do return . output fm $ s
     where
-      isNotEmpty (OStr "" _) = False
-      isNotEmpty _           = True
+      format tm = case f of
+                    Ordinal     -> ordinal tm
+                    LongOrdinal -> longOrdinal tm
+                    Roman       -> if readNum s < 6000 then roman else id
+                    _           -> id
 
-addDelim :: String -> [Output] -> [Output]
-addDelim d = foldr (\x xs -> if length xs < 1 then x : xs else x : ODel d : xs) []
+      roman     = foldr (++) [] . reverse . map (uncurry (!!)) . zip romanList .
+                  map (readNum . return) . take 4 . reverse
+      romanList = [[ "", "i", "ii", "iii", "iv", "v", "vi", "vii", "viii", "ix" ]
+	          ,[ "", "x", "xx", "xxx", "xl", "l", "lx", "lxx", "lxxx", "xc" ]
+	          ,[ "", "c", "cc", "ccc", "cd", "d", "dc", "dcc", "dccc", "cm" ]
+	          ,[ "", "m", "mm", "mmm", "mmmm", "mmmmm"]
+                  ]
 
-consumeVariable :: String -> State EvalState ()
-consumeVariable s
-    = do b <- gets consume
-         when b $ modify $ \st -> st { ref = f (ref st) }
-      where f rm = case elemIndex (formatVariable s) (map fst rm) of
-                     Just  i -> take i rm ++ [(formatVariable s,Value Empty)] ++ drop (i + 1) rm
-                     Nothing -> rm
+formatRange :: Formatting -> String -> State EvalState [Output]
+formatRange _ [] = return []
+formatRange fm p = do
+  ops <- gets (options . env)
+  let opt = getOptionVal "page-range-format" ops
+      splitRange = second (dropWhile (== '-')) . break (== '-')
+      pages = map splitRange . split (== ',') $ p
+      format a b = if b /= []
+                   then flip Output emptyFormatting [ OStr a emptyFormatting, OPan [EnDash]
+                                                    , OStr b emptyFormatting]
+                   else flip Output emptyFormatting [ OStr a emptyFormatting]
+      result = case opt of
+                 "expanded" -> map (uncurry format . uncurry expandedRange) pages
+                 "chicago"  -> map (uncurry format . uncurry chicagoRange ) pages
+                 "minimal"  -> map (uncurry format . uncurry minimalRange ) pages
+                 _          -> [OStr p emptyFormatting]
+  return [flip Output fm $ addDelim ", " result]
 
-consuming :: State EvalState a -> State EvalState a
-consuming f = setConsume >> f >>= \a -> unsetConsume >> return a
-    where setConsume   = modify $ \s -> s {consume = True }
-          unsetConsume = modify $ \s -> s {consume = False}
+expandedRange :: String -> String -> (String, String)
+expandedRange sa [] = (sa,[])
+expandedRange sa sb = (p ++ reverse nA', reverse nB')
+    where
+      (nA,pA) = reverse >>> break isLetter >>> reverse *** reverse $ sa
+      (nB,pB) = reverse >>> break isLetter >>> reverse *** reverse $ sb
+      zipNum x y = zipWith (\a b -> if b == '+' then (a,a) else (a,b))
+                           (reverse x ++ take 10 (repeat '*'))
+                   >>> unzip >>> filter (/= '*') *** filter (/= '*') $
+                   (reverse y ++ repeat '+')
+      checkNum a b = let a' = take (length b) a
+                     in  readNum a' > readNum b
+      (p,(nA',nB'))
+          = case () of
+              _ | pA /= []
+                , checkNum nA nB       -> (,) [] $ (reverse $ pA ++ nA, reverse $ pB ++ nB)
+                | pA /= pB
+                , last' pA == last' pB -> (,) pA $ second (flip (++) (last' pA)) $ zipNum nA nB
+                | pA == pB             -> (,) pA $ second (flip (++) (last' pA)) $ zipNum nA nB
+                | pB == []             -> (,) pA $ second (flip (++) (last' pA)) $ zipNum nA nB
+                | otherwise            -> (,) [] $ (reverse $ pA ++ nA, reverse $ pB ++ nB)
 
-when' :: Monad m => m Bool -> m [a] -> m [a]
-when' p f = whenElse p f (return [])
+minimalRange :: String -> String -> (String, String)
+minimalRange sa sb
+    = res
+    where
+      (a,b) = expandedRange sa sb
+      res   = if length a == length b
+              then second (filter (/= '+')) $ unzip $
+                   zipWith (\x y -> if x == y then (x,'+') else (x,y)) a b
+              else (a,b)
 
-whenElse :: Monad m => m Bool -> m a -> m a -> m a
-whenElse b f g = b >>= \ bool -> if bool then f else g
+chicagoRange :: String -> String -> (String, String)
+chicagoRange sa sb
+    = case () of
+        _ | length sa < 3    -> expandedRange sa sb
+          | '0':'0':_ <- sa' -> expandedRange sa sb
+          | _  :'0':_ <- sa' -> minimalRange  sa sb
+          | _  :a2:as <- sa'
+          , b1:b2:bs  <- sb'
+          , comp as bs       -> if a2 == b2
+                                then (sa, [b2,b1])
+                                else minimalRange sa sb
 
-concatMapM :: (Monad m, Functor m, Eq b) => (a -> m [b]) -> [a] -> m [b]
-concatMapM f l = concat . filter (/=[]) <$> mapM f l
+          | _:a2:a3:_:[] <- sa'
+          , _:b2:b3:_    <- sb' -> if a3 /= b3 && a2 /= b2
+                                   then expandedRange sa sb
+                                   else minimalRange  sa sb
+          | otherwise           -> minimalRange sa sb
+      where
+        sa' = reverse sa
+        sb' = reverse sb
+        comp a b = let b' = takeWhile isDigit b
+                   in take (length b') a == b'
 
-formatVariable :: String -> String
-formatVariable = foldr f []
-    where f x xs = if x == '_' then '-' : xs else toLower x : xs
+last' :: [a] -> [a]
+last' = foldl (\_ x -> [x]) []
 
-head' :: [a] -> [a]
-head' = foldr (\x _ -> [x]) []
+trim :: String -> String
+trim = unwords . words
 
-trace ::  String -> State EvalState ()
-trace d = modify $ \s -> s { debug = d : debug s }
+split :: (Char -> Bool) -> String -> [String]
+split _ [] = []
+split f s  = let (l, s') = break f s
+             in  trim l : case s' of
+                            []      -> []
+                            (_:s'') -> split f s''
diff --git a/src/Text/CSL/Eval/Common.hs b/src/Text/CSL/Eval/Common.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Eval/Common.hs
@@ -0,0 +1,164 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Eval.Common
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The CSL implementation
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Eval.Common where
+
+import Control.Arrow ( (&&&), (>>>) )
+import Control.Applicative ( (<$>) )
+import Control.Monad.State
+import Data.Char ( toLower )
+import Data.List ( elemIndex )
+import Data.Maybe
+
+import Text.CSL.Reference
+import Text.CSL.Style
+
+data EvalState
+    = EvalState
+      { ref      :: ReferenceMap
+      , env      :: Environment
+      , debug    :: [String]
+      , mode     :: EvalMode
+      , disamb   :: Bool
+      , consume  :: Bool
+      , consumed :: [String]
+      , edtrans  :: Bool
+      , etal     :: [[Output]]
+      , contNum  :: [Agent]
+      , lastName :: [Output]
+      } deriving ( Show )
+
+data Environment
+    = Env
+      { cite    :: Cite
+      , terms   :: [TermMap]
+      , macros  :: [MacroMap]
+      , dates   :: [Element]
+      , options :: [Option]
+      , names   :: [Element]
+      } deriving ( Show )
+
+data EvalMode
+    = EvalSorting Cite
+    | EvalCite    Cite
+    | EvalBiblio  String -- the reference position
+      deriving ( Show, Eq )
+
+getCite :: EvalMode -> Cite
+getCite (EvalCite c) = c
+getCite _            = emptyCite
+
+isSorting :: EvalMode -> Bool
+isSorting m = case m of EvalSorting _ -> True; _ -> False
+
+-- | If the first parameter is 'True' the plural form will be retrieved.
+getTerm :: Bool -> Form -> String -> State EvalState String
+getTerm b f s = maybe [] g . lookup (s,f') <$> gets (terms  . env) -- FIXME: vedere i fallback
+    where g  = if b then snd else fst
+          f' = case f of NotSet -> Long; _ -> f
+
+getStringVar :: String -> State EvalState String
+getStringVar
+    = getVar [] getStringValue
+
+getDateVar :: String -> State EvalState [RefDate]
+getDateVar
+    = getVar [] getDateValue
+    where
+      getDateValue val
+          | Just v <- fromValue val = v
+          | otherwise               = []
+
+getLocVar :: State EvalState (String,String)
+getLocVar = gets (env >>> cite >>> citeLabel &&& citeLocator)
+
+getVar :: a -> (Value -> a) -> String -> State EvalState a
+getVar a f s
+    = withRefMap $ maybe a f . lookup (formatVariable s)
+
+getAgents :: String -> State EvalState [Agent]
+getAgents s
+    = do
+      mv <- withRefMap (lookup s)
+      case mv of
+        Just v -> case fromValue v of
+                    Just x -> consumeVariable s >> return x
+                    _      -> return []
+        _      -> return []
+
+getAgents' :: String -> State EvalState [Agent]
+getAgents' s
+    = do
+      mv <- withRefMap (lookup s)
+      case mv of
+        Just v -> case fromValue v of
+                    Just x -> return x
+                    _      -> return []
+        _      -> return []
+
+getStringValue :: Value -> String
+getStringValue val
+    | Just v <- fromValue val = v
+    | otherwise               = []
+
+getOptionVal :: String -> [Option] -> String
+getOptionVal s = fromMaybe [] . lookup s
+
+isOptionSet :: String -> [Option] -> Bool
+isOptionSet s = maybe False (not . null) . lookup s
+
+isVarSet :: String -> State EvalState Bool
+isVarSet s = if s /= "locator"
+             then getVar False isValueSet s
+             else getLocVar >>= return . (/=) "" . snd
+
+withRefMap :: (ReferenceMap -> a) -> State EvalState a
+withRefMap f = return . f =<< gets ref
+
+formatVariable :: String -> String
+formatVariable = foldr f []
+    where f x xs = if x == '_' then '-' : xs else toLower x : xs
+
+consumeVariable :: String -> State EvalState ()
+consumeVariable s
+    = do b <- gets consume
+         when b $ modify $ \st -> st { consumed = s : consumed st }
+
+consuming :: State EvalState a -> State EvalState a
+consuming f = setConsume >> f >>= \a -> doConsume >> unsetConsume >> return a
+    where setConsume   = modify $ \s -> s {consume = True, consumed = [] }
+          unsetConsume = modify $ \s -> s {consume = False }
+          doConsume    = do sl <- gets consumed
+                            modify $ \st -> st { ref = remove (ref st) sl }
+          remove rm sl
+              | (s:ss) <- sl = case elemIndex (formatVariable s) (map fst rm) of
+                                 Just  i -> let nrm = take i rm ++
+                                                      [(formatVariable s,Value Empty)] ++
+                                                      drop (i + 1) rm
+                                            in  remove nrm ss
+                                 Nothing ->     remove  rm ss
+              | otherwise    = rm
+
+when' :: Monad m => m Bool -> m [a] -> m [a]
+when' p f = whenElse p f (return [])
+
+whenElse :: Monad m => m Bool -> m a -> m a -> m a
+whenElse b f g = b >>= \ bool -> if bool then f else g
+
+concatMapM :: (Monad m, Functor m, Eq b) => (a -> m [b]) -> [a] -> m [b]
+concatMapM f l = concat . filter (/=[]) <$> mapM f l
+
+trace ::  String -> State EvalState ()
+trace d = modify $ \s -> s { debug = d : debug s }
diff --git a/src/Text/CSL/Eval/Date.hs b/src/Text/CSL/Eval/Date.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Eval/Date.hs
@@ -0,0 +1,170 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Eval.Date
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The CSL implementation
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Eval.Date where
+
+import Control.Applicative ( (<$>) )
+import Control.Monad.State
+
+import Text.CSL.Eval.Common
+import Text.CSL.Eval.Output
+import Text.CSL.Parser ( toRead )
+import Text.CSL.Reference
+import Text.CSL.Style
+import Text.Pandoc.Definition ( Inline (Str,EnDash) )
+
+evalDate :: Element -> State EvalState [Output]
+evalDate (Date s f fm dl dp dp') = do
+  tm <- gets $ terms . env
+  k  <- getStringVar "ref-id"
+  em <- gets mode
+  let updateFM (Formatting aa ab ac ad ae af ag ah ai aj ak al am an)
+               (Formatting _  _  bc bd be bf bg bh _  bj bk _ _ _) =
+                   Formatting aa ab (updateS ac bc)
+                                    (updateS ad bd)
+                                    (updateS ae be)
+                                    (updateS af bf)
+                                    (updateS ag bg)
+                                    (updateS ah bh)
+                                    ai
+                                    (updateS aj bj)
+                                    (if bk /= ak then bk else ak)
+                                    al am an
+      updateS a b = if b /= a && b /= [] then b else a
+  case f of
+    NoFormDate -> return . outputList fm dl . concatMap (formatDate em k tm dp) =<< mapM getDateVar s
+    _          -> do Date _ _ lfm ldl ldp _ <- getDate f
+                     let go dps = return . outputList (updateFM fm lfm) (if ldl /= [] then ldl else dl) .
+                                  concatMap (formatDate em k tm dps)
+                         update l x@(DatePart a b c d) =
+                             case filter ((==) a . dpName) l of
+                               (DatePart _ b' c' d':_) -> DatePart a (updateS  b b')
+                                                                     (updateS  c c')
+                                                                     (updateFM d d')
+                               _                       -> x
+                         updateDP = map (update dp) ldp
+                         date     = mapM getDateVar s
+                     case dp' of
+                       "year-month" -> go (filter ((/=) "day"  . dpName) updateDP) =<< date
+                       "year"       -> go (filter ((==) "year" . dpName) updateDP) =<< date
+                       _            -> go                                updateDP  =<< date
+
+evalDate _ = return []
+
+getDate :: DateForm -> State EvalState Element
+getDate f = do
+  x <- filter (\(Date _ df _ _ _ _) -> df == f) <$> gets (dates . env)
+  case x of
+    [x'] -> return x'
+    _    -> return $ Date [] NoFormDate emptyFormatting [] [] []
+
+formatDate :: EvalMode -> String -> [TermMap] -> [DatePart] -> [RefDate] -> [Output]
+formatDate em k tm dp date
+    | [d]     <- date = concatMap (formatDatePart False d) dp
+    | (a:b:_) <- date = concat $ (start a b ++ end a b ++ coda b)
+    | otherwise       = []
+    where
+      start a b = map (formatDatePart False a) . init          . diff a b $ dp
+      end   a b = map (formatDatePart True  a) . return . last . diff a b $ dp
+      coda    b = map (formatDatePart False b) dp
+      diff  a b = filter (flip elem (diffDate a b) . dpName)
+      diffDate (RefDate ya ma _ da _ _)
+               (RefDate yb mb _ db _ _) = case () of
+                                            _ | ya /= yb  -> ["year","month","day"]
+                                              | ma /= mb  -> ["month","day"]
+                                              | da /= db  -> ["day"]
+                                              | otherwise -> ["year","month","day"]
+
+      term f t = let f' = if f `elem` ["verb", "short", "verb-short", "symbol"]
+                          then read $ toRead f
+                          else Long
+                 in maybe [] fst $ lookup (t, f') tm
+
+      addZero n = if length n == 1 then '0' : n else n
+      addZeros  = reverse . take 5 . flip (++) (repeat '0') . reverse
+      formatDatePart False (RefDate y m e d _ _) (DatePart n f _ fm)
+          | "year"  <- n, y /= [] = return $ OYear (formatYear  f y) k fm
+          | "month" <- n, m /= [] = output fm      (formatMonth f m)
+          | "day"   <- n, d /= [] = output fm      (formatDay   f d)
+          | "month" <- n, m == []
+                        , e /= [] = output fm $ term f ("season-0" ++ e)
+
+      formatDatePart True (RefDate y m e d _ _) (DatePart n f rd fm)
+          | "year"  <- n, y /= [] = OYear (formatYear  f y) k (fm {suffix = []}) : formatDelim
+          | "month" <- n, m /= [] = output (fm {suffix = []}) (formatMonth f m) ++ formatDelim
+          | "day"   <- n, d /= [] = output (fm {suffix = []}) (formatDay   f d) ++ formatDelim
+          | "month" <- n, m == []
+                        , e /= [] = output (fm {suffix = []}) $ term f ("season-0" ++ e)
+          where
+            formatDelim = if rd == "-" then [OPan [EnDash]] else [OPan [Str rd]]
+
+      formatDatePart _ (RefDate _ _ _ _ o _) (DatePart n _ _ fm)
+          | "year"  <- n, o /= [] = output fm o
+          | otherwise             = []
+
+      formatYear f y
+          | "short" <- f = drop 2 y
+          | isSorting em
+          , iy < 0       = '-' : addZeros (tail y)
+          | isSorting em = addZeros y
+          | iy < 0       = show (abs iy) ++ term [] "bc"
+          | length y < 4
+          , iy /= 0      = y ++ term [] "ad"
+          | iy == 0      = []
+          | otherwise    = y
+          where
+            iy = readNum y
+      formatMonth f m
+          | "short"   <- f = getMonth fst
+          | "long"    <- f = getMonth fst
+          | "numeric" <- f = m
+          | otherwise      = addZero m
+          where
+            getMonth g = maybe m g $ lookup ("month-" ++ addZero m, read $ toRead f) tm
+      formatDay f d
+          | "numeric-leading-zeros" <- f = addZero d
+          | "ordinal"               <- f = ordinal tm d
+          | otherwise                    = d
+
+ordinal :: [TermMap] -> String -> String
+ordinal _ [] = []
+ordinal tm s
+    = case last s of
+        '1' -> s ++ term "1"
+        '2' -> s ++ term "2"
+        '3' -> s ++ term "3"
+        _   -> s ++ term "4"
+    where
+      term t = maybe [] fst $ lookup ("ordinal-0" ++ t, Long) tm
+
+longOrdinal :: [TermMap] -> String -> String
+longOrdinal _ [] = []
+longOrdinal tm s
+    | num > 10 ||
+      num == 0  = ordinal tm s
+    | otherwise = case last s of
+                    '1' -> term "01"
+                    '2' -> term "02"
+                    '3' -> term "03"
+                    '4' -> term "04"
+                    '5' -> term "05"
+                    '6' -> term "06"
+                    '7' -> term "07"
+                    '8' -> term "08"
+                    '9' -> term "09"
+                    _   -> term "10"
+    where
+      num    = readNum s
+      term t = maybe [] fst $ lookup ("long-ordinal-" ++ t, Long) tm
diff --git a/src/Text/CSL/Eval/Names.hs b/src/Text/CSL/Eval/Names.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Eval/Names.hs
@@ -0,0 +1,325 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Eval.Names
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The CSL implementation
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Eval.Names where
+
+import Control.Applicative ( (<$>) )
+import Control.Monad.State
+import Data.Char ( toUpper, isLower, isSpace )
+import Data.List ( nub )
+
+import Text.CSL.Eval.Common
+import Text.CSL.Eval.Output
+import Text.CSL.Output.Plain
+import Text.CSL.Parser ( toRead )
+import Text.CSL.Reference
+import Text.CSL.Style
+import Text.Pandoc.Definition
+
+evalNames :: Bool -> [String] -> [Name] -> String -> State EvalState [Output]
+evalNames skipEdTrans ns nl d
+    | [sa,sb] <- ns, not skipEdTrans
+    , sa == "editor" && sb == "translator" ||
+      sb == "editor" && sa == "translator" = do
+        aa <- getAgents' sa
+        ab <- getAgents' sa
+        if aa == ab
+           then modify (\s -> s { edtrans = True }) >>
+                evalNames True [sa] nl d
+           else evalNames True  ns  nl d
+    | (s:xs) <- ns = do
+        resetEtal
+        ags <- getAgents s
+        k   <- getStringVar "ref-id"
+        p   <- gets (citePosition . cite . env)
+        ops <- gets (options . env)
+        r   <- if s == "author" && ags /= [] && p == "subsequent" &&
+                  isOptionSet "subsequent-author-substitute" ops
+               then return $ output emptyFormatting $
+                    getOptionVal "subsequent-author-substitute" ops
+               else do res <- agents p            s ags
+                       st  <- get
+                       fb  <- agents "subsequent" s ags
+                       put st
+                       if res /= []
+                          then return . return . OContrib k s res fb =<< gets etal
+                          else return []
+        r'  <- evalNames skipEdTrans xs nl d
+        num <- gets contNum
+        return $ if r /= [] && r' /= []
+                 then count num (r ++ [ODel $ delim ops] ++ r')
+                 else count num $ cleanOutput (r ++ r')
+    | otherwise = return []
+    where
+      agents p s a = concatMapM (formatNames (hasEtAl nl) d p s a) nl
+      delim    ops = if d == [] then getOptionVal "names-delimiter" ops else d
+      resetEtal    = modify (\s -> s { etal = [] })
+      count  num x = if hasCount nl && num /= []
+                     then [OContrib [] [] [ONum (length num) emptyFormatting] [] []]
+                     else x
+      hasCount     = or . query hasCount'
+      hasCount' n
+          | Name Count _ _ _ _  <- n = [True]
+          | otherwise                = [False]
+
+-- | The 'Bool' is 'True' when formatting a name with a final "et-al".
+-- The first 'String' represents the position and the second the role
+-- (e.i. editor, translator, etc.).
+formatNames :: Bool -> Delimiter -> String -> String -> [Agent] -> Name -> State EvalState [Output]
+formatNames ea del p s as n
+    | Name f _ ns _ _ <- n, Count <- f = do
+        b <- isBib <$> gets mode
+        o <- gets (options . env) >>= return . mergeOptions ns
+        modify $ \st -> st { contNum = nub $ (++) (take (snd $ isEtAl b o p as) as) $ contNum st }
+        return []
+
+    | Name f fm ns d np <- n = do
+        b <- isBib <$> gets mode
+        o <- gets (options . env) >>= return . mergeOptions ns
+        m <- gets mode
+        let odel  = if del /= [] then del else getOptionVal "name-delimiter" o
+            del'  = if d   /= [] then d   else if odel == [] then ", " else odel
+            (_,i) = isEtAl b o p as
+            form  = case f of
+                      NotSet -> case getOptionVal "name-form" o of
+                                  [] -> Long
+                                  x  -> read $ toRead x
+                      _      -> f
+            genName x = do etal' <- formatEtAl o ea "et-al" fm del' x
+                           if etal' == []
+                              then do t <- getTerm False Long "and"
+                                      return $ delim t o del' $ format m o form fm np x
+                              else do return $ (addDelim del' $ format m o form fm np x) ++ etal'
+        setLastName o $ formatName m False f fm o np (last as)
+        updateEtal =<< mapM genName [1 + i .. length as]
+        genName i
+
+    | NameLabel f fm pl <- n = when' (isVarSet s) $ do
+        b <- gets edtrans
+        res <- formatLabel f fm (isPlural pl $ length as) $ if b then "editortranslator" else s
+        modify $ \st -> st { edtrans = False }
+        updateEtal [res]
+        return res
+
+    | EtAl fm t <- n = do
+        et <- gets etal
+        o <- gets (options . env)
+        let i = length as - length et
+            t' = if null t then "et-al" else t
+        r <- mapM (et_al o False t' fm del) [i .. length as]
+        let (r',r'') = case r of
+                         (x:xs) -> ( x,xs ++ [])
+                         _      -> ([],      [])
+        updateEtal r''
+        return r'
+
+    | otherwise = return []
+    where
+      isBib (EvalBiblio _) = True
+      isBib  _             = False
+      updateEtal x = modify $ \st ->
+                     let x' = if length x == 1 then repeat $ head x else x
+                     in st { etal = if etal st /= []
+                                    then map (uncurry (++)) . zip (etal st) $ x'
+                                    else x
+                           }
+      isWithLastName os
+          | "true" <-       getOptionVal "et-al-use-last"  os
+          , em <- readNum $ getOptionVal "et-al-min"       os
+          , uf <- readNum $ getOptionVal "et-al-use-first" os
+          , em - uf > 1 = True
+          | otherwise   = False
+      setLastName os x
+          | as /= []
+          , isWithLastName os = modify $ \st -> st { lastName = x}
+          | otherwise         = return ()
+
+      format m os f fm np i
+          | (a:xs) <- take i as  = formatName m True  f fm os np  a ++
+                        concatMap (formatName m False f fm os np) xs
+          | otherwise = concatMap (formatName m True  f fm os np) . take i $ as
+      delim t os d x
+          | "always" <- getOptionVal "delimiter-precedes-last" os
+          , length x == 2 = addDelim d (init x) ++ ODel (d <> andStr t os) : [last x]
+          | length x == 2 = addDelim d (init x) ++ ODel (andStr'   t d os) : [last x]
+          | "never" <- getOptionVal "delimiter-precedes-last" os
+          , length x >  2 = addDelim d (init x) ++ ODel (andStr'   t d os) : [last x]
+          | length x >  2 = addDelim d (init x) ++ ODel (d <> andStr t os) : [last x]
+          | otherwise     = addDelim d x
+      andStr t os
+          | "text"   <- getOptionVal "and" os = " " ++ t ++ " "
+          | "symbol" <- getOptionVal "and" os = " & "
+          | otherwise                          = []
+      andStr' t d os = if andStr t os == [] then d else andStr t os
+
+      formatEtAl o b t fm d i = do
+        ln <- gets lastName
+        if isWithLastName o
+           then case () of
+                  _ | (length as - i) == 1 -> et_al o b t fm d i -- is that correct? FIXME later
+                    | (length as - i) >  1 -> return $ [ODel d, OPan [Ellipses], OSpace] ++ ln
+                    | otherwise            -> return []
+           else et_al o b t fm d i
+      et_al o b t fm d i
+          = when' (gets mode >>= return . not . isSorting) $
+            if b || length as <= i
+            then return []
+            else case getOptionVal "delimiter-precedes-et-al" o of
+                   "never"  -> return . (++) [OSpace] . output fm =<< getTerm False Long t
+                   "always" -> return . (++) [ODel d] . output fm =<< getTerm False Long t
+                   _        -> if i > 1
+                               then return . (++) [ODel d] . output fm =<< getTerm False Long t
+                               else return . (++) [OSpace] . output fm =<< getTerm False Long t
+
+-- | The first 'Bool' is 'True' if we are evaluating the bibliography.
+-- The 'String' is the cite position. The function also returns the
+-- number of contributors to be displayed.
+isEtAl :: Bool -> [Option] -> String -> [Agent] -> (Bool, Int)
+isEtAl b os p as
+    | p /= "first"
+    , isOptionSet    "et-al-subsequent-min"       os
+    , isOptionSet    "et-al-subsequent-use-first" os
+    , le  <- etAlMin "et-al-subsequent-min"
+    , le' <- etAlMin "et-al-subsequent-use-first"
+    , length as >= le
+    , length as >  le' = (,) True le'
+    | isOptionSet'    "et-al-min"       "et-al-subsequent-min"
+    , isOptionSet'    "et-al-use-first" "et-al-subsequent-use-first"
+    , le  <- etAlMin' "et-al-min"       "et-al-subsequent-min"
+    , le' <- etAlMin' "et-al-use-first" "et-al-subsequent-use-first"
+    , length as >= le
+    , length as >  le' = (,) True le'
+    | isOptionSet'    "et-al-min"       "et-al-subsequent-min"
+    , le  <- etAlMin' "et-al-min"       "et-al-subsequent-min"
+    , length as >= le
+    , length as >    1 = (,) True le
+    | otherwise        = (,) False $ length as
+    where
+      etAlMin  x   = read $ getOptionVal x os
+      etAlMin' x y = if b then etAlMin x else read $ getOptionVal' x y
+
+      isOptionSet'  s1 s2 = if b
+                            then isOptionSet s1 os
+                            else or $ (isOptionSet s1 os) : [(isOptionSet s2 os)]
+      getOptionVal' s1 s2 = if null (getOptionVal s1 os)
+                            then getOptionVal s2 os
+                            else getOptionVal s1 os
+
+isPlural :: Plural -> Int -> Bool
+isPlural p l
+    = case p of
+        Always     -> True
+        Never      -> False
+        Contextual -> l > 1
+
+-- | Generate the 'Agent's names applying et-al options, with all
+-- possible permutations to disambiguate colliding citations. The
+-- 'Bool' indicate whether we are formatting the first name or not.
+formatName :: EvalMode -> Bool -> Form -> Formatting -> [Option] -> [NamePart] -> Agent -> [Output]
+formatName m b f fm ops np n
+    | Short     <- f = return $ OName (show n)  shortName       disambdata fm
+    | otherwise      = return $ OName (show n) (longName given) disambdata fm
+    where
+      form    s = case filter (\(NamePart n' _) -> n' == s) np of
+                    NamePart _ fm':_ -> fm' { prefix = []
+                                            , suffix = [] }
+                    _                -> emptyFormatting
+
+      hasHyphen = not . null . filter (== '-')
+      hyphen    = if getOptionVal "initialize-with-hyphen" ops == "false"
+                  then getOptionVal "initialize-with" ops
+                  else filter (not . isSpace) $ getOptionVal "initialize-with" ops  ++ "-"
+      initial x = if getOptionVal "initialize-with" ops /= [] && (not . and . map isLower $ x)
+                  then addIn x $ getOptionVal "initialize-with" ops
+                  else " " ++ x
+      addIn x i = if hasHyphen x
+                  then head (       takeWhile (/= '-') x) : hyphen ++
+                       head (tail $ dropWhile (/= '-') x) : i
+                  else head x : i
+
+      sortSepar = if getOptionVal "sort-separator" ops == []
+                  then [OStr "," (form "family"),OSpace]
+                  else [OStr (getOptionVal "sort-separator" ops) (form "family")]
+      dropping  = if    droppingPart n /= [] then [OStr (   droppingPart n) (form "family")] else []
+      nonDrop   = if nonDroppingPart n /= [] then [OStr (nonDroppingPart n) (form "family")] else []
+
+      suff      = if commaSuffix n && nameSuffix n /= []
+                  then suffCom
+                  else suffNoCom
+      when_ c o = if c /= [] then o else []
+      suffCom   = when_ (nameSuffix n) [OStr (", " ++ nameSuffix n) fm]
+      suffNoCom = when_ (nameSuffix n) [OSpace,OStr (nameSuffix n) fm]
+      given     = when_ (givenName  n) [OStr (unwords' . map initial $ givenName n) (form "given")]
+      givenLong = when_ (givenName  n) [OStr (unwords' $ givenName n) (form "given")]
+      givenInit = when_ (givenName  n) [OStr (unwords' . map initial $ givenName n) (form "given")]
+      family    = when_ (familyName n) [OStr (familyName n) (form "family")]
+
+      shortName = nonDrop <++> family
+      longName g = if isSorting m
+                   then case getOptionVal "demote-non-dropping-particle" ops of
+                          "never"     -> nonDrop <++> family <++> dropping <++> g ++ suffCom
+                          _           -> family <++> dropping <++> nonDrop <++> g ++ suffCom
+                   else if (b && getOptionVal "name-as-sort-order" ops == "first") ||
+                           getOptionVal "name-as-sort-order" ops == "all"
+                        then case getOptionVal "demote-non-dropping-particle" ops of
+                               "never"     -> nonDrop <++> family ++ sortSepar ++ g <++> dropping ++ suffCom
+                               "sort-only" -> nonDrop <++> family ++ sortSepar ++ g <++> dropping ++ suffCom
+                               _           -> family ++ sortSepar ++ g <++> dropping <++> nonDrop ++ suffCom
+                        else g <++> dropping <++> nonDrop <++> family ++ suff
+
+      disWithGiven = getOptionVal "disambiguate-add-givenname" ops == "true"
+      initialize   = not . null . getOptionVal "initialize-with" $ ops
+      isLong       = f /= Short && initialize
+      givenRule    = getOptionVal "givenname-disambiguation-rule" ops
+      disambdata   = case () of
+                       _ | "all-names-with-initials"    <- givenRule
+                         , disWithGiven, Short <- f, initialize    -> [longName givenInit]
+                         | "primary-name-with-initials" <- givenRule
+                         , disWithGiven, Short <- f, initialize, b -> [longName givenInit]
+                         | disWithGiven, Short <- f, b
+                         , "primary-name" <- givenRule -> [longName givenInit, longName givenLong]
+                         | disWithGiven, Short <- f
+                         , "all-names"    <- givenRule -> [longName givenInit, longName givenLong]
+                         | disWithGiven, Short <- f
+                         , "by-cite"      <- givenRule -> [longName givenInit, longName givenLong]
+                         | disWithGiven, isLong        -> [longName givenLong]
+                         | otherwise                   -> []
+
+unwords' :: [String] -> String
+unwords' = unwords . words . foldr concatWord []
+    where
+      concatWord w ws = if w /= [] && last w == '.'
+                        then w ++     ws
+                        else w ++ ' ':ws
+
+formatLabel :: Form -> Formatting -> Bool -> String -> State EvalState [Output]
+formatLabel f fm p s
+    | "locator" <- s = when' (gets (citeLocator . cite . env) >>= return . (/=) []) $ do
+                       (l,v) <- getLocVar
+                       format l ('-' `elem` v)
+    | "page"    <- s = when' (isVarSet s) $ do
+                       v <- getStringVar s
+                       format  s ('-' `elem` v)
+    | "ibid"    <- s = format' s p
+    | otherwise      = format  s p
+    where
+      format      = form id
+      format' t b = gets (citePosition . cite . env) >>= \po ->
+                    if po == "ibid-with-locator-c" || po == "ibid-c"
+                    then form capital t b
+                    else form id t b
+      form  g t b = return . output fm =<< g . period <$> getTerm (b && p) f t
+      period      = if stripPeriods fm then filter (/= '.') else id
+      capital   x = toUpper (head x) : (tail x)
diff --git a/src/Text/CSL/Eval/Output.hs b/src/Text/CSL/Eval/Output.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Eval/Output.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Eval.Output
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The CSL implementation
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Eval.Output where
+
+import Text.CSL.Style
+
+output :: Formatting -> String -> [Output]
+output fm s
+    | ' ':xs <- s = OSpace : output fm xs
+    | []     <- s = []
+    | otherwise   = [OStr s fm]
+
+appendOutput :: Formatting -> [Output] -> [Output]
+appendOutput fm xs = if xs /= [] then [Output xs fm] else []
+
+outputList :: Formatting -> Delimiter -> [Output] -> [Output]
+outputList fm d = appendOutput fm . addDelim d
+
+cleanOutput :: [Output] -> [Output]
+cleanOutput = flatten
+    where
+      flatten [] = []
+      flatten (o:os)
+          | ONull       <- o     = flatten os
+          | Output [] _ <- o     = flatten os
+          | OStr []   _ <- o     = flatten os
+          | Output xs f <- o
+          , f == emptyFormatting = flatten xs ++ flatten os
+          | otherwise            = o : flatten os
+
+addDelim :: String -> [Output] -> [Output]
+addDelim d = foldr (\x xs -> if length xs < 1 then x : xs else check x xs) []
+    where
+      check x xs
+          | ONull <- x = xs
+          | otherwise  = x : ODel d : xs
+
+noOutputError :: Output
+noOutputError = OStr "[CSL STYLE ERROR: reference with no printed form.]" emptyFormatting
+
+noBibDataError :: Cite -> Output
+noBibDataError c = OStr ("[CSL BIBLIOGRAPHIC DATA ERROR: reference " ++ show (citeId c) ++ " not found.]")
+                   emptyFormatting
+
+(<++>) :: [Output] -> [Output] -> [Output]
+[] <++> o  = o
+o  <++> [] = o
+o1 <++> o2 = o1 ++ [OSpace] ++ o2
diff --git a/src/Text/CSL/Input/Bibutils.hs b/src/Text/CSL/Input/Bibutils.hs
--- a/src/Text/CSL/Input/Bibutils.hs
+++ b/src/Text/CSL/Input/Bibutils.hs
@@ -16,75 +16,70 @@
     ) where
 
 import Text.CSL.Reference
+import Text.CSL.Input.Json
 import Text.CSL.Input.MODS
+import System.FilePath ( takeExtension, (</>) )
 
 #ifdef USE_BIBUTILS
 import Data.Char
 import System.Directory ( getTemporaryDirectory, removeFile )
-import System.FilePath ( takeExtension, (</>) )
 import System.IO
 import Text.Bibutils
 #endif
 
--- | Read a file with a bibliographic database of the format specified
--- by the 'String'. If the 'String' is empty the file extension will
--- be used to identify the format.
+-- | Read a file with a bibliographic database. The database format
+-- is recognized by the file extension.
 --
--- Supported formats are: @\"mods\"@, @\"bibtex\"@, @\"biblatex\"@,
--- @\"ris\"@, @\"endnote\"@, @\"endnotexml\"@, @\"isi\"@,
--- @\"medline\"@, and @\"copac\"@.
-readBiblioFile :: FilePath -> String -> IO [Reference]
+-- Supported formats are: @json@, @mods@, @bibtex@, @biblatex@, @ris@,
+-- @endnote@, @endnotexml@, @isi@, @medline@, and @copac@.
+readBiblioFile :: FilePath -> IO [Reference]
 #ifdef USE_BIBUTILS
-readBiblioFile f m
-    |   [] <- m = let mode = case takeExtension (map toLower f) of
-                               ".mods"    -> mods_in
-                               ".bib"     -> bibtex_in
-                               ".bbx"     -> biblatex_in
-                               ".ris"     -> ris_in
-                               ".enl"     -> endnote_in
-                               ".xml"     -> endnotexml_in
-                               ".wos"     -> isi_in
-                               ".medline" -> medline_in
-                               ".copac"   -> copac_in
-                               _          -> error "Bibliography format not supported."
-                  in readBiblioFile' f mode
-    | otherwise = let mode = case m of
-                               "mods"       -> mods_in
-                               "bibtex"     -> bibtex_in
-                               "biblatex"   -> biblatex_in
-                               "ris"        -> ris_in
-                               "endnote"    -> endnote_in
-                               "endnotexml" -> endnotexml_in
-                               "isi"        -> isi_in
-                               "medline"    -> medline_in
-                               "copac"      -> copac_in
-                               _            -> error "Bibliography format not supported."
-                  in readBiblioFile' f mode
+readBiblioFile f
+    = case getExt f of
+        ".mods"    -> readBiblioFile' f mods_in
+        ".bib"     -> readBiblioFile' f bibtex_in
+        ".bbx"     -> readBiblioFile' f biblatex_in
+        ".ris"     -> readBiblioFile' f ris_in
+        ".enl"     -> readBiblioFile' f endnote_in
+        ".xml"     -> readBiblioFile' f endnotexml_in
+        ".wos"     -> readBiblioFile' f isi_in
+        ".medline" -> readBiblioFile' f medline_in
+        ".copac"   -> readBiblioFile' f copac_in
+        ".json"    -> readJsonInput f
+        _          -> error $ "citeproc: the format of the bibliographic database could not be recognized\n" ++
+                              "using the file extension."
 
 #else
-readBiblioFile f m
-    | "mods" <- m = readModsColletionFile f
-    | otherwise   = error $ "Bibliography format not supported.\n" ++
-                            "citeproc-hs was not compiled with bibutils support"
+readBiblioFile f
+    | ".mods" <- getExt f = readModsCollectionFile f
+    | ".json" <- getExt f = readJsonInput f
+    | otherwise           = error $ "citeproc: Bibliography format not supported.\n" ++
+                                    "citeproc-hs was not compiled with bibutils support."
 #endif
 
+getExt :: String -> String
+getExt = takeExtension . map toLower
+
 #ifdef USE_BIBUTILS
 readBiblioFile' :: FilePath -> BiblioIn -> IO [Reference]
 readBiblioFile' fin bin
-    | bin == mods_in = readModsColletionFile fin
+    | bin == mods_in = readModsCollectionFile fin
     | otherwise      = do
    tdir  <- getTemporaryDirectory
    (f,h) <- openTempFile tdir "citeproc.txt"
    hClose h
    let tfile = tdir </> f
-   param <- bibl_initparams bin mods_out "citeproc-hs"
+   param <- bibl_initparams bin mods_out "hs-bibutils"
    bibl  <- bibl_init
-   unsetBOM   param
-   bibl_read  param bibl fin
-   bibl_write param bibl tfile
+   unsetBOM        param
+   setNoSplitTitle param
+   setCharsetIn    param bibl_charset_unicode
+   setCharsetOut   param bibl_charset_unicode
+   _ <- bibl_read  param bibl fin
+   _ <- bibl_write param bibl tfile
    bibl_free bibl
    bibl_freeparams param
-   refs <- readModsColletionFile tfile
+   refs <- readModsCollectionFile tfile
    removeFile tfile
    return refs
 #endif
diff --git a/src/Text/CSL/Input/Json.hs b/src/Text/CSL/Input/Json.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Input/Json.hs
@@ -0,0 +1,467 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Input.Json
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- A module for reading Frank's citeproc-js testsuite.
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Input.Json
+    ( toTest
+    , runTS
+    , test, test',test_
+    , runTest
+    , Test (..)
+    , mapJSArray
+    , readJsonInput
+    ) where
+
+import Control.Arrow
+import Control.Monad.State
+import Data.Generics
+import Data.Char (toLower, toUpper)
+import Foreign
+import Data.IORef
+import Data.List
+import Data.Maybe (isJust)
+import Data.Ratio
+import Data.Time
+import System.Directory
+import System.Locale
+
+import Text.ParserCombinators.Parsec
+
+import Text.JSON.Generic
+import Text.JSON.String ( runGetJSON, readJSTopType )
+
+import Paths_citeproc_hs ( getDataFileName )
+import Text.CSL.Output.Pandoc
+import Text.CSL.Output.Plain
+import Text.CSL.Reference
+import Text.CSL.Pickle ( readXmlString
+                       , readXmlFile      )
+import Text.CSL.Parser ( xpStyle, xpLocale, langBase)
+import Text.CSL.Proc
+import Text.CSL.Style
+import Text.Pandoc.Definition
+
+data Test
+    = Test
+      { testMode      :: String
+      , testInput     :: [Reference]
+      , testCSL       :: Style
+      , testResult    :: String
+      , testBibSect   :: BibOpts
+      , testCitItems  :: Maybe Citations
+      , testCitations :: Maybe Citations
+      } deriving ( Show )
+
+toTest :: JSValue -> Test
+toTest ob = Test mode input style result bibsection cites cites'
+    where
+      getObj f = case procJSObject f ob of
+                   JSObject o -> fromJSObject o
+                   _          -> error "error #217"
+      object  = getObj id
+      objectI = getObj editJsonInput
+      objectC = getObj editJsonCiteItems
+
+      look s = case lookup s object of
+                 Just (JSString x) -> fromJSString x
+                 _                 -> error $ "in test " ++ s ++ " section."
+      style  = readXmlString xpStyle $ look "csl"
+      mode   = look "mode"
+      result = look "result"
+
+      bibsection = case lookup "bibsection" objectI of
+                     Just (JSObject o) -> getBibOpts $ fromJSObject o
+                     _                 -> Select [] []
+
+      cites  = case lookup "citation_items" objectC of
+                 Just (JSArray cs) -> Just $ map readCite cs
+                 _                 -> Nothing
+      cites'  = case lookup "citations" objectC of
+                 Just (JSArray cs) -> Just $ map readJsonCitations cs
+                 _                 -> Nothing
+      readCite c = case readJSData c of
+                     Ok cite  -> cite
+                     Error er -> error ("citationItems: " ++ er)
+
+      refs r = case readJSData r of
+                 Ok ref   -> ref
+                 Error er -> error ("readJSData: " ++ er)
+
+      input  = case lookup "input" objectI of
+                 Just (JSArray ar) -> map refs ar
+                 _                 -> error $ "in test input section."
+      getFieldValue o
+          | JSObject os <- o
+          , [("field",JSString f),("value",JSString v)] <- fromJSObject os
+                       = (fromJSString f, fromJSString v)
+          | otherwise  = error "bibsection: could not parse fields and values"
+      getBibOpts o = let getSec s = case lookup s o of
+                                      Just (JSArray ar) -> map getFieldValue ar
+                                      _                 -> []
+                         select  = getSec "select"
+                         include = getSec "include"
+                         exclude = getSec "exclude"
+                         quash   = getSec "quash"
+                     in case () of
+                          _ | select  /= [] -> Select  select  quash
+                            | include /= [] -> Include include quash
+                            | exclude /= [] -> Exclude exclude quash
+                            | quash   /= [] -> Select  []      quash
+                            | otherwise     -> Select  []      []
+
+editJsonCiteItems :: (String, JSValue) -> (String, JSValue)
+editJsonCiteItems (s,j)
+    | "id"              <- s = ("citeId"        , toString j)
+    | "label"           <- s = ("citeLabel"     , toString j)
+    | "locator"         <- s = ("citeLocator"   , toString j)
+    | "note-number"     <- s = ("citeNoteNumber", toString j)
+    | "near-note"       <- s = ("nearNote"      , toJSBool j)
+    | "prefix"          <- s = ("citePrefix"    , affixes  j)
+    | "suffix"          <- s = ("citeSuffix"    , affixes  j)
+    | "suppress-author" <- s = ("suppressAuthor", toJSBool j)
+    | "author-only"     <- s = ("authorInText"  , toJSBool j)
+    | "author-in-text"  <- s = ("authorInText"  , toJSBool j)
+    | otherwise              = (s,j)
+    where
+      affixes v
+          | JSString js <- v = JSString . toJSString . show . PlainText . fromJSString $ js
+          | otherwise        = affixes $ toString v
+
+editJsonInput :: (String, JSValue) -> (String, JSValue)
+editJsonInput (s,j)
+    | "dropping-particle"     <- s = ("droppingPart"   , j)
+    | "non-dropping-particle" <- s = ("nonDroppingPart", j)
+    | "comma-suffix"          <- s = ("commaSuffix", toJSBool j)
+    | "id"                    <- s = ("refId"      , toString j)
+    | isRefDate s
+    , JSObject js <- j = (s            , JSArray (editDate $ fromJSObject js))
+    | "family"    <- s = ("familyName" , j)
+    | "suffix"    <- s = ("nameSuffix" , j)
+    | "edition"   <- s = ("edition"    , toString j)
+    | "volume"    <- s = ("volume"     , toString j)
+    | "issue"     <- s = ("issue"      , toString j)
+    | "number"    <- s = ("number"     , toString j)
+    | "page"      <- s = ("page"       , toString j)
+    | "section"   <- s = ("section"    , toString j)
+    | "given"     <- s
+    , JSString js <- j = ("givenName"  , JSArray . map (JSString . toJSString) . words $ fromJSString js)
+    | "type"      <- s
+    , JSString js <- j = ("refType"    , JSString . toJSString . format . camel $ fromJSString js)
+    | (c:cs)      <- s = (toLower c : camel cs , j)
+    | otherwise        = (s,j)
+    where
+      camel x
+          | '-':y:ys <- x = toUpper y : camel ys
+          | '_':y:ys <- x = toUpper y : camel ys
+          |     y:ys <- x =         y : camel ys
+          | otherwise     = []
+
+      format (x:xs) = toUpper x : xs
+      format     [] = []
+
+      zipDate x = zip (take (length x) ["year", "month", "day"]) . map toString $ x
+
+      editDate x = let seas = case lookup "season" x of
+                                Just o -> [("season",toString o)]
+                                _      -> []
+                       raw  = case lookup "raw" x of
+                                Just o -> [("other",o)]
+                                _      -> []
+                       lit  = case lookup "literal" x of
+                                Just o -> [("other",o)]
+                                _      -> []
+                       cir  = case lookup "circa" x of
+                                Just o -> [("circa",toString o)]
+                                _      -> []
+                       rest = flip (++) (seas ++ lit ++ raw ++ cir)
+                   in case lookup "dateParts" x of
+                        Just (JSArray (JSArray x':[])) -> [JSObject . toJSObject . rest $ zipDate x']
+                        Just (JSArray (JSArray x':
+                                       JSArray y':[])) -> [JSObject . toJSObject        $ zipDate x'
+                                                          ,JSObject . toJSObject        $ zipDate y']
+                        _                              -> [JSObject . toJSObject $ rest []]
+
+readJsonCitations :: JSValue -> [Cite]
+readJsonCitations jv
+    | JSArray (JSObject o:_) <- jv
+    , Just    (JSArray   ar) <- lookup "citationItems" (fromJSObject o )
+    , Just    (JSObject  o') <- lookup "properties"    (fromJSObject o )
+    , idx                    <- lookup "noteIndex"     (fromJSObject o')
+                = map (readCite $ readCitNum $ fmap toString idx) ar
+    | otherwise = error ("error in reading CITATIONS:\n" ++ show jv)
+    where
+      readCitNum j
+          | Just (JSString js) <- j = fromJSString js
+          | otherwise               = []
+      readCite :: String -> JSValue -> Cite
+      readCite n c = case readJSData c of
+                       Ok cite  -> cite { citeNoteNumber = n }
+                       Error er -> error ("citations: " ++ er)
+
+toString :: JSValue -> JSValue
+toString x
+    | JSString    js <- x = JSString js
+    | JSRational _ n <- x = JSString . toJSString . show $ numerator n
+    | otherwise = JSString . toJSString $ []
+
+toJSBool :: JSValue -> JSValue
+toJSBool x
+    | JSBool       b <- x = JSBool b
+    | JSRational _ n <- x = JSBool (numerator n /= 0)
+    | JSString    js <- x = JSBool (fromJSString js /= [])
+    | otherwise           = JSBool False
+
+procJSObject :: ((String, JSValue) -> (String, JSValue)) -> JSValue -> JSValue
+procJSObject f jv
+    | JSObject o <- jv = JSObject . toJSObject . map f . map (second $ procJSObject f) . fromJSObject $ o
+    | JSArray ar <- jv = JSArray  . map (procJSObject f) $ ar
+    | otherwise        = jv
+
+mapJSArray :: (JSValue -> JSValue) -> JSValue -> JSValue
+mapJSArray f jv
+    | JSArray ar <- jv = JSArray $ map (mapJSArray f) ar
+    | otherwise        = f jv
+
+isRefDate :: String -> Bool
+isRefDate = flip elem [ "issued", "event-date", "accessed", "container", "original-date"]
+
+readJSData :: (Data a) => JSValue -> Result a
+readJSData j = readType j
+             `ext1R` jList
+             `extR` (value :: Result String)
+             `extR` (value :: Result Affix )
+  where
+    value :: (JSON a) => Result a
+    value = readJSON j
+
+    jList :: (Data e) => Result [e]
+    jList = case j of
+              JSArray j' -> mapM readJSData j'
+              _          -> Error $ "fromJSON: Prelude.[] bad data: " ++ show j
+
+-- | Build a datatype from a JSON object. Uses selectFields which
+-- allows to provied default values for fields not present in the JSON
+-- object. Useble with non algebraic datatype with record fields.
+readType :: (Data a) => JSValue -> Result a
+readType (JSObject ob) = construct
+    where
+      construct = selectFields (fromJSObject ob) (constrFields con) >>=
+                  evalStateT (fromConstrM f con) . zip (constrFields con)
+
+      resType :: Result a -> a
+      resType _ = error "resType"
+
+      typ = dataTypeOf $ resType construct
+      con = indexConstr typ 1
+
+      f :: (Data a) => StateT [(String,JSValue)] Result a
+      f = do js <- get
+             case js of
+               j':js' -> do put js'
+                            lift $ readJSData (snd j')
+               []     -> lift $ Error ("construct: empty list")
+
+readType j = fromJSON j
+
+selectFields :: [(String, JSValue)] -> [String] -> Result [JSValue]
+selectFields fjs = mapM sel
+    where sel f = maybe (fb f) Ok $ lookup f fjs
+          fb  f = maybe (Error $ "selectFields: no field " ++ f) Ok $ lookup f defaultJson
+
+fromObj :: JSValue -> [(String, JSValue)]
+fromObj (JSObject o) = fromJSObject o
+fromObj _            = []
+
+defaultJson :: [(String, JSValue)]
+defaultJson = fromObj (toJSON emptyReference) ++ fromObj emptyRefDate ++
+              fromObj emptyPerson ++ fromObj emptyCite'
+    where
+      emptyRefDate = toJSON $ RefDate [] [] [] [] [] []
+      emptyPerson  = toJSON $ Agent   [] [] [] [] [] [] False
+      emptyCite'   = toJSON $ emptyCite
+
+readJsonFile :: FilePath -> IO JSValue
+readJsonFile f = readJsonString `fmap` readFile f
+
+readJsonString :: String -> JSValue
+readJsonString =
+  let rmCom = unlines . filter (\x -> not (" *" `isPrefixOf` x || "/*" `isPrefixOf` x)) . lines
+  in  either error id . runGetJSON readJSTopType . rmCom
+
+readJsonInput :: FilePath -> IO [Reference]
+readJsonInput f = do
+  js <- readJsonFile f
+  let jrefs  =  procJSObject editJsonInput js
+      refs r = case readJSData r of
+                 Ok ref   -> ref
+                 Error er -> error ("readJSData: " ++ er)
+  case jrefs of
+    JSObject o -> return . map (refs . snd) $ fromJSObject o
+    JSArray ar -> return . map (refs      ) $ ar
+    _          -> error $ "citeproc: error in reading the Json bibliographic data."
+
+readTestFile :: FilePath -> IO JSValue
+readTestFile f = do
+  s <- readFile f
+  let fields = ["CSL","RESULT","MODE","INPUT","CITATION-ITEMS","CITATIONS","BIBSECTION","BIBENTRIES"]
+      format = map (toLower . \x -> if x == '-' then '_' else x)
+  return . toJson . zip (map format fields) . map (fieldsParser s) $ fields
+
+toJson :: [(String,String)] -> JSValue
+toJson = JSObject . toJSObject . map getIt
+    where
+      getIt (s,j)
+          | s `elem` ["result","csl","mode"] = (,) s . JSString $ toJSString j
+          | s `elem` ["bibentries"]          = (,) s . JSBool   $ False
+          | j == []                          = (,) s . JSBool   $ False
+          | otherwise                        = (,) s . either error id . resultToEither $ decode j
+
+fieldsParser :: String -> String -> String
+fieldsParser s f = either (const []) id $ parse (fieldParser f) "" s
+
+fieldParser :: String -> Parser String
+fieldParser s = manyTill anyChar (try $ fieldMarkS) >>
+                manyTill anyChar (try $ fieldMarkE)
+    where
+      fieldMarkS = string   ">>" >> many (oneOf "= ") >> string s >> many (oneOf "= ") >> string ">>\n"
+      fieldMarkE = string "\n<<" >> many (oneOf "= ") >> string s >> many (oneOf "= ") >> string "<<\n"
+
+pandocBib :: [String] -> String
+pandocBib [] = []
+pandocBib s
+    = "<div class=\"csl-bib-body\">\n" ++
+      concatMap (\x -> "  " ++ "<div class=\"csl-entry\">" ++ x ++ "</div>\n") s ++
+      "</div>"
+
+pandocToHTML :: [Inline] -> String
+pandocToHTML [] = []
+pandocToHTML (i:xs)
+    | Str          s <- i = (entityToChar $ check s) ++ pandocToHTML xs
+    | Emph        is <- i = "<i>" ++ pandocToHTML is ++ "</i>" ++ pandocToHTML xs
+    | SmallCaps   is <- i = "<span style=\"font-variant:small-caps;\">" ++ pandocToHTML is ++ "</span>" ++ pandocToHTML xs
+    | Strong      is <- i = "<b>" ++ pandocToHTML is ++ "</b>" ++ pandocToHTML xs
+    | Superscript is <- i = "<sup>" ++ pandocToHTML is ++ "</sup>" ++ pandocToHTML xs
+    | Subscript   is <- i = "<sub>" ++ pandocToHTML is ++ "</sub>" ++ pandocToHTML xs
+    | Quoted _    is <- i = "“" ++ pandocToHTML is ++ "”" ++ pandocToHTML xs
+    | Space          <- i = " " ++ pandocToHTML xs
+    | EnDash         <- i = "–" ++ pandocToHTML xs
+    | Ellipses       <- i = "…" ++ pandocToHTML xs
+    | Link     is x  <- i = case snd x of
+                              "nodecor"  -> "<span style=\"font-variant:normal;\">" ++
+                                            pandocToHTML is ++ "</span>" ++ pandocToHTML xs
+                              "baseline" -> "<span style=\"baseline\">" ++
+                                            pandocToHTML is ++ "</span>" ++ pandocToHTML xs
+                              _          -> pandocToHTML is ++ pandocToHTML xs
+
+    | otherwise           = []
+    where
+      check ('&':[]) = "&amp;"
+      check (y  :ys) = y : check ys
+      check []       = []
+
+unlines' :: [String] -> String
+unlines'    []     = []
+unlines' (x:[])    = x
+unlines' (x:xs)    = x ++ "\n" ++ unlines' xs
+
+localeCache :: IORef [(String, Locale)]
+localeCache = unsafePerformIO $ newIORef []
+
+getCachedLocale :: String -> IO [Locale]
+getCachedLocale n = maybe [] return `fmap` lookup n `fmap` readIORef localeCache
+
+putCachedLocale :: String -> Locale -> IO ()
+putCachedLocale n t = modifyIORef localeCache $ \l -> (n, t) : l
+
+runTest :: Test -> IO (Bool,String)
+runTest t = do
+  let locale = case styleDefaultLocale $ testCSL t of
+                 x | length x == 2 -> maybe (error $ x ++ " doesn't seem a valid locale")
+                                      id (lookup x langBase)
+                   | otherwise     -> take 5 x
+  ls' <- getCachedLocale locale
+  ls  <- case ls' of
+           [] -> do l <- getDataFileName ("locales/locales-" ++ locale ++ ".xml")
+                    r <- readXmlFile xpLocale l
+                    putCachedLocale locale r
+                    return r
+           [x] -> return x
+           _   -> return $ Locale [] [] [] [] []
+  let opts   = procOpts { bibOpts = testBibSect t}
+      style' = testCSL t
+      style  = style' {styleLocale = mergeLocales (styleDefaultLocale style') ls $ styleLocale style'}
+      cites  = case (testCitations t, testCitItems t) of
+                 (Just cs, _      ) -> cs
+                 (_,       Just cs) -> cs
+                 _                  -> [map (\r -> emptyCite { citeId = refId r }) $ testInput t]
+      (BD cits bib) = citeproc opts style (testInput t) cites
+      fixCits = if isJust (testCitations t)
+                then flip (zipWith $ \c n -> ">>[" ++ show n ++ "] " ++ c) ([0..] :: [Int])
+                else id
+      output = case testMode t of
+                 "citation" -> unlines'  . fixCits . map (pandocToHTML . renderPandoc_ style) $ cits
+                 _          -> pandocBib . map (pandocToHTML . renderPandoc_ style) $ bib
+  return (output == testResult t, output)
+
+test :: FilePath -> IO Bool
+test = doTest readJsonFile 0
+
+test' :: Int -> FilePath -> IO Bool
+test' = doTest readJsonFile
+
+test_ :: Int -> FilePath -> IO Bool
+test_ = doTest readTestFile
+
+doTest :: (FilePath -> IO JSValue) -> Int -> FilePath -> IO Bool
+doTest rf v f = do
+  when (v >= 2) $ putStrLn f
+  t <- toTest `fmap` rf f
+  (r,o) <- runTest t
+  if r then return ()
+       else do let putStrLn' = when (v >= 1) . putStrLn
+               putStrLn  $ (tail .  takeWhile (/= '.') . dropWhile (/= '_')) f ++ " failed!"
+               putStrLn' "++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
+               putStrLn' $ f ++ " failed!"
+               putStrLn' "Expected:"
+               putStrLn' $ (testResult t)
+               putStrLn' "\nGot:"
+               putStrLn' $ o
+               when (v >= 3) $ putStrLn (show t)
+               putStrLn' "++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
+  return r
+
+runTS :: [String] -> Int -> FilePath -> IO ()
+runTS gs v f = do
+  st <- getCurrentTime
+  putStrLn $ (++) (formatTime defaultTimeLocale "%H:%M:%S" st) $ " <--------------START"
+  dc  <- sort `fmap` filter (isInfixOf ".json") `fmap` getDirectoryContents f
+  let groupTests = map (head . map fst &&& map snd) .
+                   groupBy (\x y -> fst x == fst y) .
+                   map (takeWhile (/= '_') &&& tail . dropWhile (/= '_'))
+      runGroups g = do putStrLn   "------------------------------------------------------------"
+                       putStrLn $ "GROUP \"" ++ fst g ++ "\" has " ++ show (length $ snd g) ++ " tests to run"
+                       putStrLn   "------------------------------------------------------------"
+                       r' <- mapM (test' v . (++) (f ++ fst g ++ "_")) $ snd g
+                       return r'
+      filterGroup = if gs /= [] then filter (flip elem gs . fst) else id
+  r <- mapM runGroups $ filterGroup $ groupTests dc
+  putStrLn " ------------------------------------------------------------"
+  putStrLn "| TEST SUMMARY:"
+  putStrLn "------------------------------------------------------------"
+  putStrLn $ "\t" ++ (show $ sum $ map length r) ++ " tests in " ++ (show $ length r) ++ " groups"
+  putStrLn $ "\t" ++ (show $ sum $ map (length . filter id ) r) ++ " successes"
+  putStrLn $ "\t" ++ (show $ sum $ map (length . filter not) r) ++ " failures"
+  et <- getCurrentTime
+  putStrLn $ (++) (formatTime defaultTimeLocale "%H:%M:%S" et) $ " <--------------END"
+  putStrLn $ "Time: " ++ show (diffUTCTime et st)
diff --git a/src/Text/CSL/Input/MODS.hs b/src/Text/CSL/Input/MODS.hs
--- a/src/Text/CSL/Input/MODS.hs
+++ b/src/Text/CSL/Input/MODS.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE PatternGuards #-}
+{-# LANGUAGE PatternGuards, CPP #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 -----------------------------------------------------------------------------
 -- |
@@ -17,36 +17,40 @@
 module Text.CSL.Input.MODS where
 
 import Text.CSL.Output.Plain ( (<+>) )
-import Text.CSL.Parser ( xpIElem, readXmlFile )
 import Text.CSL.Reference
+import Text.CSL.Pickle
+import Text.CSL.Style ( betterThen )
 
-import Text.XML.HXT.Arrow.Pickle.Xml
+import Data.Char ( isDigit, isLower )
 
-import Data.Char ( isDigit )
+#ifdef USE_HXT
+import Text.XML.HXT.Arrow.Pickle.Xml
+#endif
 
 -- | Read a file with a single MODS record.
 readModsFile :: FilePath -> IO Reference
-readModsFile f = readXmlFile xpMods f
+readModsFile = readXmlFile xpMods
 
 -- | Read a file with a collection of MODS records.
-readModsColletionFile :: FilePath -> IO [Reference]
-readModsColletionFile f = readXmlFile xpModsCollection f
+readModsCollectionFile :: FilePath -> IO [Reference]
+readModsCollectionFile = readXmlFile xpModsCollection
 
 xpModsCollection :: PU [Reference]
-xpModsCollection = xpElem "modsCollection" $ xpList xpMods
+xpModsCollection = xpIElem "modsCollection" $ xpList xpMods
 
 xpMods :: PU Reference
-xpMods = xpElem "mods" xpReference
+xpMods = xpIElem "mods" xpReference
 
 xpReference :: PU Reference
 xpReference
     = xpWrap ( \ ( ref
                 , (ck,ty,ti)
                 ,((au,ed,tr),(re,it,pu'),(co,ce))
+                ,((di',pg,vl,is),(nu,sc,ch))
                 , (di,pu,pp)
                 , (ac,uri)
                  ) ->
-               ref { citeKey          = ck `betterThen` take 10 (concat $ words ti)
+               ref { refId            = ck `betterThen` take 10 (concat $ words ti)
                    , refType          = if refType ref /= NoType then refType ref else ty
                    , title            = ti
                    , author           = au
@@ -54,32 +58,36 @@
                    , translator       = tr `betterThen` translator       ref
                    , recipient        = re `betterThen` recipient        ref
                    , interviewer      = it `betterThen` interviewer      ref
-                   , publisher        = pu `betterThen` publisher        ref `betterThen` pu'
                    , composer         = co `betterThen` composer         ref
                    , collectionEditor = ce `betterThen` collectionEditor ref
-                   , containerAuthor  = containerAuthor  ref
-                   , issued           = issued ref `betterThen` di
                    , publisherPlace   = pp `betterThen` publisherPlace   ref
+                   , containerAuthor  = containerAuthor  ref
                    , url              = uri
                    , accessed         = ac
-                   , page             = page             ref
-                   , volume           = volume           ref
-                   , issue            = issue            ref
-                   , number           = number           ref
-                   , section          = section          ref
-                   , chapterNumber    = chapterNumber    ref
+                   , issued           = issued        ref `betterThen` di `betterThen` di'
+                   , page             = page          ref `betterThen` pg
+                   , volume           = volume        ref `betterThen` vl
+                   , issue            = issue         ref `betterThen` is
+                   , number           = number        ref `betterThen` nu
+                   , section          = section       ref `betterThen` sc
+                   , chapterNumber    = chapterNumber ref `betterThen` ch
+                   , publisher        = (foldr (<+>) [] . map show $ pu)
+                                           `betterThen` publisher ref
+                                           `betterThen` (foldr (<+>) [] . map show $ pu')
                    }
              , \r -> (  r
-                     , (citeKey   r, refType          r, title          r)
+                     , (refId     r, refType          r, title          r)
                      ,((author    r, editor           r, translator     r)
-                      ,(recipient r, interviewer      r, publisher      r)
+                      ,(recipient r, interviewer      r, emptyAgents     )
                       ,(composer  r, collectionEditor r))
-                     , (issued    r, publisher        r, publisherPlace r)
+                     ,((issued  r, page  r, volume r, issue r)
+                      ,(number  r, section   r, chapterNumber r))
+                     , (issued    r, emptyAgents, publisherPlace r)
                      , (accessed  r, url              r)
                      )) $
-      xp5Tuple (xpDefault emptyReference xpRelatedItem)
+      xp6Tuple (xpDefault emptyReference xpRelatedItem)
                (xpTriple  xpCiteKey xpRefType xpTitle )
-                xpAgents xpOrigin xpUrl
+                xpAgents xpPart xpOrigin xpUrl
 
 xpCiteKey :: PU String
 xpCiteKey
@@ -93,16 +101,17 @@
     = xpDefault ([],[],[]) . xpIElem "originInfo" $
       xpTriple (xpDefault [] $ xpWrap (readDate,show) $
                 xpIElem "dateIssued" xpText0)
-               (xpDefault [] $ xpList $ xpWrap (Entity, show) $
+               (xpDefault [] $ xpList $ xpWrap (\s -> Agent [] [] [] s [] [] False, show) $
                 xpIElem "publisher" xpText0)
-               (xpDefault [] $ xpIElem "place" xpText0)
+               (xpDefault [] $ xpIElem "place" $ xpIElem "placeTerm" xpText0)
 
 xpRefType :: PU RefType
 xpRefType
     = xpDefault NoType $
-      xpWrap (readType, show) xpGenre
+      xpWrap (readType, const []) xpGenre
       where
-        readType t
+        readType [] = NoType
+        readType (t:_)
             | "conference publication" <- t = PaperConference
             | "periodical"             <- t = ArticleJournal
             | otherwise                     = Book
@@ -110,21 +119,22 @@
 xpRefType' :: PU RefType
 xpRefType'
     = xpDefault NoType $
-      xpWrap (readTypeIn, show) xpGenre
+      xpWrap (readTypeIn, const []) xpGenre
       where
+        readTypeIn  [] = NoType
         readTypeIn t
-            | "book"                   <- t = Chapter
-            | "conference publication" <- t = PaperConference
-            | otherwise                     = ArticleJournal
+            | "book"                   `elem` t = Chapter
+            | "conference publication" `elem` t = PaperConference
+            | "academic journal"       `elem` t = ArticleJournal
+            | "collection"             `elem` t = Chapter
+            | otherwise                         = ArticleJournal
 
-xpGenre :: PU String
+xpGenre :: PU [String]
 xpGenre
-    = xpWrap (concat, return) $
-      xpList $ xpIElem "genre" $
+    = xpList $ xpIElem "genre" $
       xpChoice xpZero
               (xpPair (xpDefault [] $ xpAttr "authority" xpText) xpText)
-              $ \(a,s) -> if a == "marcgt"
-                          then xpLift s else xpGenre
+              $ xpLift . snd
 
 xpRelatedItem :: PU Reference
 xpRelatedItem
@@ -141,7 +151,7 @@
                               , translator       = tr
                               , recipient        = re
                               , interviewer      = it
-                              , publisher        = pu `betterThen` pu'
+                              , publisher        = foldr (<+>) [] . map show $ pu `betterThen` pu'
                               , publisherPlace   = pp
                               , composer         = co
                               , collectionEditor = ce
@@ -155,19 +165,19 @@
                               }
              , \r -> ( (refType         r, containerTitle   r)
                      ,((containerAuthor r, editor           r, translator r)
-                      ,(recipient       r, interviewer      r, publisher  r)
+                      ,(recipient       r, interviewer      r, emptyAgents )
                       ,(composer        r, collectionEditor r))
                      ,((issued  r, page  r, volume r, issue r)
                       ,(number  r, section   r, chapterNumber r))
-                     , (issued  r, publisher r, publisherPlace r)
+                     , (issued  r, emptyAgents, publisherPlace r)
                      )) $
       xp4Tuple (xpPair  xpRefType' xpTitle)
                 xpAgents xpPart xpOrigin
 
--- FIXME: join title and subtitle correctly
+-- FIXME: join title and subtitle correctly: usare Title per shortTitle.
 xpTitle :: PU String
 xpTitle
-    = xpWrap (\(t,s) -> t <+> s, \s -> (s,[])) $
+    = xpWrap (uncurry (<+>), \s -> (s,[])) $
       xpIElem "titleInfo" $
       xpPair (xpIElem "title" xpText0)
              (xpDefault [] $ xpIElem "subTitle" xpText0)
@@ -193,18 +203,29 @@
                (\x -> if x == sa || x == sb then xpickle else xpZero)
 
 instance XmlPickler Agent where
-    xpickle = xpAlt tag ps
-        where
-          tag (Person {}) = 0
-          tag (Entity {}) = 1
-          ps = [ xpWrap ( \(gn,fm) -> Person "" gn "" "" fm ""
-                        , \(Person _ gn _ _ fn _) -> (gn,fn)) $
+    xpickle = xpWrap ( uncurry parseName
+                     , \(Agent gn _ _ fn _ _ _) -> (gn,fn)) $
                  xpAddFixedAttr "type" "personal" xpNameData
-               , xpWrap ( \(_,s) -> Entity s
-                        , \(Entity s) -> ([],s)) $
-                 xpAddFixedAttr "type" "corporate" xpNameData
-             ]
 
+-- | "von Hicks,! Jr., Michael" or "la Martine,! III, Martin B. de" or
+-- "Rossato, Jr., Andrea G. B." or "Paul, III, Juan".
+parseName :: [String] -> String -> Agent
+parseName gn fn
+    | ("!":sf:",":xs) <- gn     = parse xs (sf ++ ".") True
+    | ("!":sf    :xs) <- gn
+    , sf /= [] , last sf == ',' = parse xs  sf         True
+
+    | (sf:",":xs)     <- gn     = parse xs (sf ++ ".") False
+    | (sf    :xs)     <- gn
+    , sf /= [], last sf == ','  = parse xs  sf         False
+    | otherwise                 = parse gn  ""         False
+    where
+      parse g s b = Agent (getGiven g) (getDrop g) (getNonDrop fn) (getFamily fn) s [] b
+      getDrop     = unwords . filter (and . map isLower)
+      getGiven    = filter (not . and . map isLower)
+      getNonDrop  = getDrop . words
+      getFamily   = unwords . getGiven . words
+
 xpNameData :: PU ([String],String)
 xpNameData
     = xpWrap (readName,const []) $
@@ -261,8 +282,8 @@
 
 xpPage :: PU String
 xpPage
-    = xpChoice (xpElemWithAttrValue "detail"  "type" "page" $ xpIElem "number" xpText)
-               (xpElemWithAttrValue "extent"  "unit" "page" $
+    = xpChoice (xpElemWithAttrValue "detail" "type" "page" $ xpIElem "number" xpText)
+               (xpElemWithAttrValue "extent" "unit" "page" $
                 xpPair (xpElem "start" xpText)
                        (xpElem "end"   xpText))
                (\(s,e) -> xpLift (s ++ "-" ++ e))
@@ -275,9 +296,9 @@
              (xpDefault [] $ xpElem "url"              xpText)
 
 readDate :: String -> [RefDate]
-readDate s = if   takeWhile isDigit s /= []
-             then return $ RefDate (read $ takeWhile isDigit s) 0 0 []
+readDate s = if takeWhile isDigit s /= []
+             then return $ RefDate (takeWhile isDigit s) [] [] [] [] []
              else []
 
-betterThen :: Eq a => [a] -> [a] -> [a]
-betterThen a b = if a == [] then b else a
+emptyAgents :: [Agent]
+emptyAgents  = []
diff --git a/src/Text/CSL/Output/Pandoc.hs b/src/Text/CSL/Output/Pandoc.hs
--- a/src/Text/CSL/Output/Pandoc.hs
+++ b/src/Text/CSL/Output/Pandoc.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE PatternGuards #-}
+{-# LANGUAGE PatternGuards, DeriveDataTypeable #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Text.CSL.Output.Pandoc
@@ -17,103 +17,176 @@
     ( renderPandoc
     , renderPandocStrict
     , renderPandoc'
-    , Pandoc (..), Meta (..)
+    , renderPandoc_
+    , headInline
+    , initInline
+    , tailFirstInlineStr
+    , toCapital
+    , startWithPunct
+    , endWithPunct
     ) where
 
-import Data.Char ( toUpper, toLower )
-import Data.List
+import Data.Char ( toUpper, toLower, isPunctuation )
 
 import Text.CSL.Style
 import Text.CSL.Output.Plain
+import Text.Pandoc.Definition
 
 -- | With a 'Style' and the formatted output generate a 'String' in
 -- the native 'Pandoc' formats (i.e. immediately readable by pandoc).
-renderPandoc :: Style -> [FormattedOutput] -> String
-renderPandoc _
-    = show . clean . concatMap (render False)
+renderPandoc :: Style -> [FormattedOutput] -> [Inline]
+renderPandoc s
+    = proc (clean s) . concatMap (render s False)
 
 -- | Same as 'renderPandoc', but the output is wrapped in a pandoc
 -- paragraph block.
-renderPandoc' :: Style -> [FormattedOutput] -> String
-renderPandoc' _
-    = show . Para . clean . concatMap (render False)
+renderPandoc' :: Style -> [FormattedOutput] -> Block
+renderPandoc' s
+    = Para . proc (clean s) . concatMap (render s False)
 
+-- | For the testsuite: we use 'Link' and 'Strikeout' to store
+-- "nocase" and "nodecor" rich text formatting classes.
+renderPandoc_ :: Style -> [FormattedOutput] -> [Inline]
+renderPandoc_ s
+    = proc (clean' s) . concatMap (render s False)
+
 -- | Same as 'renderPandoc', but will not clean up the produced
 -- output.
-renderPandocStrict :: [FormattedOutput] -> String
-renderPandocStrict
-    = show . cleanStrict . concatMap (render True)
+renderPandocStrict :: Style -> [FormattedOutput] -> [Inline]
+renderPandocStrict s
+    = concatMap (render s True)
 
-render :: Bool -> FormattedOutput -> [Inline]
-render _ (Delimiter   s) = toStr s
-render b (FO  str fm xs) = toStr (prefix fm) ++
-                           quote (formatted ++ rest) ++
-                           toStr (suffix fm)
+render :: Style -> Bool -> FormattedOutput -> [Inline]
+render _ _ (FPan i) = i
+render _ _ (FDel s) = toStr s
+render sty b fo
+    | FS str fm    <- fo = toPandoc fm $ toStr str
+    | FN str fm    <- fo = toPandoc fm $ toStr $ rmZeros str
+    | FO     fm xs <- fo = toPandoc fm $ rest xs
+    | otherwise = []
     where
-      formatted = font_variant . font . text_case . trim $ str
-      rest      = procList xs $ concatMap (render b)
-      trim      = if b then id          else unwords . words
-      cleaner   = if b then cleanStrict else clean
+      addSuffix f i
+          | suffix f /= []
+          , elem (head $ suffix f) ",.:?!"
+          , [head $ suffix f] == lastInline i = i ++ toStr (tail $ suffix f)
+          | suffix f /= []                    = i ++ toStr (       suffix f)
+          | otherwise                         = i
 
-      quote   i = if i /= [] && quotes fm
-                  then [Quoted DoubleQuote . valign . cleaner $ i]
-                  else valign (cleaner i)
+      toPandoc f i = addSuffix f $ toStr (prefix f) ++
+                     (format f . quote f . proc cleanStrict $ i)
+      format     f = font_variant f . font f . text_case f
+      rest      xs = procList xs $ concatMap (render sty b)
+      quote    f i = if i /= [] && quotes f
+                    then [Quoted DoubleQuote . valign f $ i]
+                    else valign f i
 
-      capital s = toUpper (head s) : (tail s)
+      setCase f i
+          | Str     s <- i = Str $ f s
+          | otherwise      = i
+      setCase' f i
+          | Link s r <- i = Link (map (setCase f) s) r
+          | otherwise     = setCase f i
 
-      text_case s
-          | "capitalize-first" <- textCase fm = procList s capital
-          | "capitalize-all"   <- textCase fm = procList s $ unwords . map capital . words
-          | "lowercase"        <- textCase fm = map toLower s
-          | "uppercase"        <- textCase fm = map toUpper s
-          | otherwise                         = s
+      toCap s = if s /= [] then toUpper (head s) : map toLower (tail s) else []
+      text_case _ [] = []
+      text_case fm a@(i:is)
+          | noCase fm                         = [escape "nocase" a]
+          | "lowercase"        <- textCase fm = map (setCase' $ map toLower) a
+          | "uppercase"        <- textCase fm = map (setCase' $ map toUpper) a
+          | "capitalize-all"   <- textCase fm = map (setCase  $ unwords . map toCap . words) a
+          | "capitalize-first" <- textCase fm = [setCase capitalize i] ++ is
+          | "sentence"         <- textCase fm = [setCase toCap      i] ++
+                                                map (setCase $ map toLower) is
+          | otherwise                         = a
 
-      font_variant i
+      font_variant fm i
           | "small-caps" <- fontVariant fm = [SmallCaps i]
           | otherwise                      = i
 
-      font
-          | "italic"  <- fontStyle  fm = return . Emph   . toStr
-          | "oblique" <- fontStyle  fm = return . Emph   . toStr
-          | "normal"  <- fontStyle  fm
-          , "bold"    <- fontWeight fm = return . Strong . toStr
-          | otherwise                  =                   toStr
+      font fm
+          | noDecor fm                 = return . escape "nodecor"
+          | "italic"  <- fontStyle  fm = return . Emph
+          | "oblique" <- fontStyle  fm = return . Emph
+          | "bold"    <- fontWeight fm = return . Strong
+          | otherwise                  = id
 
-      valign i
-          |  "sup"  <- verticalAlign fm = [Superscript i]
-          |  "sub"  <- verticalAlign fm = [Subscript   i]
-          | otherwise                   =              i
+      valign _ [] = []
+      valign fm i
+          | "sup"      <- verticalAlign fm = [Superscript i] -- FIXME
+          | "sub"      <- verticalAlign fm = [Subscript   i]
+          | "baseline" <- verticalAlign fm = [escape "baseline" i]
+          | otherwise                      = i
 
+      rmZeros = dropWhile (== '0')
+      escape s x = Link x (s,s) -- we use a link to store some data
+
 toStr :: String -> [Inline]
-toStr s
-    | ' ':xs <- s = Space : toStr xs
-    |  x :xs <- s = cleanStrict $ Str [x] : toStr xs
-    | otherwise   = []
+toStr = toStr' . entityToChar
+    where
+      toStr' s
+          |' ':xs <- s = Space   : toStr' xs
+          | x :xs <- s = Str [x] : toStr' xs
+          | otherwise   = []
 
 cleanStrict :: [Inline] -> [Inline]
-cleanStrict    []  = []
+cleanStrict []  = []
 cleanStrict (i:is)
-    | Str []  <- i      =         cleanStrict is
-    | Str " " <- i      = Space : cleanStrict is
-    | Str sa  <- i, is /= []
-    , Str sb <- head is = Str (sa ++ sb) : cleanStrict (tail is)
-    | otherwise         =              i : cleanStrict is
+    | Str []    <- i  =                  cleanStrict is
+    | Str " "   <- i  = Space          : cleanStrict is
+    | Str sa    <- i
+    , Str sb:xs <- is = Str (sa ++ sb) : cleanStrict xs
+    | otherwise       =              i : cleanStrict is
 
-clean :: [Inline] -> [Inline]
-clean    []  = []
-clean (i:is) = if lastInline [i] == headInline is && isPunct
-               then i : clean (tailInline is)
-               else i : clean is
-    where isPunct = and . map (flip elem ";,:. ") $ headInline is
+clean :: Style -> [Inline] -> [Inline]
+clean _   []  = []
+clean s (i:is)
+    | Superscript x <- i = split (isLink "baseline") (return . Superscript) x
+    | Subscript   x <- i = split (isLink "baseline") (return . Subscript  ) x
+    | Link      x _ <- i = clean' s (x ++ clean s is)
+    | otherwise          = clean' s (i :  clean s is)
+    where
+      unwrap f ls
+          | Link x _ : _ <- ls = clean' s x
+          |        _ : _ <- ls = f ls
+          | otherwise          = []
+      isLink l il
+          | Link _ (x,y) <- il = x == l && x == y
+          | otherwise          = False
 
+      split _ _ [] = []
+      split f g xs = let (y, r) = break f xs
+                     in concatMap (unwrap g) [y, head' r] ++ split f g (tail' r)
+
+clean' :: Style -> [Inline] -> [Inline]
+clean' _   []  = []
+clean' s (i:is)
+    | Quoted t inls <- i
+    , punctIn s = case headInline is of
+                    [x] -> if isPunctuation x
+                           then Quoted t (inls ++ [Str [x]]) : clean' s (tailInline is)
+                           else i : clean' s is
+                    _   -> i : clean' s is
+    | otherwise = if lastInline [i] == headInline is && isPunct
+                  then i : clean' s (tailInline is)
+                  else i : clean' s is
+    where
+      punctIn = or . query punctIn'
+      punctIn' n
+          | ("punctuation-in-quote","true") <- n = [True]
+          | otherwise                            = [False]
+
+      isPunct = and . map (flip elem ".,;:!? ") $ headInline is
+
+endWithPunct, startWithPunct :: [Inline] -> Bool
+endWithPunct   = and . map (`elem` ".,;:!?") . lastInline
+startWithPunct = and . map (`elem` ".,;:!?") . headInline
+
 headInline :: [Inline] -> String
 headInline [] = []
 headInline (i:_)
     | Str s <- i = head' s
     | Space <- i = " "
     | otherwise  = headInline $ getInline i
-    where
-      head' s = if s /= [] then [head s] else []
 
 lastInline :: [Inline] -> String
 lastInline [] = []
@@ -125,53 +198,58 @@
       last' s = if s /= [] then [last s] else []
 lastInline (_:xs) = lastInline xs
 
-tailInline :: [Inline] -> [Inline]
-tailInline [] = []
-tailInline (i:xs)
-    | Str          s <- i = cleanStrict $ Str         (tail'       s) : xs
-    | Emph        is <- i = cleanStrict $ Emph        (tailInline is) : xs
-    | SmallCaps   is <- i = cleanStrict $ SmallCaps   (tailInline is) : xs
-    | Strong      is <- i = cleanStrict $ Strong      (tailInline is) : xs
-    | Superscript is <- i = cleanStrict $ Superscript (tailInline is) : xs
-    | Subscript   is <- i = cleanStrict $ Subscript   (tailInline is) : xs
-    | Quoted q    is <- i = cleanStrict $ Quoted q    (tailInline is) : xs
-    | Space          <- i = cleanStrict $ xs
+initInline :: [Inline] -> [Inline]
+initInline [] = []
+initInline (i:[])
+    | Str          s <- i = return $ Str         (init'       s)
+    | Emph        is <- i = return $ Emph        (initInline is)
+    | Strong      is <- i = return $ Strong      (initInline is)
+    | Superscript is <- i = return $ Superscript (initInline is)
+    | Subscript   is <- i = return $ Subscript   (initInline is)
+    | Quoted q    is <- i = return $ Quoted q    (initInline is)
+    | SmallCaps   is <- i = return $ SmallCaps   (initInline is)
+    | Strikeout   is <- i = return $ Strikeout   (initInline is)
+    | Link      is t <- i = return $ Link        (initInline is) t
     | otherwise           = []
     where
-      tail' s = if s /= [] then tail s else []
+      init' s = if s /= [] then init s else []
+initInline (i:xs) = i : initInline xs
 
+tailInline :: [Inline] -> [Inline]
+tailInline inls
+    | (i:t) <- inls
+    , Space <- i = t
+    | otherwise  = tailFirstInlineStr inls
+
+tailFirstInlineStr :: [Inline] -> [Inline]
+tailFirstInlineStr = mapHeadInline tail'
+
+toCapital :: [Inline] -> [Inline]
+toCapital = mapHeadInline capitalize
+
+mapHeadInline :: (String -> String) -> [Inline] -> [Inline]
+mapHeadInline _ [] = []
+mapHeadInline f (i:xs)
+    | Str         [] <- i =                      mapHeadInline f xs
+    | Str          s <- i = Str         (f                s)   : xs
+    | Emph        is <- i = Emph        (mapHeadInline f is)   : xs
+    | Strong      is <- i = Strong      (mapHeadInline f is)   : xs
+    | Superscript is <- i = Superscript (mapHeadInline f is)   : xs
+    | Subscript   is <- i = Subscript   (mapHeadInline f is)   : xs
+    | Quoted q    is <- i = Quoted q    (mapHeadInline f is)   : xs
+    | SmallCaps   is <- i = SmallCaps   (mapHeadInline f is)   : xs
+    | Strikeout   is <- i = Strikeout   (mapHeadInline f is)   : xs
+    | Link      is t <- i = Link        (mapHeadInline f is) t : xs
+    | otherwise           = []
+
 getInline :: Inline -> [Inline]
 getInline i
     | Emph        is <- i = is
-    | SmallCaps   is <- i = is
     | Strong      is <- i = is
+    | Strikeout   is <- i = is
     | Superscript is <- i = is
     | Subscript   is <- i = is
     | Quoted _    is <- i = is
+    | SmallCaps   is <- i = is
+    | Link      is _ <- i = is
     | otherwise           = []
-
-data Pandoc
-    = Pandoc Meta [Block]
-      deriving (Eq, Read, Show)
-
-data Meta
-    = Meta [Inline] [String] String
-      deriving (Eq, Show, Read)
-
-data Block
-    = Para  [Inline]
-    deriving (Show, Eq, Read)
-
-data Inline
-    = Str               String  -- ^ Text (string)
-    | Emph             [Inline] -- ^ Emphasized text (list of inlines)
-    | SmallCaps        [Inline] -- ^ Small caps text (list of inlines)
-    | Strong           [Inline] -- ^ Strongly emphasized text (list of inlines)
-    | Superscript      [Inline] -- ^ Superscripted text (list of inlines)
-    | Subscript        [Inline] -- ^ Subscripted text (list of inlines)
-    | Space                     -- ^ Inter-word space
-    | Quoted QuoteType [Inline] -- ^ Quoted text (list of inlines)
-    deriving (Show, Eq, Read)
-
--- | Type of quotation marks to use in Quoted inline.
-data QuoteType = DoubleQuote deriving (Show, Eq, Read)
diff --git a/src/Text/CSL/Output/Plain.hs b/src/Text/CSL/Output/Plain.hs
--- a/src/Text/CSL/Output/Plain.hs
+++ b/src/Text/CSL/Output/Plain.hs
@@ -19,10 +19,14 @@
     , procList
     , (<+>)
     , (<>)
+    , capitalize
+    , entityToChar
+    , head'
+    , tail'
     ) where
 
+import Control.Arrow ( (&&&) )
 import Data.Char
-import Data.List
 
 import Text.CSL.Style
 
@@ -36,20 +40,25 @@
 renderPlainStrict = concatMap $ render True
 
 render :: Bool -> FormattedOutput -> String
-render _ (Delimiter   s) = s
-render b (FO  str fm xs) = prefix fm <++> format (trim str <++> rest) <++> suffix fm
+render _ (FPan i) = show i
+render _ (FDel s) = s
+render b fo
+    | (FS str fm   ) <- fo = prefix fm <++> format fm (trim   str    ) <++> suffix fm
+    | (FN str fm   ) <- fo = prefix fm <++> format fm (trim   str    ) <++> suffix fm
+    | (FO     fm xs) <- fo = prefix fm <++> format fm (trim $ rest xs) <++> suffix fm
+    | otherwise            = []
     where
-      rest      = procList xs $ concatM (render b)
+      rest  xs  = procList xs $ concatM (render b)
 
       trim      = if b then id   else unwords . words
       (<++>)    = if b then (++) else (<>)
       concatM f = foldr (<++>) [] . map f
 
-      quote   s = if s /= [] && quotes fm then "\"" ++ s ++ "\"" else s
-      capital s = toUpper (head s) : (tail s)
-      format  s = quote . text_case $ s
+      quote  f s = if s /= [] && quotes f then "\"" ++ s ++ "\"" else s
+      capital  s = toUpper (head s) : (tail s)
+      format f s = quote f . text_case f $ s
 
-      text_case s
+      text_case fm s
           | "capitalize-first" <- textCase fm = procList s capital
           | "capitalize-all"   <- textCase fm = procList s $ unwords . map capital . words
           | "lowercase"        <- textCase fm = map toLower s
@@ -70,3 +79,21 @@
     , last sa == s
     , s `elem` ";:,. " = sa ++ xs
     | otherwise        = sa ++ sb
+
+capitalize :: String -> String
+capitalize s = if s /= [] then toUpper (head s) : tail s else []
+
+entityToChar :: String -> String
+entityToChar s
+    | '&':'#':xs <- s = uncurry (:) $ parseEntity xs
+    | x      :xs <- s = x : entityToChar xs
+    | otherwise       = []
+    where
+      parseEntity  = chr . read . takeWhile isDigit &&&
+                     entityToChar . tail' . dropWhile (/= ';')
+
+head' :: [a] -> [a]
+head' = foldr (\x _ -> [x]) []
+
+tail' :: Eq a => [a] -> [a]
+tail' x = if x /= [] then tail x else []
diff --git a/src/Text/CSL/Parser.hs b/src/Text/CSL/Parser.hs
--- a/src/Text/CSL/Parser.hs
+++ b/src/Text/CSL/Parser.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE PatternGuards #-}
+{-# LANGUAGE PatternGuards, CPP #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 -----------------------------------------------------------------------------
 -- |
@@ -17,20 +17,47 @@
 module Text.CSL.Parser where
 
 import Paths_citeproc_hs ( getDataFileName )
+import Text.CSL.Reference ( readNum )
 import Text.CSL.Style
+import Text.CSL.Pickle
 
-import Control.Monad    ( unless                    )
 import Data.Char        ( isUpper, toUpper, toLower )
-import Data.List        ( elemIndex                 )
-import Data.Maybe       ( fromMaybe                 )
-import System.Directory ( doesFileExist             )
 
-import Text.XML.HXT.Arrow               hiding ( IfThen, when )
-import Text.XML.HXT.Arrow.Pickle.Schema hiding ( Name         )
-import Text.XML.HXT.Arrow.Pickle.Xml
-import qualified Text.XML.HXT.DOM.XmlNode as XN
-import qualified Text.XML.HXT.RelaxNG     as RNG
+#ifdef USE_NETWORK
+import Network.HTTP ( getResponseBody, mkRequest, RequestMethod(..) )
+import Network.Browser ( browse, setAllowRedirects, setUserAgent, request )
+import Network.URI ( parseURI, URI(..) )
+#endif
 
+-- | Read and parse a CSL style file into the internal style
+-- representation, the 'Style'.
+readCSLFile :: FilePath -> IO Style
+readCSLFile src = do
+#ifdef USE_NETWORK
+  let readURI u = do rsp <- browse $ do
+                              setAllowRedirects True
+                              setUserAgent "citeproc-hs"
+                              request $ mkRequest GET u
+                     getResponseBody (Right $ snd rsp)
+  s <- case parseURI src of
+         Just u | uriScheme u `elem` ["http:","https:"] ->
+                    readURI u >>= return . readXmlString xpStyle
+         _       -> readXmlFile xpStyle src
+#else
+  s <- readXmlFile xpStyle src
+#endif
+  l <- readLocaleFile (styleDefaultLocale s)
+  return s { styleLocale = mergeLocales (styleDefaultLocale s) l (styleLocale s)}
+
+readLocaleFile :: String -> IO Locale
+readLocaleFile s = do
+  f <- case s of
+         x | length x == 2 -> getDataFileName ("locales/locales-" ++
+                                               maybe (error $ x ++ " doesn't seem a valid locale")
+                                               id (lookup x langBase) ++ ".xml")
+           | otherwise     -> getDataFileName ("locales/locales-" ++ take 5 x ++ ".xml")
+  readXmlFile xpLocale f
+
 instance XmlPickler Layout where
     xpickle = xpWrap (uncurry3 Layout, \(Layout f d e) -> (f,d,e)) $
               xpIElem "layout" $
@@ -42,7 +69,6 @@
           tag (Choose       {}) =  0
           tag (Macro        {}) =  1
           tag (Const        {}) =  2
-          tag (PointLocator {}) =  3
           tag (Variable     {}) =  4
           tag (Term         {}) =  5
           tag (Label        {}) =  6
@@ -55,7 +81,6 @@
           ps = [ xpChoose
                , xpMacro
                , xpConst
-               , xpPointLocator
                , xpVariable
                , xpTerm
                , xpLabel
@@ -78,30 +103,31 @@
                        \ (Condition t v n d p a l) ->
                            ((unwords t,unwords v,unwords n)
                            ,(unwords d,unwords p,unwords a,unwords l))) $
-              xpPair (xpTriple (xpAttrText' "type"          )
-                               (xpAttrText' "variable"      )
-                               (xpAttrText' "is-numeric"    ))
-                     (xp4Tuple (xpAttrText' "is-dates"      )
-                               (xpAttrText' "position"      )
-                               (xpAttrText'  "disambiguate" )
-                               (xpAttrText' "locator"       ))
+              xpPair (xpTriple (xpAttrText' "type"             )
+                               (xpAttrText' "variable"         )
+                               (xpAttrText' "is-numeric"       ))
+                     (xp4Tuple (xpAttrText' "is-uncertain-date")
+                               (xpAttrText' "position"         )
+                               (xpAttrText' "disambiguate"     )
+                               (xpAttrText' "locator"          ))
 
 instance XmlPickler Formatting where
-    xpickle = xpWrap ( \(((p,s,ff),(fs,fv,fw)),(td,va,tc,d,q))
-                         -> Formatting p s ff fs fv fw td va tc d q
-                     , \(Formatting p s ff fs fv fw td va tc d q)
-                         -> (((p,s,ff),(fs,fv,fw)),(td,va,tc,d,q))) $
-              xpPair (xpPair (xpTriple (xpAttrText' "prefix"      )
-                                       (xpAttrText' "suffix"      )
-                                       (xpAttrText' "font-family" ))
-                             (xpTriple (xpAttrText' "font-style"  )
-                                       (xpAttrText' "font-variant")
-                                       (xpAttrText' "font-weight" )))
-                     (xp5Tuple (xpAttrText' "text-decoration")
-                               (xpAttrText' "vertical-align" )
-                               (xpAttrText' "text-case"      )
-                               (xpAttrText' "display"        )
-                               (xpAttrWithDefault False "quotes" xpickle))
+    xpickle = xpWrap ( \(((p,s,ff),(fs,fv,fw)),(td,va,tc,d),(q,sp))
+                         -> Formatting p s ff fs fv fw td va tc d q sp False False
+                     , \(Formatting p s ff fs fv fw td va tc d q sp _ _)
+                         -> (((p,s,ff),(fs,fv,fw)),(td,va,tc,d),(q,sp))) $
+              xpTriple (xpPair (xpTriple (xpAttrText' "prefix"      )
+                                         (xpAttrText' "suffix"      )
+                                         (xpAttrText' "font-family" ))
+                               (xpTriple (xpAttrText' "font-style"  )
+                                         (xpAttrText' "font-variant")
+                                         (xpAttrText' "font-weight" )))
+                       (xp4Tuple (xpAttrText' "text-decoration")
+                                 (xpAttrText' "vertical-align" )
+                                 (xpAttrText' "text-case"      )
+                                 (xpAttrText' "display"        ))
+                       (xpPair   (xpAttrWithDefault False "quotes"        xpickle)
+                                 (xpAttrWithDefault False "strip-periods" xpickle))
 
 instance XmlPickler Sort where
     xpickle = xpAlt tag ps
@@ -115,11 +141,14 @@
                  xpPair (xpAttrText "variable")
                         (xpAttrWithDefault "ascending" "sort" xpText)
 
-               , xpWrap ( \(v,s) -> SortMacro v (readSort s)
-                        , \(SortMacro v s) -> (v,toShow $ show s)) $
+               , xpWrap ( \(v,s,a,b,c) -> SortMacro v (readSort s) (readNum a) (readNum b) c
+                        , \(SortMacro v s a b c) -> (v,toShow $ show s,show a,show b, c)) $
                  xpElem "key" $
-                 xpPair (xpAttrText "macro")
-                        (xpAttrWithDefault "ascending" "sort" xpText)
+                 xp5Tuple (xpAttrText "macro")
+                          (xpAttrWithDefault "ascending" "sort"            xpText)
+                          (xpAttrWithDefault ""          "names-min"       xpText)
+                          (xpAttrWithDefault ""          "names-use-first" xpText)
+                          (xpAttrWithDefault ""          "names-use-last"  xpText)
                ]
 
 instance XmlPickler Bool where
@@ -133,15 +162,20 @@
     xpickle = xpWrap readable
                      (xpAttrWithDefault "numeric" "form" xpText)
 
+instance XmlPickler DateForm where
+    xpickle = xpWrap (read . toRead . flip (++) "-date", const [])
+                     (xpAttrWithDefault "no-form" "form" xpText)
+
 instance XmlPickler Match where
     xpickle = xpWrap readable
                      (xpAttrWithDefault "all" "match" xpText)
 
 instance XmlPickler DatePart where
-    xpickle = xpWrap (uncurry3 DatePart, \(DatePart s f fm) -> (s,f,fm)) $
+    xpickle = xpWrap (uncurry4 DatePart, \(DatePart s f d fm) -> (s,f,d,fm)) $
               xpElem "date-part" $
-              xpTriple (xpAttrText "name")
-                       (xpAttrWithDefault "long" "form" xpText)
+              xp4Tuple (xpAttrText "name")
+                       (xpAttrWithDefault "long" "form"            xpText)
+                       (xpAttrWithDefault "-"    "range-delimiter" xpText)
                         xpickle
 
 instance XmlPickler Name where
@@ -149,20 +183,21 @@
         where
           tag (Name      {}) = 0
           tag (NameLabel {}) = 1
-          ps = [ xpWrap (uncurry4 Name, \(Name f fm nf d) -> (f,fm,nf,d)) $
-                 xpElem "name" $ xp4Tuple xpickle xpickle xpickle xpDelimiter
-               , xpWrap (uncurry4 NameLabel, \(NameLabel f fm i p) -> (f,fm,i,p)) $
-                 xpElem  "label" $ xp4Tuple xpickle xpickle xpIncludePeriod xpPlural
+          tag (EtAl      {}) = 2
+          ps = [ xpWrap (uncurry5 Name, \(Name f fm nas d nps) -> (f,fm,nas,d,nps)) $
+                 xpElem "name"  $ xp5Tuple xpNameForm xpickle xpNameAttrs xpDelimiter xpickle
+               , xpWrap (uncurry3 NameLabel, \(NameLabel f fm p) -> (f, fm,p)) $
+                 xpElem "label" $ xpTriple xpickle xpickle xpPlural
+               , xpWrap (uncurry EtAl, \(EtAl fm t) -> (fm,t)) $
+                 xpElem "et-al" $ xpPair xpickle $ xpAttrText' "term"
                ]
+          xpNameForm = xpWrap readable $ xpAttrWithDefault "not-set" "form" xpText
 
-instance XmlPickler NameFormatting where
-    xpickle = xpWrap ( \(a,d,ns,s,i)                 -> NameFormatting a d ns s i
-                     , \(NameFormatting  a d ns s i) -> (a,d,ns,s,i)) $
-              xp5Tuple (xpAttrText' "and"                    )
-                       (xpAttrText' "delimiter-precedes-last")
-                       (xpAttrText' "name-as-sort-order"     )
-                       (xpAttrText' "sort-separator"         )
-                       (xpAttrText' "initialize-with"        )
+instance XmlPickler NamePart where
+    xpickle = xpWrap (uncurry NamePart, \(NamePart s fm) -> (s,fm)) $
+              xpElem "name-part" $
+              xpPair (xpAttrText "name")
+                      xpickle
 
 instance XmlPickler CSInfo where
     xpickle = xpWrap ( \ ((t,i,u),(a,c)) -> CSInfo t a c i u
@@ -190,14 +225,15 @@
 
 xpStyle :: PU Style
 xpStyle
-    = xpWrap ( \ ((sc,si,sl,l),(t,m,c,b))   -> Style sc si sl l t m c b
-             , \ (Style sc si sl l t m c b) -> ((sc,si,sl,l),(t,m,c,b))) $
+    = xpWrap ( \ ((v,sc,si,sl,l),(o,m,c,b))   -> Style v sc si sl l o m c b
+             , \ (Style v sc si sl l o m c b) -> ((v,sc,si,sl,l),(o,m,c,b))) $
       xpIElem "style" $
-      xpPair (xp4Tuple (xpAttrText "class")
+      xpPair (xp5Tuple (xpAttrText "version")
+                       (xpAttrText "class")
                         xpInfo
-                       (xpAttrWithDefault "en"    "xml:lang"       xpText)
-                       (xpAttrWithDefault "en-US" "default-locale" xpText))
-             (xp4Tuple (xpDefault [] xpTerms)
+                       (xpAttrWithDefault "en-US" "default-locale" xpText)
+                       (xpList xpLocale))
+             (xp4Tuple  xpStyleOpts
                         xpMacros
                         xpCitation
                        (xpOption xpBibliography))
@@ -205,13 +241,25 @@
 xpInfo :: PU (Maybe CSInfo)
 xpInfo  = xpOption . xpIElem "info" $ xpickle
 
+xpLocale :: PU Locale
+xpLocale
+    = xpWrap ( \ ((v,l),(o,t,d))   -> Locale v l o t d
+             , \ (Locale v l o t d) -> ((v,l),(o,t,d))) $
+      xpIElem "locale" $
+      xpPair (xpPair   (xpAttrText' "version" )
+                       (xpAttrText' "lang"))
+             (xpTriple (xpIElemWithDefault [] "style-options" $  xpOpt "punctuation-in-quote")
+                        xpTerms
+                        (xpList xpLocaleDate))
+
 xpTerms :: PU [TermMap]
 xpTerms
-    = xpIElem "terms" $ xpIElem "locale" $ xpList $ xpElem "term" $
+    = xpWrap (concat,return) $ xpList $
+      xpIElem "terms" $ xpList $ xpElem "term" $
       xpPair (xpPair (xpAttrText "name") xpickle)
-             (xpChoice (xpWrap (\s -> (s,s), fst)    xpText0)
-                       (xpPair (xpIElem "single"   $ xpText0)
-                               (xpIElem "multiple" $ xpText0))
+             (xpChoice (xpWrap (\s -> (s,s), fst)  xpText0)
+                       (xpPair (xpIElem "single"   xpText0)
+                               (xpIElem "multiple" xpText0))
                         xpLift)
 
 xpMacros :: PU [MacroMap]
@@ -223,19 +271,114 @@
 xpCitation
     = xpWrap (uncurry3 Citation, \(Citation o s l) -> (o,s,l)) $
       xpIElem "citation" $
-      xpTriple xpOptions xpSort xpickle
+      xpTriple xpCitOpts xpSort xpickle
 
 xpBibliography :: PU Bibliography
 xpBibliography
     = xpWrap (uncurry3 Bibliography, \(Bibliography o s l) -> (o,s,l)) $
       xpIElem "bibliography" $
-      xpTriple xpOptions xpSort xpickle
+      xpTriple xpBibOpts xpSort xpickle
 
-xpOptions :: PU [Option]
-xpOptions
-    = xpList $ xpIElem "option" $
-      xpPair (xpAttrText "name") (xpAttrText "value")
+xpOpt :: String -> PU [Option]
+xpOpt n
+    = xpWrap (\a -> filter ((/=) [] . snd) $ [(n,a)], const []) $
+      xpAttrText' n
 
+xpNamesOpt :: PU [Option]
+xpNamesOpt = xpOpt "names-delimiter"
+
+xpNameFormat :: PU [Option]
+xpNameFormat
+    = xpWrap (\(a,b,c,d,e) ->
+                  filter ((/=) [] . snd) $ [("and",a)
+                                           ,("delimiter-precedes-last",b)
+                                           ,("sort-separator",c)
+                                           ,("initialize-with",d)
+                                           ,("name-as-sort-order",e)], const ([],[],[],[],[])) $
+      xp5Tuple (xpAttrText' "and")
+               (xpAttrText' "delimiter-precedes-last")
+               (xpAttrText' "sort-separator")
+               (xpAttrText' "initialize-with")
+               (xpAttrText' "name-as-sort-order")
+
+
+xpNameAttrs :: PU NameAttrs
+xpNameAttrs
+    = xpWrap (\((a,b,c,d,e),(f,g)) ->
+                  filter ((/=) [] . snd) $ [("et-al-min",a)
+                                           ,("et-al-use-first",b)
+                                           ,("et-al-subsequent-min",c)
+                                           ,("et-al-subsequent-use-first",d)
+                                           ,("et-al-use-last",e)
+                                           ,("delimiter-precedes-et-al",f)] ++ g
+             , const (([],[],[],[],[]),([],[]))) $
+      xpPair (xp5Tuple (xpAttrText' "et-al-min")
+                       (xpAttrText' "et-al-use-first")
+                       (xpAttrText' "et-al-subsequent-min")
+                       (xpAttrText' "et-al-subsequent-use-first")
+                       (xpAttrText' "et-al-use-last")) $
+              xpPair   (xpAttrText' "delimiter-precedes-et-al")
+                       xpNameFormat
+
+xpNameOpt :: PU [Option]
+xpNameOpt
+    = xpWrap (\(a,b,c) ->
+                  filter ((/=) [] . snd) $ a ++ [("name-delimiter",b)
+                                                ,("name-form",c)], const ([],[],[])) $
+      xpTriple  xpNameAttrs
+               (xpAttrText' "name-delimiter")
+               (xpAttrText' "name-form")
+
+xpBibOpts :: PU [Option]
+xpBibOpts
+    = xpWrap ( \((a,b,c,d,e),(f,g)) ->
+                 filter ((/=) [] . snd) $ [("hanging-indent",a)
+                                          ,("second-field-align",b)
+                                          ,("subsequent-author-substitute",c)
+                                          ,("line-spacing",d)
+                                          ,("entry-spacing",e)] ++ f ++ g
+                , const (([],[],[],[],[]),([],[]))) $
+      xpPair (xp5Tuple (xpAttrText' "hanging-indent")
+                       (xpAttrText' "second-field-align")
+                       (xpAttrText' "subsequent-author-substitute")
+                       (xpAttrText' "line-spacing")
+                       (xpAttrText' "entry-spacing")) $
+             xpPair xpNameOpt xpNamesOpt
+
+xpCitOpts :: PU [Option]
+xpCitOpts
+    = xpWrap ( \((a,b,c),(d,e,f,g,h),(i,l)) ->
+                 filter ((/=) [] . snd) $ [("disambiguate-add-names",a)
+                                          ,("disambiguate-add-givenname",b)
+                                          ,("disambiguate-add-year-suffix",c)
+                                          ,("givenname-disambiguation-rule",d)
+                                          ,("collapse",e)
+                                          ,("year-suffix-delimiter",f)
+                                          ,("after-collapse-delimiter",g)
+                                          ,("near-note-distance",h)] ++ i ++ l
+                , const (([],[],[]),([],[],[],[],[]),([],[]))) $
+      xpTriple (xpTriple (xpAttrText' "disambiguate-add-names")
+                         (xpAttrText' "disambiguate-add-givenname")
+                         (xpAttrText' "disambiguate-add-year-suffix"))
+               (xp5Tuple (xpAttrText' "givenname-disambiguation-rule")
+                         (xpAttrText' "collapse")
+                         (xpAttrText' "year-suffix-delimiter")
+                         (xpAttrText' "after-collapse-delimiter")
+                         (xpAttrText' "near-note-distance"))
+               (xpPair xpNameOpt xpNamesOpt)
+
+xpStyleOpts :: PU [Option]
+xpStyleOpts
+    = xpWrap ( \((a,b,c),(d,e)) ->
+                 filter ((/=) [] . snd) $ [("page-range-format",a)
+                                          ,("demote-non-dropping-particle",b)
+                                          ,("initialize-with-hyphen",c)] ++ d ++ e
+                , const (([],[],[]),([],[]))) $
+      xpPair (xpTriple (xpAttrText' "page-range-format")
+                       (xpAttrText' "demote-non-dropping-particle")
+                       (xpAttrText' "initialize-with-hyphen")) $
+               (xpPair xpNameOpt xpNamesOpt)
+
 xpSort :: PU [Sort]
 xpSort
     = xpDefault [] $ xpElem "sort" $ xpList xpickle
@@ -250,19 +393,14 @@
 
 xpMacro :: PU Element
 xpMacro
-    = xpWrap (uncurry3 Macro, \(Macro s f fm) -> (s,f,fm)) $
-      xpTextElem $ xpCommon "macro"
+    = xpWrap (uncurry Macro, \(Macro s fm) -> (s,fm)) $
+      xpTextElem $ xpPair (xpAttrText "macro") xpickle
 
 xpConst :: PU Element
 xpConst
     = xpWrap (uncurry Const, \(Const s fm) -> (s,fm)) $
       xpTextElem $ xpPair (xpAttrText "value") xpickle
 
-xpPointLocator :: PU Element
-xpPointLocator
-    = xpWrap (uncurry3 PointLocator, \(PointLocator s f fm) -> (s,f,fm)) $
-      xpTextElem $ xpCommon "point-locator"
-
 xpVariable :: PU Element
 xpVariable
     = xpWrap ( \((v,f,fm),d)        -> Variable (words v) f fm d
@@ -271,9 +409,10 @@
 
 xpTerm :: PU Element
 xpTerm
-    = xpWrap ( \((t,f,fm),i,p)    -> Term t f fm i p
-             , \(Term t f fm i p) -> ((t,f,fm),i,p)) $
-      xpTextElem $ xpTriple (xpCommon "term") xpIncludePeriod xpPlural
+    = xpWrap ( \((t,f,fm),p)    -> Term t f fm p
+             , \(Term t f fm p) -> ((t,f,fm),p)) $
+      xpTextElem $ xpPair (xpCommon "term") $
+                   xpAttrWithDefault True "plural" xpickle
 
 xpNames :: PU Element
 xpNames
@@ -282,7 +421,7 @@
       xpElem "names" $ xpTriple names xpDelimiter xpickle
     where names   = xpTriple (xpAttrText "variable") xpName xpickle
           xpName  = xpChoice xpZero xpickle check
-          check l = if or $ map isName l then xpLift l else xpZero
+          check l = if any isName l then xpLift l else xpZero
 
 xpShortNames :: PU Element
 xpShortNames
@@ -293,11 +432,11 @@
 
 xpLabel :: PU Element
 xpLabel
-    = xpWrap ( \(t,f,fm,i,p)       -> Label t f fm i p
-             , \(Label s f fm i p) -> (s,f,fm,i,p)) $
+    = xpWrap ( uncurry4 Label
+             , \(Label s f fm p) -> (s,f,fm,p)) $
       xpElem "label" $
-      xp5Tuple (xpAttrText' "variable")
-                xpickle xpickle xpIncludePeriod xpPlural
+      xp4Tuple (xpAttrText' "variable")
+                xpickle xpickle xpPlural
 
 xpSubStitute :: PU Element
 xpSubStitute
@@ -306,10 +445,9 @@
 
 xpGroup :: PU Element
 xpGroup
-    = xpWrap ( \(fm,d,c,e)       -> Group fm d c e
-             , \(Group fm d c e) -> (fm,d,c,e)) $
+    = xpWrap (uncurry3 Group, \(Group fm d e) -> (fm,d,e)) $
       xpElem "group" $
-      xp4Tuple xpickle xpDelimiter (xpAttrText' "class") xpickle
+      xpTriple xpickle xpDelimiter xpickle
 
 xpNumber :: PU Element
 xpNumber
@@ -318,21 +456,28 @@
 
 xpDate :: PU Element
 xpDate
-    = xpWrap ( \((s,fm,dp),d)    -> Date (words s) fm d dp
-             , \(Date s fm d dp) -> ((unwords s,fm,dp),d)) $
-      xpElem  "date" $ xpPair (xpCommon "variable") xpDelimiter
+    = xpWrap ( \((s,f,fm),(d,dp,dp'))    -> Date (words s) f fm d dp dp'
+             , \(Date s f fm d dp dp') -> ((unwords s,f,fm),(d,dp,dp'))) $
+      xpElem  "date" $
+      xpPair (xpCommon "variable")
+             (xpTriple xpDelimiter xpickle (xpAttrText' "date-parts"))
 
+xpLocaleDate :: PU Element
+xpLocaleDate
+    = xpWrap ( \((s,f,fm),(d,dp,dp'))    -> Date (words s) f fm d dp dp'
+             , \(Date s f fm d dp dp') -> ((unwords s,f,fm),(d,dp,dp'))) $
+      xpElem  "date" $
+      xpPair  (xpTriple (xpLift []) xpickle xpickle)
+              (xpTriple xpDelimiter xpickle (xpLift []))
+
 xpTextElem :: PU a -> PU a
 xpTextElem = xpElem "text"
 
 xpDelimiter :: PU String
 xpDelimiter = xpAttrText' "delimiter"
 
-xpPlural :: PU Bool
-xpPlural = xpAttrWithDefault True "plural" xpickle
-
-xpIncludePeriod :: PU Bool
-xpIncludePeriod = xpAttrWithDefault False "include-period" xpickle
+xpPlural :: PU Plural
+xpPlural = xpWrap readable $ xpAttrWithDefault "contextual" "plural" xpText
 
 xpCommon :: (XmlPickler b, XmlPickler c) => String -> PU (String,b,c)
 xpCommon s = xpTriple (xpAttrText s) xpickle xpickle
@@ -351,31 +496,6 @@
 xpIElemWithDefault :: Eq a => a -> String -> PU a -> PU a
 xpIElemWithDefault d n = xpDefault d . xpIElem n
 
--- | A pickler for interleaved elements.
-xpIElem  :: String -> PU a -> PU a
-xpIElem n pa
-    = PU { appPickle   = ( \ (a, st) ->
-                           let
-                           st' = appPickle pa (a, emptySt)
-                           in
-                           addCont (XN.mkElement (mkName n) (attributes st') (contents st')) st
-                         )
-         , appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleElement st)
-         , theSchema   = scElem n (theSchema pa)
-         }
-      where
-      unpickleElement st
-          = do
-            let t = contents st
-            ns <- mapM XN.getElemName t
-            case elemIndex n (map qualifiedName ns) of
-              Nothing -> fail "element name does not match"
-              Just i  -> do
-                let cs = XN.getChildren (t !! i)
-                al <- XN.getAttrl (t !! i)
-                res <- fst . appUnPickle pa $ St {attributes = al, contents = cs}
-                return (Just res, st {contents = take i t ++ drop (i + 1) t})
-
 readable :: (Read a, Show b) => (String -> a, b -> String)
 readable =  (read . toRead, toShow . show)
 
@@ -395,29 +515,40 @@
           |     y:ys <- x =         y : camel ys
           | otherwise     = []
 
-readXmlFile :: PU a -> String -> IO a
-readXmlFile xp f
-    = do
-      flip unless (error $ f ++ " file does not exist") =<< doesFileExist f
-      res <- runX ( readDocument [ (a_validate         , v_0)
-				 , (a_remove_whitespace, v_1)
-                                 , (a_trace            , v_0)
-				 , (a_preserve_comment , v_0)
-				 ] f
-                    >>>
-                    RNG.normalizeForRelaxValidation
-                    >>>
-                    xunpickleVal xp
-                  )
-      case res of
-        [x] -> return x
-        _   -> error $ "error while reading file " ++ f
-
--- | Read and parse a CSL style file into the internal style
--- representation, the 'Style'.
-readCSLFile :: FilePath -> IO Style
-readCSLFile f = do
-  s <- readXmlFile xpStyle f
-  l <- getDataFileName ("locales/locales-" ++ styleLocale s ++ ".xml")
-  t <- readXmlFile xpTerms l
-  return s {csTerms = csTerms s ++ t}
+langBase :: [(String, String)]
+langBase
+    = [("af", "af-ZA")
+      ,("ar", "ar-AR")
+      ,("bg", "bg-BG")
+      ,("ca", "ca-AD")
+      ,("cs", "cs-CZ")
+      ,("da", "da-DK")
+      ,("de", "de-DE")
+      ,("el", "el-GR")
+      ,("en", "en-US")
+      ,("es", "es-ES")
+      ,("et", "et-EE")
+      ,("fr", "fr-FR")
+      ,("he", "he-IL")
+      ,("hu", "hu-HU")
+      ,("is", "is-IS")
+      ,("it", "it-IT")
+      ,("ja", "ja-JP")
+      ,("ko", "ko-KR")
+      ,("mn", "mn-MN")
+      ,("nb", "nb-NO")
+      ,("nl", "nl-NL")
+      ,("pl", "pl-PL")
+      ,("pt", "pt-PT")
+      ,("ro", "ro-RO")
+      ,("ru", "ru-RU")
+      ,("sk", "sk-SK")
+      ,("sl", "sl-SI")
+      ,("sr", "sr-RS")
+      ,("sv", "sv-SE")
+      ,("th", "th-TH")
+      ,("tr", "tr-TR")
+      ,("uk", "uk-UA")
+      ,("vi", "vi-VN")
+      ,("zh", "zh-CN")
+      ]
diff --git a/src/Text/CSL/Pickle.hs b/src/Text/CSL/Pickle.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Pickle.hs
@@ -0,0 +1,408 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Pickle
+-- Copyright   :  (c) Uwe Schmidt Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@unitn.it>
+-- Stability   :  unstable
+-- Portability :  portable
+--
+-- This module is mostly copied from Text.XML.HXT.Arrow.Pickle.Xml
+-- which is an adaptation of the pickler combinators developed by
+-- Andrew Kennedy.
+--
+-- See: <http://research.microsoft.com/~akenn/fun/picklercombinators.pdf>
+-----------------------------------------------------------------------------
+
+module Text.CSL.Pickle where
+
+import Control.Monad    ( unless        )
+import Data.List        ( elemIndex     )
+import Data.Maybe
+import System.Directory ( doesFileExist )
+
+import Text.XML.Light
+
+data St
+    = St { attributes :: [Attr]
+	 , contents   :: [Content]
+	 }
+
+data PU a
+    = PU { appPickle   :: (a, St) -> St
+	 , appUnPickle :: St -> (Maybe a, St)
+         }
+
+pickleXML :: PU a -> a -> String
+pickleXML p v = concatMap showContent $ contents st
+    where st = appPickle p (v, emptySt)
+
+unpickleXML :: PU a -> [Content] -> Maybe a
+unpickleXML p t
+    = fst . appUnPickle p $ St { attributes = []
+			       , contents   = t
+			       }
+
+emptySt	:: St
+emptySt	=  St { attributes = []
+	      , contents   = []
+	      }
+
+addAtt	:: Attr -> St -> St
+addAtt x s = s {attributes = x : attributes s}
+
+addCont	:: Content -> St -> St
+addCont x s = s {contents = x : contents s}
+
+dropCont :: St -> St
+dropCont s = s { contents = drop 1 (contents s) }
+
+getAtt :: String -> St -> Maybe Attr
+getAtt name
+    = listToMaybe . filter ((==) name .  qName . attrKey) . attributes
+
+getCont	:: St -> Maybe Content
+getCont	= listToMaybe . contents
+
+class XmlPickler a where
+    xpickle :: PU a
+
+instance XmlPickler Int where
+    xpickle = xpPrim
+
+instance XmlPickler Integer where
+    xpickle = xpPrim
+
+instance XmlPickler () where
+    xpickle = xpUnit
+
+instance XmlPickler a => XmlPickler [a] where
+    xpickle = xpList xpickle
+
+instance XmlPickler a => XmlPickler (Maybe a) where
+    xpickle = xpOption xpickle
+
+xpPrim	:: (Read a, Show a) => PU a
+xpPrim
+    = xpWrapMaybe (readMaybe, show) xpText
+    where
+    readMaybe :: Read a => String -> Maybe a
+    readMaybe str
+	= val (reads str)
+	where
+	val [(x,"")] = Just x
+	val _        = Nothing
+
+xpUnit :: PU ()
+xpUnit = xpLift ()
+
+xpZero :: PU a
+xpZero
+    =  PU { appPickle   = snd
+	  , appUnPickle = \ s -> (Nothing, s)
+          }
+
+xpLift :: a -> PU a
+xpLift x
+    =  PU { appPickle   = snd
+	  , appUnPickle = \ s -> (Just x, s)
+          }
+
+xpCondSeq :: PU b -> (b -> a) -> PU a -> (a -> PU b) -> PU b
+xpCondSeq pd f pa k
+    = PU { appPickle   = ( \ (b, s) ->
+	                   let
+			   a  = f b
+			   pb = k a
+			   in
+			   appPickle pa (a, (appPickle pb (b, s)))
+			 )
+	 , appUnPickle = ( \ s ->
+			   let
+			   (a, s') = appUnPickle pa s
+			   in
+			   case a of
+			   Nothing -> appUnPickle pd     s
+			   Just a' -> appUnPickle (k a') s'
+			 )
+	 }
+
+xpSeq :: (b -> a) -> PU a -> (a -> PU b) -> PU b
+xpSeq = xpCondSeq xpZero
+
+xpChoice :: PU b -> PU a -> (a -> PU b) -> PU b
+xpChoice pb = xpCondSeq pb undefined
+
+xpWrap	:: (a -> b, b -> a) -> PU a -> PU b
+xpWrap (f, g) pa = xpSeq g pa (xpLift . f)
+
+xpDefault :: (Eq a) => a -> PU a -> PU a
+xpDefault df
+    = xpWrap ( fromMaybe df
+	     , \ x -> if x == df then Nothing else Just x
+	     ) .
+      xpOption
+
+xpOption :: PU a -> PU (Maybe a)
+xpOption pa
+    = PU { appPickle   = ( \ (a, st) ->
+			   case a of
+			   Nothing -> st
+			   Just x  -> appPickle pa (x, st)
+			 )
+	 , appUnPickle = appUnPickle $
+	                 xpChoice (xpLift Nothing) pa (xpLift . Just)
+	 }
+
+
+xpAlt	:: (a -> Int) -> [PU a] -> PU a
+xpAlt tag ps
+    = PU { appPickle   = ( \ (a, st) ->
+			   let
+			   pa = ps !! (tag a)
+			   in
+			   appPickle pa (a, st)
+			 )
+	 , appUnPickle = appUnPickle $
+	                 ( case ps of
+			   []     -> xpZero
+			   pa:ps1 -> xpChoice (xpAlt tag ps1) pa xpLift
+			 )
+	 }
+
+xpList	:: PU a -> PU [a]
+xpList pa
+    = PU { appPickle   = ( \ (a, st) ->
+			   case a of
+			   []  -> st
+			   _:_ -> appPickle pc (a, st)
+			 )
+	 , appUnPickle = appUnPickle $
+                         xpChoice (xpLift []) pa
+	                   (\ x -> xpSeq id (xpList pa) (\xs -> xpLift (x:xs)))
+	 }
+      where
+      pc = xpSeq head  pa       (\ x ->
+	   xpSeq tail (xpList pa) (\ xs ->
+	   xpLift (x:xs)))
+
+
+xpLiftMaybe :: Maybe a -> PU a
+xpLiftMaybe = maybe xpZero xpLift
+
+xpWrapMaybe :: (a -> Maybe b, b -> a) -> PU a -> PU b
+xpWrapMaybe (i, j) pa	= xpSeq j pa (xpLiftMaybe . i)
+
+xpPair :: PU a -> PU b -> PU (a, b)
+xpPair pa pb
+    = ( xpSeq fst pa (\ a ->
+        xpSeq snd pb (\ b ->
+        xpLift (a,b)))
+      )
+
+xpTriple :: PU a -> PU b -> PU c -> PU (a, b, c)
+xpTriple pa pb pc
+    = xpWrap (toTriple, fromTriple) (xpPair pa (xpPair pb pc))
+    where
+    toTriple   ~(a, ~(b, c)) = (a,  b, c )
+    fromTriple ~(a,   b, c ) = (a, (b, c))
+
+xp4Tuple :: PU a -> PU b -> PU c -> PU d -> PU (a, b, c, d)
+xp4Tuple pa pb pc pd
+    = xpWrap (toQuad, fromQuad) (xpPair pa (xpPair pb (xpPair pc pd)))
+    where
+    toQuad   ~(a, ~(b, ~(c, d))) = (a,  b,  c, d  )
+    fromQuad ~(a,   b,   c, d  ) = (a, (b, (c, d)))
+
+xp5Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU (a, b, c, d, e)
+xp5Tuple pa pb pc pd pe
+    = xpWrap (toQuint, fromQuint) (xpPair pa (xpPair pb (xpPair pc (xpPair pd pe))))
+    where
+    toQuint   ~(a, ~(b, ~(c, ~(d, e)))) = (a,  b,  c,  d, e   )
+    fromQuint ~(a,   b,   c,   d, e   ) = (a, (b, (c, (d, e))))
+
+xp6Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU f -> PU (a, b, c, d, e, f)
+xp6Tuple pa pb pc pd pe pf
+    = xpWrap (toSix, fromSix) (xpPair pa (xpPair pb (xpPair pc (xpPair pd (xpPair pe pf)))))
+    where
+    toSix   ~(a, ~(b, ~(c, ~(d, ~(e, f))))) = (a,  b,  c,  d,  e, f    )
+    fromSix ~(a,   b,   c,   d,   e, f    ) = (a, (b, (c, (d, (e, f)))))
+
+--------------------------------------------------------------------------------
+
+getText :: Content -> Maybe String
+getText c
+    | Text cd <- c = Just (showCData cd)
+    | otherwise    = Nothing
+
+getChildren :: Content -> [Content]
+getChildren c
+    | Elem el <- c = elContent el
+    | otherwise    = []
+
+getElemName :: Content -> Maybe QName
+getElemName c
+    | Elem el <- c = Just (elName el)
+    | otherwise    = Nothing
+
+getAttrl :: Content -> [Attr]
+getAttrl c
+    | Elem el <- c = elAttribs el
+    | otherwise    = []
+
+mkText :: String -> Content
+mkText str = Text $ blank_cdata { cdData = str}
+
+mkName :: String -> QName
+mkName n = blank_name {qName = n}
+
+qualifiedName :: QName -> String
+qualifiedName qn = (fromMaybe [] $ qPrefix qn) ++ qName qn
+
+xpText :: PU String
+xpText
+    = PU { appPickle   = \ (s, st) -> addCont (mkText s) st
+	 , appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleString st)
+	 }
+    where
+    unpickleString st
+	= do
+	  t <- getCont st
+	  s <- getText t
+	  return (Just s, dropCont st)
+
+xpText0 :: PU String
+xpText0
+    = xpWrap (fromMaybe "", emptyToNothing) $ xpOption $ xpText
+    where
+    emptyToNothing "" = Nothing
+    emptyToNothing x  = Just x
+
+xpElem	:: String -> PU a -> PU a
+xpElem name pa
+    = PU { appPickle   = ( \ (a, st) ->
+			   let
+	                   st' = appPickle pa (a, emptySt)
+			   in
+			   addCont (Elem $ Element (mkName name) (attributes st') (contents st') Nothing) st
+			 )
+	 , appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleElement st)
+	 }
+      where
+      unpickleElement st
+          = do
+            e  <- listToMaybe . map Elem . onlyElems . contents $ st
+            n <- getElemName e
+            if qualifiedName n /= name
+              then fail "element name does not match"
+              else do
+                al  <- Just $ getAttrl e
+                res <- fst . appUnPickle pa $ St {attributes = al, contents = getChildren e}
+                return (Just res, st {contents = filter ((/=) (show e) . show) $ contents st})
+
+-- | A pickler for interleaved elements.
+xpIElem	:: String -> PU a -> PU a
+xpIElem name pa
+    = PU { appPickle   = ( \ (a, st) ->
+			   let
+	                   st' = appPickle pa (a, emptySt)
+			   in
+			   addCont (Elem $ Element (mkName name) (attributes st') (contents st') Nothing) st
+			 )
+	 , appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleElement st)
+	 }
+      where
+      unpickleElement st
+          = do
+            let t = map Elem . onlyElems . contents $ st
+            ns <- mapM getElemName t
+            case elemIndex name (map qualifiedName ns) of
+              Nothing -> fail "element name does not match"
+              Just i  -> do
+                let cs = getChildren (t !! i)
+                al <- Just $ getAttrl (t !! i)
+                res <- fst . appUnPickle pa $ St {attributes = al, contents = cs}
+                return (Just res, st {contents = take i t ++ drop (i + 1) t})
+
+xpAttr	:: String -> PU a -> PU a
+xpAttr name pa
+    = PU { appPickle   = ( \ (a, st) ->
+			   let
+			   st' = appPickle pa (a, emptySt)
+			   in
+			   addAtt (Attr (mkName name) (getAtVal $ contents st')) st
+			 )
+	 , appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleAttr st)
+	 }
+      where
+      getAtVal at
+          | Text cd : _ <- at = cdData cd
+          | otherwise         = []
+      unpickleAttr st
+	  = do
+	    a <- getAtt name st
+	    res <- fst . appUnPickle pa $ St { attributes = []
+                                             , contents   = [Text blank_cdata {cdData = attrVal a}]}
+	    return (Just res, st)
+
+xpElemWithAttrValue :: String -> String -> String -> PU a -> PU a
+xpElemWithAttrValue n a v = xpElem n . xpAddFixedAttr a v
+
+xpAttrFixed	:: String -> String -> PU ()
+xpAttrFixed name val
+    = ( xpWrapMaybe ( \ v -> if v == val then Just () else Nothing
+		    , const val
+		    ) $
+	xpAttr name xpText
+      )
+
+xpAddFixedAttr	:: String -> String -> PU a -> PU a
+xpAddFixedAttr name val pa
+    = xpWrap ( snd
+	     , (,) ()
+	     ) $
+      xpPair (xpAttrFixed name val) pa
+
+uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
+uncurry3 f (a,b,c) = f a b c
+
+uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e
+uncurry4 f (a,b,c,d) = f a b c d
+
+uncurry5 :: (a -> b -> c -> d -> e -> f) -> (a, b, c, d, e) -> f
+uncurry5 f (a,b,c,d,e) = f a b c d e
+
+readXmlString :: Show a => PU a -> String -> a
+readXmlString xp str =
+      case parseXML str of
+        [] -> error $ "error while reading the style"
+        x  -> case unpickleXML xp x of
+                Just a -> a
+                _      -> case getStyleVersion x of
+                            (_:_) -> error "error while parsing the style"
+                            _     -> error styleErr08
+
+readXmlFile :: Show a => PU a -> String -> IO a
+readXmlFile xp f = do
+  flip unless (error $ f ++ " file does not exist") =<< doesFileExist f
+  readXmlString xp `fmap` readFile f
+
+getStyleVersion :: [Content] -> String
+getStyleVersion c
+    = case filterElems c of
+        [x] -> case lookupAttr styleVersion (elAttribs x) of
+                 Just s -> s
+                 _      -> []
+        _   -> error "malformed style: no cs:style element found"
+    where
+      filterElems  = catMaybes . map (filterElementName isStyle) . onlyElems
+      styleVersion = mkName "version"
+      isStyle (QName qn _ _) = qn == "style"
+
+styleErr08 :: String
+styleErr08
+    = "the parsed style seems to be CSL-0.8 while citeproc-hs only supports CSL 1.0.\n" ++
+      "Styles may be updated by using the csl-utils. For more information see:\n" ++
+      "http://citationstyles.org/downloads/upgrade-notes.html#updating-csl-0-8-styles"
diff --git a/src/Text/CSL/Proc.hs b/src/Text/CSL/Proc.hs
--- a/src/Text/CSL/Proc.hs
+++ b/src/Text/CSL/Proc.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE PatternGuards #-}
+{-# LANGUAGE PatternGuards, DeriveDataTypeable #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Text.CSL.Proc
@@ -16,98 +16,244 @@
 
 module Text.CSL.Proc where
 
-import Control.Arrow ( (&&&), (***) )
-import Data.Char ( chr )
-import Data.List ( elemIndex, findIndices
-                 , sortBy, mapAccumL, nub )
-import Data.Maybe
-import Data.Ord ( comparing )
+import Control.Arrow ( (&&&), (>>>), second )
+import Data.List
+import Data.Ord  ( comparing )
 
 import Text.CSL.Eval
+import Text.CSL.Output.Plain
+import Text.CSL.Parser
 import Text.CSL.Proc.Collapse
 import Text.CSL.Proc.Disamb
 import Text.CSL.Reference
 import Text.CSL.Style
 
+data ProcOpts
+    = ProcOpts
+      { bibOpts :: BibOpts
+      }
+    deriving ( Show, Read, Eq )
+
+data BibOpts
+    = Select  [(String, String)] [(String, String)]
+    | Include [(String, String)] [(String, String)]
+    | Exclude [(String, String)] [(String, String)]
+    deriving ( Show, Read, Eq )
+
+procOpts :: ProcOpts
+procOpts = ProcOpts (Select [] [])
+
 -- | With a 'Style', a list of 'Reference's and the list of citation
 -- groups (the list of citations with their locator), produce the
 -- 'FormattedOutput' for each citation group.
-processCitations :: Style -> [Reference] -> [[(String, String)]] -> [[FormattedOutput]]
-processCitations s rs
-    = citations . citeproc s rs
+processCitations :: ProcOpts -> Style -> [Reference] -> Citations -> [[FormattedOutput]]
+processCitations ops s rs
+    = citations . citeproc ops s rs
 
 -- | With a 'Style' and the list of 'Reference's produce the
 -- 'FormattedOutput' for the bibliography.
-processBibliography :: Style -> [Reference] -> [[FormattedOutput]]
-processBibliography s rs
-    = bibliography $ citeproc s rs [zip (map citeKey rs) (repeat "")]
+processBibliography :: ProcOpts -> Style -> [Reference] -> [[FormattedOutput]]
+processBibliography ops s rs
+    = bibliography $ citeproc ops s rs [map (\r -> emptyCite { citeId = refId r}) rs]
 
--- | With a 'Style', a list of 'Reference's and the list of citation
--- groups (the list of citations with their locator), produce the
--- 'FormattedOutput' for each citation group and the bibliography.
-citeproc :: Style -> [Reference] -> [[(String, String)]] -> BiblioData
-citeproc s rs cs
-    = BD  citsOutput biblioOutput
+-- | With a 'Style', a list of 'Reference's and the list of
+-- 'Citations', produce the 'FormattedOutput' for each citation group
+-- and the bibliography.
+citeproc :: ProcOpts -> Style -> [Reference] -> Citations -> BiblioData
+citeproc ops s rs cs
+    = BD citsOutput biblioOutput
     where
       -- the list of bib entries, as a list of Reference, with
       -- position, locator and year suffix set.
-      biblioRefs   = refsYSuffix . procRefs s . map (getReference rs) .
-                     nub . map (id *** const []) . concat $ cs
+      biblioRefs   = procRefs s . map (getReference rs) .
+                     nubBy (\a b -> citeId a == citeId b) . concat $ cs
       biblioOutput = if "disambiguate-add-year-suffix" `elem` getCitDisambOptions s
-                     then map (map formatOutput) $ proc addYearSuffix $ procBiblio s biblioRefs
-                     else map (map formatOutput) $ procBiblio s biblioRefs
-      outputGroups = map $ \(CG fm d os) -> map formatOutput $ outputList fm d os
-      citsOutput   = outputGroups $ collapseCitGroups s $ disambCitations s biblioRefs cs
+                     then map formatOutputList $
+                          map (proc (updateYearSuffixes yearS) . map addYearSuffix) $
+                          procBiblio (bibOpts ops) s biblioRefs
+                     else map formatOutputList $
+                          procBiblio (bibOpts ops) s biblioRefs
+      citsAndRefs  = processCites biblioRefs cs
+      (yearS,citG) = disambCitations s biblioRefs cs $ map (procGroup s) citsAndRefs
+      citsOutput   = map (formatCitLayout s) . collapseCitGroups s $ citG
 
+-- | Given the CSL 'Style' and the list of 'Reference's sort the list
+-- according to the 'Style' and assign the citation number to each
+-- 'Reference'.
+procRefs :: Style -> [Reference] -> [Reference]
+procRefs (Style {biblio = mb, csMacros = ms , styleLocale = l, csOptions = opts}) rs
+    = maybe rs process mb
+    where
+      opts'   b = mergeOptions (bibOptions b) opts
+      citNum  x = x { citationNumber = maybe 0 ((+) 1 . fromIntegral) . elemIndex x $ rs }
+      sort_   b = evalSorting (EvalSorting emptyCite {citePosition = "first"})l ms (opts' b) (bibSort b)
+      process b = sortItems . map (citNum &&& sort_ b) $ rs
+
+sortItems :: Show a => [(a,[Sorting])] -> [a]
+sortItems [] = []
+sortItems l
+    = case head . concatMap (map snd) $ result of
+        [] -> concatMap (map fst) result
+        _  -> if or $ map ((<) 1 . length) result
+              then concatMap sortItems result
+              else concatMap (map fst) result
+    where
+      result = process l
+      process = sortBy (comparing $ head' . snd)                 >>>
+                groupBy (\a b -> head' (snd a) == head' (snd b)) >>>
+                map (map $ second tail')
+
 -- | With a 'Style' and a sorted list of 'Reference's produce the
 -- evaluated output for the bibliography.
-procBiblio :: Style -> [Reference] -> [[Output]]
-procBiblio (Style {biblio = mb, csMacros = ms , csTerms = ts}) rs
+procBiblio :: BibOpts -> Style -> [Reference] -> [[Output]]
+procBiblio bos (Style {biblio = mb, csMacros = ms , styleLocale = l, csOptions = opts}) rs
     = maybe [] process mb
     where
-      format  b = uncurry $ evalLayout (bibLayout b) False ts ms (bibOptions b)
-      render  b = map (format b) $ chkAut [] rs
-      process b = flip map (render b) $ uncurry outputList (layFormat &&& layDelim $ bibLayout b)
+      render  b = map (format b) . chkAut [] . filterRefs bos $ rs
+      process b = flip map (render b) $ uncurry formatBiblioLayout (layFormat &&& layDelim $ bibLayout b)
+      format  b (p,r) = evalLayout (bibLayout b) (EvalBiblio p) False l ms (mergeOptions (bibOptions b) opts) r
       chkAut _ []     = []
       chkAut a (x:xs) = if author x `elem` a
                         then ("subsequent",x) : chkAut             a  xs
                         else ("first"     ,x) : chkAut (author x : a) xs
 
--- | Given the CSL 'Style' and the list of 'Reference's sort the list
--- according to the 'Style' and assign the citation number to each
--- 'Reference'.
-procRefs :: Style -> [Reference] -> [Reference]
-procRefs (Style {biblio = mb, csMacros = ms , csTerms = ts}) rs
-    = maybe rs process mb
+filterRefs :: BibOpts -> [Reference] -> [Reference]
+filterRefs bos refs
+    | Select  s q <- bos = filter (select  s) . filter (quash q) $ refs
+    | Include i q <- bos = filter (include i) . filter (quash q) $ refs
+    | Exclude e q <- bos = filter (exclude e) . filter (quash q) $ refs
+    | otherwise          = refs
     where
-      citNum x = x { citationNumber = maybe 0 ((+) 1 . fromIntegral) . elemIndex x $ rs }
-      sort    b = evalSorting ts ms (bibOptions b) (bibSort b)
-      process b = map fst . sortBy (comparing snd) . map (citNum &&& sort b) $ rs
+      quash  [] _ = True
+      quash   q r = not . and . flip map q $ \(f,v) ->       lookup_ r f v
+      select  s r =       and . flip map s $ \(f,v) ->       lookup_ r f v
+      include i r =       or  . flip map i $ \(f,v) ->       lookup_ r f v
+      exclude e r =       and . flip map e $ \(f,v) -> not $ lookup_ r f v
+      lookup_ r f v = case f of
+                        "type"         -> look "ref-type"
+                        "id"           -> look "ref-id"
+                        "categories"   -> look "categories"
+                        x              -> look x
+          where
+            look s = case lookup s (mkRefMap r) of
+                       Just x | Just v' <- (fromValue x :: Maybe RefType  ) -> v == toShow (show v')
+                              | Just v' <- (fromValue x :: Maybe String   ) -> v  == v'
+                              | Just v' <- (fromValue x :: Maybe [String] ) -> v `elem` v'
+                              | Just v' <- (fromValue x :: Maybe [Agent]  ) -> v == [] && v' == [] || v == show v'
+                              | Just v' <- (fromValue x :: Maybe [RefDate]) -> v == [] && v' == [] || v == show v'
+                       _                                                    -> False
 
--- | Given the list of 'Reference's, compare year and contributors'
--- names and, when they collide, generate a suffix to append to the
--- year for disambiguation.
-refsYSuffix :: [Reference] -> [Reference]
-refsYSuffix rs
-    = update indices
+-- | Given the CSL 'Style' and the list of 'Reference's coupled with
+-- their position, generate a 'CitationGroup'. The citations are
+-- sorted according to the 'Style'.
+procGroup :: Style -> [(Cite, Reference)] -> CitationGroup
+procGroup (Style {citation = ct, csMacros = ms , styleLocale = l, csOptions = opts}) cr
+    = CG authInTxt (layFormat $ citLayout ct) (layDelim $ citLayout ct) result
     where
-      ryear a b = issued     a == issued     b && issued     a /= []
-      auth  a b = author     a == author     b && author     a /= []
-      edit  a b = editor     a == editor     b && editor     a /= []
-      tran  a b = translator a == translator b && translator a /= []
-      comp  a b = (ryear a b && auth a b) ||
-                  (ryear a b && edit a b) ||
-                  (ryear a b && tran a b)
-      update l = fst $ mapAccumL check rs l
-      check r (i,s) = flip (,) [] $ take i r ++ [(r !! i){yearSuffix = s}] ++ drop (i + 1) r
-      indices  = concatMap (flip zip suffixes) . nub $ map needed rs
-      needed r = case () of
-                   _ | i <- findIndices (comp r) rs
-                     , length i > 1 -> i
-                     | otherwise    -> []
+      authInTxt    = case cr of
+                       (c:_) -> if authorInText (fst c)
+                                then foldr (\x _ -> [x]) [] $
+                                     filter ((==) (citeId $ fst c) . citeId . fst) result
+                                else []
+                       _     -> []
+      opts'        = mergeOptions (citOptions ct) opts
+      format (c,r) = (,) c $ evalLayout (citLayout ct) (EvalCite c) False l ms opts' r
+      sort_  (c,r) = evalSorting (EvalSorting c) l ms opts' (citSort ct) r
+      process      = map (second (flip Output emptyFormatting) . format &&& sort_)
+      result       = sortItems $ process cr
 
-suffixes :: [String]
-suffixes
-    = l ++ [x ++ y | x <- l, y <- l ]
+formatBiblioLayout :: Formatting -> Delimiter -> [Output] -> [Output]
+formatBiblioLayout  f d = appendOutput f . addDelim d
+
+formatCitLayout :: Style -> CitationGroup -> [FormattedOutput]
+formatCitLayout s (CG co f d cs)
+    | [a] <- co = formatAuth a : formatCits (setAsSupAu . citeHash . fst $ a) cs
+    | otherwise = formatCits id cs
     where
-      l = map (return . chr) [97..122]
+      formatAuth   = formatOutput . localMod
+      formatCits g = formatOutputList . appendOutput formatting .
+                     addAffixes f . addDelim d . map localMod . g
+      formatting   = if co /= []
+                     then emptyFormatting
+                     else unsetAffixes f
+      localMod     = if cs /= []
+                     then uncurry $ localModifiers s (co /= [])
+                     else snd
+      setAsSupAu h = map $ \(c,o) -> if citeHash c == h
+                                     then flip (,) o c { authorInText   = False
+                                                       , suppressAuthor = True }
+                                     else flip (,) o c
+
+addAffixes :: Formatting -> [Output] -> [Output]
+addAffixes f os
+    | []      <- os = []
+    | [ONull] <- os = []
+    | otherwise     = pref ++ suff
+    where
+      pref = if prefix f /= []
+             then [OStr (prefix f) emptyFormatting] ++ os
+             else os
+      suff = if suffix f /= [] &&
+             elem (head $ suffix f) ",.:?!" &&
+             [head $ suffix f] == lastOutput
+             then [OStr (tail $ suffix f) emptyFormatting]
+             else suff'
+      suff' = if suffix f /= [] then [OStr (suffix f) emptyFormatting] else []
+      lastOutput = case renderPlain (formatOutputList os) of
+                     [] -> ""
+                     x  -> [last x]
+
+-- | The 'Bool' is 'True' if we are formatting a textual citation (in
+-- pandoc terminology).
+localModifiers :: Style -> Bool -> Cite -> Output -> Output
+localModifiers s b c
+    | authorInText   c = check . return . proc rmFormatting . contribOnly
+    | suppressAuthor c = check . rmContrib . return
+    | otherwise        = id
+    where
+      isPunct = and . map (flip elem ".,;:!? ")
+      check o = case cleanOutput o of
+                  [] -> ONull
+                  x  -> case trim x of
+                          [] -> ONull
+                          x' -> Output x' emptyFormatting
+      trim [] = []
+      trim (o:os)
+          | Output ot f <- o  = Output (trim ot) f : os
+          | ODel _      <- o  = trim os
+          | OSpace      <- o  = trim os
+          | OStr    x f <- o  = OStr x (if isPunct (prefix f)
+                                        then f { prefix = []} else f) : os
+          | otherwise         = o:os
+      rmFormatting f
+          | Formatting {} <- f = emptyFormatting { prefix = prefix f
+                                                 , suffix = suffix f}
+          | otherwise          = f
+      contribOnly o
+          | isNumStyle [o]
+          , OCitNum  {} <- o = Output [ OStr (query getRefTerm s) emptyFormatting
+                                      , OSpace, o] emptyFormatting
+          | OContrib _ "author"
+                  _ _ _ <- o = o
+          | Output ot f <- o = Output (cleanOutput $ map contribOnly ot) f
+          | otherwise        = ONull
+      rmContrib [] = []
+      rmContrib o
+          | b, isNumStyle o = []
+      rmContrib (o:os)
+          | Output ot f <- o = Output (rmContrib ot) f : rmContrib os
+          | OContrib _ "author"
+                  _ _ _ <- o =     rmContrib os
+          | otherwise        = o : rmContrib os
+      isNumStyle = null . query authorOrDate
+      authorOrDate o
+          | OContrib {} <- o = ['a']
+          | OYear    {} <- o = ['a']
+          | OYearSuf {} <- o = ['a']
+          | OStr     {} <- o = ['a']
+          | OPan     {} <- o = ['a']
+          | otherwise        = []
+      getRefTerm :: TermMap -> String
+      getRefTerm t
+          | (("reference", Long), (x,_)) <- t = capitalize x
+          | otherwise                         = []
diff --git a/src/Text/CSL/Proc/Collapse.hs b/src/Text/CSL/Proc/Collapse.hs
--- a/src/Text/CSL/Proc/Collapse.hs
+++ b/src/Text/CSL/Proc/Collapse.hs
@@ -17,6 +17,7 @@
 module Text.CSL.Proc.Collapse where
 
 import Control.Arrow ( (&&&), (>>>) )
+import Data.Char
 import Data.List ( groupBy )
 
 import Text.CSL.Eval
@@ -29,10 +30,11 @@
     = map doCollapse
     where
       doCollapse = case getCollapseOptions s of
-                     "year"            : _ -> collapseYear
-                     "year-suffix"     : _ -> collapseYearSuf
-                     "citation-number" : _ -> collapseNumber
-                     _                     -> id
+                     "year"               : _ -> collapseYear s []
+                     "year-suffix"        : _ -> collapseYear s "year-suffix"
+                     "year-suffix-ranged" : _ -> collapseYear s "year-suffix-ranged"
+                     "citation-number"    : _ -> collapseNumber
+                     _                        -> id
 
 -- | Get the collapse option set in the 'Style' for citations.
 getCollapseOptions :: Style -> [String]
@@ -40,7 +42,7 @@
     = map snd . filter ((==) "collapse" . fst) . citOptions . citation
 
 collapseNumber :: CitationGroup -> CitationGroup
-collapseNumber (CG fm d os) = CG fm d (process os)
+collapseNumber = mapCitationGroup process
     where
       citNum o
           | OCitNum i f <- o = [(i,f)]
@@ -55,40 +57,78 @@
                                                   ] emptyFormatting
                              else map (flip OCitNum f) x
 
-collapseYear :: CitationGroup -> CitationGroup
-collapseYear (CG f d os) = CG f d (process os)
+collapseYear :: Style -> String -> CitationGroup -> CitationGroup
+collapseYear s ranged (CG cs f d os) = CG cs f [] [(emptyCite, process $ map snd os)]
     where
-      rmNames []     = []
-      rmNames (x:xs) = x : remove xs
-      remove  = proc rmFirstDelim . proc rmContribs
-      namesOf = map (fst . snd) . getNamesYear
-      process = map (\x -> Output (addDelim ", " $ rmNames x) emptyFormatting) .
-                groupBy (\a b -> namesOf a == namesOf b)
+      styleYSD    = getOptionVal "year-suffix-delimiter"    . citOptions . citation $ s
+      yearSufDel  = styleYSD `betterThen` (layDelim . citLayout . citation $ s)
+      afterCD     = getOptionVal "after-collapse-delimiter" . citOptions . citation $ s
+      afterColDel = afterCD  `betterThen` d
 
-collapseYearSuf :: CitationGroup -> CitationGroup
-collapseYearSuf (CG f d os) = CG f d (process os)
+      format []     = []
+      format (x:xs) = x : map getYearAndSuf xs
+      getYearAndSuf x = case  query getOYear x of
+                          [] -> noOutputError
+                          x' -> Output x' emptyFormatting
+      getOYear o
+          | OYear    {} <- o = [o]
+          | OYearSuf {} <- o = [o]
+          | OPan     {} <- o = [o]
+          | otherwise        = []
+
+      isRanged = case ranged of
+                   "year-suffix-ranged" -> True
+                   _                    -> False
+      collapsYS xs = if length xs < 2 || null ranged
+                     then xs
+                     else collapseYearSuf isRanged yearSufDel xs
+      addDelimiter []     = []
+      addDelimiter (x:[]) = [addDelim d x]
+      addDelimiter (x:xs) = if length x > 1
+                            then (addDelim d x ++ [ODel afterColDel]) : addDelimiter xs
+                            else (addDelim d x ++ [ODel d          ]) : addDelimiter xs
+      namesOf = map (fst . snd) . getNamesYear True
+      process = flip Output emptyFormatting . concat . addDelimiter .
+                map (collapsYS . format) . groupBy (\a b -> namesOf a == namesOf b)
+
+collapseYearSuf :: Bool -> String -> [Output] -> [Output]
+collapseYearSuf ranged ysd = process
     where
-      rmNames []     = []
-      rmNames (x:xs) = x : remove xs
-      remove  = proc rmFirstDelim . proc rmYear . proc rmContribs
-      namesOf = map (fst . snd) . getNamesYear
-      yearOf  = concatMap (take 4 . snd . snd) . getNamesYear
-      process = map (\x -> Output (addDelim ", " $ rmNames x) emptyFormatting) .
-                groupBy (\a b -> namesOf a == namesOf b && yearOf a == yearOf b)
+      yearOf  = concat . query getYear
+      getYear o
+          | OYear y _ _ <- o = [y]
+          | otherwise        = []
 
-      rmYear o
-          | OYear _ sf fm <- o = OYear sf sf fm
-          | otherwise          = o
+      processYS = if ranged then collapseYearSufRanged else id
+      process = map (flip Output emptyFormatting . getYS) .
+                groupBy (\a b -> yearOf a == yearOf b)
 
-rmFirstDelim :: Output -> Output
-rmFirstDelim o
-    | Output os f <- o = Output (rm os) f
-    | otherwise        = o
+      getYS []     = []
+      getYS (x:xs) = if ranged
+                     then proc rmOYearSuf x : addDelim ysd (processYS $ x : query rmOYear xs)
+                     else addDelim ysd  $ x : (processYS $ query rmOYear xs)
+      rmOYearSuf o
+          | OYearSuf {} <- o = ONull
+          | otherwise        = o
+      rmOYear o
+          | OYearSuf {} <- o = [o]
+          | otherwise        = []
+
+collapseYearSufRanged :: [Output] -> [Output]
+collapseYearSufRanged = process
     where
-      rm [] = []
-      rm (x:xs)
-          | ODel _ <- x = xs
-          | otherwise   = x : rm xs
+      getOYS o
+          | OYearSuf s _ _ f <- o = [(if s /= [] then ord (head s) else 0, f)]
+          | otherwise             = []
+      sufOf   = foldr (\x _ -> x) (0,emptyFormatting) . query getOYS
+      newSuf  = map sufOf >>> (map fst >>> groupConsec) &&& map snd >>> uncurry zip
+      process xs = flip concatMap (newSuf xs) $
+                   \(x,f) -> if length x > 2
+                             then return $ Output [ OStr [chr $ head x] f
+                                                  , ODel "-"
+                                                  , OStr [chr $ last x] f
+                                                  ] emptyFormatting
+                             else map (\y -> if y == 0 then ONull else flip OStr f . return . chr $ y) x
 
 -- | Group consecutive integers:
 --
diff --git a/src/Text/CSL/Proc/Disamb.hs b/src/Text/CSL/Proc/Disamb.hs
--- a/src/Text/CSL/Proc/Disamb.hs
+++ b/src/Text/CSL/Proc/Disamb.hs
@@ -18,110 +18,128 @@
 
 module Text.CSL.Proc.Disamb where
 
-import Control.Arrow ( (&&&), (>>>) )
-import Data.List ( (\\), elemIndex, sortBy, mapAccumL
+import Control.Arrow ( (&&&), (>>>), second )
+import Data.Char ( chr )
+import Data.List ( elemIndex, find, findIndex, sortBy, mapAccumL
                  , nub, groupBy, isPrefixOf )
 import Data.Maybe
 import Data.Ord ( comparing )
 
 import Text.CSL.Eval
+import Text.CSL.Output.Plain
 import Text.CSL.Reference
 import Text.CSL.Style
 
 -- | Given the 'Style', the list of references and the citation
 -- groups, disambiguate citations according to the style options.
-disambCitations :: Style -> [Reference] -> [[(String, String)]] -> [CitationGroup]
-disambCitations s bibs cs
-    = citOutput
+disambCitations :: Style -> [Reference] -> Citations -> [CitationGroup]
+                -> ([(String, String)], [CitationGroup])
+disambCitations s bibs cs groups
+   = (,) yearSuffs citOutput
     where
+      -- utils
+      when_ b f = if b then f else []
+      filter_ f = concatMap (map fst) . map (filter f) . map (uncurry zip)
+
       -- the list of the position and the reference of each citation
       -- for each citation group.
-      refs   = getRefs bibs cs
-      -- citation groups
-      groups  = map (procGroup s) refs
-      -- citation data of duplicates
-      duplics = getDuplCiteData groups
+      refs   = processCites bibs cs
+      -- name data of name duplicates
+      nameDupls = getDuplNameData groups
+      -- citation data of ambiguous cites
+      duplics   = getDuplCiteData hasNamesOpt $ addGName groups
 
       -- check the options set in the style
+      --isByCite = getOptionVal "givenname-disambiguation-rule" (citOptions . citation $ s) == "by-cite"
       disOpts  = getCitDisambOptions s
-      hasNames = "disambiguate-add-names"       `elem` disOpts
-      hasGName = "disambiguate-add-givenname"   `elem` disOpts
-      hasYSuff = "disambiguate-add-year-suffix" `elem` disOpts
+      hasNamesOpt = "disambiguate-add-names"       `elem` disOpts
+      hasGNameOpt = "disambiguate-add-givenname"   `elem` disOpts
+      hasYSuffOpt = "disambiguate-add-year-suffix" `elem` disOpts
 
-      -- citations for which adding a name is not enough.
-      needYSuff = map (allTheSame . map disambData) duplics
-      needName  = concatMap fst . filter (not . snd) $ zip duplics needYSuff
+      withNames = flip map duplics $ same . proc rmNameHash . proc rmGivenNames .
+                  map (if hasNamesOpt then disambData else return . disambYS)
 
-      -- apply name disambiguation options
-      addNames  = disambWithNames hasNames hasGName needName
+      needNames = filter_ (not . snd) $ zip (map disambAddNames duplics) withNames
+      needYSuff = filter_        snd  $ zip (map disambAddLast  duplics) withNames
 
+      newNames :: [CiteData]
+      newNames  = when_ hasNamesOpt $ needNames ++ needYSuff
+
+      newGName :: [NameData]
+      newGName  = when_ hasGNameOpt $ concatMap disambAddGivenNames nameDupls
+
       -- the list of citations that need re-evaluation with the
       -- \"disambiguate\" condition set to 'True'
-      reEval       = let chk = if hasYSuff then filter ((==) [] . citYear) else id
-                     in  chk . concatMap fst . filter snd $ zip duplics needYSuff
-      reEvaluated  = if or (query hasIfDis s) && reEval /= []
-                     then map (uncurry $ reEvaluate s reEval) $ zip refs groups
-                     else groups
+      reEval      = let chk = if hasYSuffOpt then filter ((==) [] . citYear) else id
+                    in  chk needYSuff
+      reEvaluated = if or (query hasIfDis s) && reEval /= []
+                    then map (uncurry $ reEvaluate s reEval) $ zip refs groups
+                    else groups
 
-      -- generate the final FormattedOutput.
-      citOutput    = if disOpts /= []
-                     then if hasYSuff
-                          then proc addYearSuffix $ proc (updateOutput addNames) reEvaluated
-                          else proc (updateOutput addNames) reEvaluated
-                     else groups
+      addGName  = proc (updateOutput []       newGName)
+      addNames  = proc (updateOutput newNames newGName)
 
--- | Disambiguate a list of 'CiteData' by adding names to the list of
--- contributors, thus overriding @et-al@ options, if the first 'Bool'
--- is 'True', and/or by adding given-names if the second 'Bool' is
--- 'True'.
-disambWithNames :: Bool -> Bool -> [CiteData] -> [CiteData]
-disambWithNames bn bg needName
-    | bn && bg  = let (n ,ns ) = done   addLNames
-                      (n',ns') = done $ addGNames ns
-                  in   n ++ n' ++ addGNames ns'
-    | bn        = fst . done $ addLNames
-    | bg        = fst . done $ addGNames needName
-    | otherwise = []
+      withYearS = if hasYSuffOpt
+                  then map (mapCitationGroup $ setYearSuffCollision hasNamesOpt needYSuff) $ reEvaluated
+                  else rmYearSuff $ reEvaluated
+
+      yearSuffs = when_ hasYSuffOpt . generateYearSuffix bibs . query getYearSuffixes $ withYearS
+
+      processed = if hasYSuffOpt
+                  then proc (updateYearSuffixes yearSuffs) .
+                       addNames $ withYearS
+                  else addNames $ withYearS
+
+      citOutput = if disOpts /= [] then processed else groups
+
+mapDisambData :: (Output -> Output) -> CiteData -> CiteData
+mapDisambData f (CD k c ys d r y) = CD k c ys (proc f d) r y
+
+mapCitationGroup :: ([Output] -> [Output]) -> CitationGroup ->  CitationGroup
+mapCitationGroup f (CG cs fm d os) = CG cs fm d (zip (map fst os) . f $ map snd os)
+
+disambAddNames :: [CiteData] -> [CiteData]
+disambAddNames needName = addLNames
     where
-      -- do name disambiguation
       disSolved = zip needName (disambiguate $ map disambData needName)
-      addLNames = map (\(c,n) -> c { disambed = head n }) disSolved
-      addGNames = map (\ c    -> c { disambed = addGivenNames (disambed c) })
+      addLNames = map (\(c,n) -> c { disambed = if null n then collision c else head n }) disSolved
 
-      chkdup = same . proc rmGivenNames . map disambed
-      need a = map fst . filter (not . snd) . zip a
-      done a = (,) (need a $ chkdup a) (a \\ (need a $ chkdup a))
+disambAddLast :: [CiteData] -> [CiteData]
+disambAddLast = map last_
+    where
+      last_ c = c { disambed   = if disambData c /= [] then last $ disambData c else collision  c }
 
+disambAddGivenNames :: [NameData] -> [NameData]
+disambAddGivenNames needName = addGName
+    where
+      disSolved = zip needName (disambiguate $ map nameDisambData needName)
+      addGName = map (\(c,n) -> c { nameDataSolved = if null n then nameCollision c else head n }) disSolved
+
 -- | Given the list of 'CiteData' with the disambiguated field set
 -- update the evaluated citations by setting the contributor list
 -- accordingly.
-updateOutput :: [CiteData] -> Output -> Output
-updateOutput m o
-    | OContrib k x _ <- o = case elemIndex (CD k x [] [] []) m of
-                              Just i -> OContrib k (disambed $ m !! i) []
+updateOutput :: [CiteData] -> [NameData] -> Output -> Output
+updateOutput c n o
+    | OContrib k r x  _ d <- o = case elemIndex (CD k (clean x) [] [] [] []) c of
+                                   Just i -> OContrib k r (disambed $ c !! i) [] d
+                                   _      -> o
+    | OName _ _ [] _ <- o = o
+    | OName k x _  f <- o = case elemIndex (ND k (clean x) [] []) n of
+                              Just i -> OName k (nameDataSolved $ n !! i) [] f
                               _      -> o
     | otherwise           = o
-
--- | Given the CSL 'Style' and the list of 'Reference's coupled with
--- their position, generate a 'CitationGroup'. The citations are
--- sorted according to the 'Style'.
-procGroup :: Style -> [(String,Reference)] -> CitationGroup
-procGroup (Style {citation = c, csMacros = ms , csTerms = ts})
-    = CG (layFormat $ citLayout c) (layDelim $ citLayout c) . concat . process
     where
-      format (p,r) = evalLayout (citLayout c) False ts ms (citOptions c) p r
-      sort    = evalSorting ts ms (citOptions c) (citSort c) . snd
-      process = map fst . sortBy (comparing snd) . map (format &&& sort)
-
+      clean = proc rmGivenNames
 
 -- | Evaluate again a citation group with the 'EvalState' 'disamb'
 -- field set to 'True' (for matching the @\"disambiguate\"@
 -- condition).
-reEvaluate :: Style -> [CiteData] -> [(String,Reference)] -> CitationGroup -> CitationGroup
-reEvaluate (Style {citation = c, csMacros = ms , csTerms = ts}) l pr (CG f d os)
-    = CG f d . flip concatMap (zip pr os) $
-      \((p,r),out) -> if citeKey r `elem` map key l
-                      then evalLayout (citLayout c) True ts ms (citOptions c) p r
+reEvaluate :: Style -> [CiteData] -> [(Cite, Reference)] -> CitationGroup -> CitationGroup
+reEvaluate (Style {citation = ct, csMacros = ms , styleLocale = lo}) l cr (CG a f d os)
+    = CG a f d . flip concatMap (zip cr os) $
+      \((c,r),out) -> if refId r `elem` map key l
+                      then return . second (flip Output emptyFormatting) $
+                           (,) c $ evalLayout (citLayout ct) (EvalCite c) True lo ms (citOptions ct) r
                       else [out]
 
 -- | Check if the 'Style' has any conditional for disambiguation. In
@@ -140,36 +158,38 @@
     = map fst . filter ((==) "true" . snd) .
       filter (isPrefixOf "disambiguate" . fst) . citOptions . citation
 
--- | Set the locator, the 'citationNumber' and the position for each
--- citation, with the list of 'Reference's and the list of citation
--- groups (citation keys with locators).
-getRefs :: [Reference] -> [[(String, String)]] -> [[(String, Reference)]]
-getRefs r = map (map $ getReference' r) . generatePosition
-
 -- | Group citation data (with possible alternative names) of
 -- citations which have a duplicate (same 'collision' and same
--- 'citYear').
-getDuplCiteData :: [CitationGroup] -> [[CiteData]]
-getDuplCiteData g
-    = groupBy (\a b -> collide a == collide b) . sortBy  (comparing collide) $ duplicates
+-- 'citYear'). If the first 'Bool' is 'False', then we need to
+-- retrieve data for year suffix disambiguation.
+getDuplCiteData :: Bool -> [CitationGroup] -> [[CiteData]]
+getDuplCiteData b g
+    = groupBy (\x y -> collide x == collide y) . sortBy (comparing collide) $ duplicates
     where
-      collide    = proc rmGivenNames . collision
-      citeData   = nub $ concatMap (mapGroupOutput getCiteData) g
-      duplicates = filter (collide &&& citYear >>> flip elem (getDuplNamesYear g)) citeData
+      whatToGet  = if b then collision else disambYS
+      collide    = proc rmNameHash . proc rmGivenNames . whatToGet
+      citeData   = nub $ concatMap (mapGroupOutput $ getCiteData) g
+      duplicates = filter (collide &&& citYear >>> flip elem (getDuplNamesYear b g)) citeData
 
 -- | For an evaluated citation get its 'CiteData'. The disambiguated
 -- citation and the year fields are empty.
 getCiteData :: Output -> [CiteData]
 getCiteData
-    = query contribs &&& years >>>
+    = contribs &&& years >>>
       zipData
     where
+      contribs x = if query contribsQ x /= []
+                   then query contribsQ x
+                   else [CD [] [] [] [] [] []]
       yearsQ  = query getYears
-      years o = if yearsQ o /= [] then yearsQ o else [""]
-      zipData = uncurry . zipWith $ \c y -> c {citYear = y}
-      contribs o
-          | OContrib k x xs <- o = [CD k x xs [] []]
-          | otherwise            = []
+      years o = if yearsQ o /= [] then yearsQ o else [([],[])]
+      zipData = uncurry . zipWith $ \c y -> if key c /= []
+                                            then c {citYear = snd y}
+                                            else c {key     = fst y
+                                                   ,citYear = snd y}
+      contribsQ o
+          | OContrib k _ c d dd <- o = [CD k c d dd [] []]
+          | otherwise                = []
 
 -- | The contributors diambiguation data, the list of names and
 -- give-names, and the citation year ('OYear').
@@ -177,36 +197,115 @@
 
 -- | Get the contributors list ('OContrib') and the year occurring in
 -- more then one citation.
-getDuplNamesYear :: [CitationGroup] -> [NamesYear]
-getDuplNamesYear
+getDuplNamesYear :: Bool -> [CitationGroup] -> [NamesYear]
+getDuplNamesYear b
     = nub . catMaybes . snd . mapAccumL dupl [] . getData
     where
-      getData  = concat . map nub . map (mapGroupOutput getNamesYear)
-      dupl a c = if snd c `elem` map snd a
-                 then if fst c `elem` map fst a then (a,Nothing) else (c:a,Just $ snd c)
-                 else if fst c `elem` map fst a then (a,Nothing) else (c:a,Nothing     )
+      getData  = nub . concatMap (mapGroupOutput $ getNamesYear b)
+      dupl a c = if snd c `elem` a
+                 then (a,Just $ snd c) else (snd c:a,Nothing)
 
 -- | Get the list of citation keys coupled with their 'NamesYear' in
--- the evaluated 'Output'.
-getNamesYear :: Output -> [(String,NamesYear)]
-getNamesYear
-    = proc rmGivenNames        >>>
-      query contribs &&& years >>>
+-- the evaluated 'Output'. If the 'Bool' is 'False' then the function
+-- retrieves the names used in citations not occuring for the first
+-- time.
+getNamesYear :: Bool -> Output -> [(String,NamesYear)]
+getNamesYear b
+    = proc rmNameHash    >>>
+      proc rmGivenNames  >>>
+      contribs &&& years >>>
       zipData
     where
+      contribs x = if query contribsQ x /= []
+                   then query contribsQ x
+                   else [([],[])]
       yearsQ  = query getYears
-      years o = if yearsQ o /= [] then yearsQ o else [""]
-      zipData = uncurry . zipWith $ \(k,c) y -> (,) k (c,y)
-      contribs o
-          | OContrib k x _ <- o = [(k,x)]
-          | otherwise           = []
+      years o = if yearsQ o /= [] then yearsQ o else [([],[])]
+      zipData = uncurry . zipWith $ \(k,c) y -> if k /= []
+                                                then (,) k       (c, snd y)
+                                                else (,) (fst y) (c, snd y)
+      contribsQ o
+          | OContrib k _ c d _ <- o = [(k,if b then c else d)]
+          | otherwise               = []
 
-getYears :: Output -> [String]
+getYears :: Output -> [(String,String)]
 getYears o
-    | OYear x _ _ <- o = [x]
+    | OYear x k _ <- o = [(k,x)]
     | otherwise        = []
 
+getDuplNameData :: [CitationGroup] -> [[NameData]]
+getDuplNameData g
+    = groupBy (\a b -> collide a == collide b) . sortBy (comparing collide) $ duplicates
+    where
+      collide    = nameCollision
+      nameData   = nub $ concatMap (mapGroupOutput getName) g
+      duplicates = filter (flip elem (getDuplNames g) . collide) nameData
 
+getDuplNames :: [CitationGroup] -> [[Output]]
+getDuplNames xs
+    = nub . catMaybes . snd . mapAccumL dupl [] . getData $ xs
+    where
+      getData = concatMap (mapGroupOutput getName)
+      dupl a c = if nameCollision c `elem` map nameCollision a
+                 then (a,Just $ nameCollision c)
+                 else (c:a,Nothing)
+
+getName :: Output -> [NameData]
+getName = query getName'
+    where
+      getName' o
+          | OName i n ns _ <- o = [ND i n (n:ns) []]
+          | otherwise           = []
+
+generateYearSuffix :: [Reference] -> [(String, [Output])] -> [(String,String)]
+generateYearSuffix refs
+    = concatMap (flip zip suffs) .
+      -- sort clashing cites using their position in the sorted bibliography
+      getFst . map sort' . map (filter ((/=) 0 . snd)) . map (map getP) .
+      -- group clashing cites
+      getFst . map nub . groupBy (\a b -> snd a == snd b) . sort' . filter ((/=) [] . snd)
+    where
+      sort'  :: (Ord a, Ord b) => [(a,b)] -> [(a,b)]
+      sort'  = sortBy (comparing snd)
+      getFst = map $ map fst
+      getP k = case findIndex ((==) k . refId) refs of
+                   Just x -> (k, x + 1)
+                   _      -> (k,     0)
+      suffs = l ++ [x ++ y | x <- l, y <- l ]
+      l = map (return . chr) [97..122]
+
+setYearSuffCollision :: Bool -> [CiteData] -> [Output] -> [Output]
+setYearSuffCollision b cs = proc (setYS cs) . (map $ \x -> if hasYearSuf x then x else addYearSuffix x)
+    where
+      setYS c o
+          | OYearSuf _ k _ f <- o = OYearSuf [] k (getCollision k c) f
+          | otherwise             = o
+      collide = if b then disambed else disambYS
+      getCollision k c = case find ((==) k . key) c of
+                           Just x -> if collide x == []
+                                     then [OStr (citYear x) emptyFormatting]
+                                     else collide x
+                           _      -> []
+
+updateYearSuffixes :: [(String, String)] -> Output -> Output
+updateYearSuffixes yss o
+ | OYearSuf _ k c f <- o = case lookup k yss of
+                             Just x -> OYearSuf x k c f
+                             _      -> ONull
+ | otherwise             = o
+
+getYearSuffixes :: Output -> [(String,[Output])]
+getYearSuffixes o
+    | OYearSuf _ k c _ <- o = [(k,c)]
+    | otherwise             = []
+
+rmYearSuff :: [CitationGroup] -> [CitationGroup]
+rmYearSuff = proc rmYS
+    where
+      rmYS o
+          | OYearSuf _ _ _ _  <- o = ONull
+          | otherwise              = o
+
 -- List Utilities
 
 -- | Try to disambiguate a list of lists by returning the first non
@@ -221,13 +320,13 @@
       else heads
     where
       heads = map head' l
-      rest  = map (\(b,x) -> if b then tail' x else head' x) . zip (same heads)
+      rest  = map (\(b,x) -> if b then tail_ x else head' x) . zip (same heads)
 
       hasMult []     = False
       hasMult (x:xs) = length x > 1 || hasMult xs
 
-      tail' [x] = [x]
-      tail'  x  = if null x then x else tail x
+      tail_ [x] = [x]
+      tail_  x  = if null x then x else tail x
 
 -- | For each element a list of 'Bool': 'True' if the element has a
 -- duplicate in the list:
@@ -246,4 +345,3 @@
 
 allTheSame :: Eq a => [a] -> Bool
 allTheSame = and . same
-
diff --git a/src/Text/CSL/Reference.hs b/src/Text/CSL/Reference.hs
--- a/src/Text/CSL/Reference.hs
+++ b/src/Text/CSL/Reference.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -fglasgow-exts #-} -- for deriving Typeable
+{-# LANGUAGE GeneralizedNewtypeDeriving, PatternGuards,
+  DeriveDataTypeable, ExistentialQuantification #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Text.CSL.Reference
@@ -17,9 +18,12 @@
 
 import Data.Char  ( isUpper, toLower      )
 import Data.List  ( elemIndex, isPrefixOf )
-import Data.Maybe ( fromJust              )
+import Data.Maybe ( fromMaybe             )
 import Data.Generics
 
+import Text.CSL.Style
+import Text.CSL.Output.Plain ((<+>))
+
 -- | An existential type to wrap the different types a 'Reference' is
 -- made of. This way we can create a map to make queries easier.
 data Value = forall a . Data a => Value a
@@ -50,26 +54,32 @@
     | Just v <- fromValue val :: Maybe [RefDate] = v /= []
     | Just v <- fromValue val :: Maybe Int       = v /= 0
     | Just v <- fromValue val :: Maybe CNum      = v /= 0
-    | Just v <- fromValue val :: Maybe Locator   = v /= NoneLoc
     | otherwise = False
 
 data Empty = Empty deriving ( Typeable, Data )
 
 data Agent
-    = Entity String
-    | Person { namePrefix ::  String
-             , givenName  :: [String]
-             , initials   ::  String
-             , articular  ::  String
-             , familyName ::  String
-             , nameSuffix ::  String
-             } deriving ( Show, Read, Eq, Typeable, Data )
+    = Agent { givenName       :: [String]
+            , droppingPart    ::  String
+            , nonDroppingPart ::  String
+            , familyName      ::  String
+            , nameSuffix      ::  String
+            , literal         ::  String
+            , commaSuffix     ::  Bool
+            }
+      deriving ( Read, Eq, Typeable, Data )
 
+instance Show Agent where
+    show (Agent g d n f s [] _) = (foldr (<+>) [] g) <+> d <+> n <+> f <+> s
+    show (Agent _ _ _ _ _ l  _) = l
+
 data RefDate =
-    RefDate { year  :: Int
-            , month :: Int
-            , day   :: Int
-            , other :: String
+    RefDate { year   :: String
+            , month  :: String
+            , season :: String
+            , day    :: String
+            , other  :: String
+            , circa  :: String
             } deriving ( Show, Read, Eq, Typeable, Data )
 
 data RefType
@@ -118,7 +128,7 @@
 -- | The 'Reference' record.
 data Reference =
     Reference
-    { citeKey            :: String
+    { refId              :: String
     , refType            :: RefType
 
     , author             :: [Agent]
@@ -126,12 +136,11 @@
     , translator         :: [Agent]
     , recipient          :: [Agent]
     , interviewer        :: [Agent]
-    , publisher          :: [Agent]
     , composer           :: [Agent]
-    , originalPublisher  :: [Agent]
     , originalAuthor     :: [Agent]
     , containerAuthor    :: [Agent]
     , collectionEditor   :: [Agent]
+    , editorialDirector  :: [Agent]
 
     , issued             :: [RefDate]
     , eventDate          :: [RefDate]
@@ -140,10 +149,13 @@
     , originalDate       :: [RefDate]
 
     , title              :: String
+    , shortTitle         :: String
     , containerTitle     :: String
     , collectionTitle    :: String
-    , collectionNumber   :: Int
+    , collectionNumber   :: String --Int
     , originalTitle      :: String
+    , publisher          :: String
+    , originalPublisher  :: String
     , publisherPlace     :: String
     , archive            :: String
     , archivePlace       :: String
@@ -151,10 +163,11 @@
     , event              :: String
     , eventPlace         :: String
     , page               :: String
-    , locator            :: Locator
+    , pageFirst          :: String
+    , numberOfPages      :: String
     , version            :: String
     , volume             :: String
-    , numberOfVolumes    :: Int
+    , numberOfVolumes    :: String --Int
     , issue              :: String
     , chapterNumber      :: String
     , medium             :: String
@@ -171,16 +184,17 @@
     , url                :: String
     , doi                :: String
     , isbn               :: String
+    , categories         :: [String]
 
-    , citationNumber     :: CNum
-    , yearSuffix         :: String
-    , citationLabel      :: String
+    , citationNumber           :: CNum
+    , firstReferenceNoteNumber :: Int
+    , citationLabel            :: String
     } deriving ( Eq, Show, Read, Typeable, Data )
 
 emptyReference :: Reference
 emptyReference =
     Reference
-    { citeKey             = []
+    { refId               = []
     , refType             = NoType
 
     , author              = []
@@ -188,12 +202,11 @@
     , translator          = []
     , recipient           = []
     , interviewer         = []
-    , publisher           = []
     , composer            = []
-    , originalPublisher   = []
     , originalAuthor      = []
     , containerAuthor     = []
     , collectionEditor    = []
+    , editorialDirector   = []
 
     , issued              = []
     , eventDate           = []
@@ -202,10 +215,14 @@
     , originalDate        = []
 
     , title               = []
+    , shortTitle          = []
     , containerTitle      = []
     , collectionTitle     = []
-    , collectionNumber    = 0
+
+    , collectionNumber    = []
     , originalTitle       = []
+    , publisher           = []
+    , originalPublisher   = []
     , publisherPlace      = []
     , archive             = []
     , archivePlace        = []
@@ -213,10 +230,11 @@
     , event               = []
     , eventPlace          = []
     , page                = []
-    , locator             = NoneLoc
+    , pageFirst           = []
+    , numberOfPages       = []
     , version             = []
     , volume              = []
-    , numberOfVolumes     = 0
+    , numberOfVolumes     = []
     , issue               = []
     , chapterNumber       = []
     , medium              = []
@@ -233,122 +251,110 @@
     , url                 = []
     , doi                 = []
     , isbn                = []
+    , categories          = []
 
-    , citationNumber      = CNum 0
-    , yearSuffix          = []
-    , citationLabel       = []
+    , citationNumber           = CNum 0
+    , firstReferenceNoteNumber = 0
+    , citationLabel            = []
     }
 
--- | With the list of 'Reference's and the tuple (citation key,
--- locator), return the needed reference with the correct locator set.
-getReference :: [Reference] -> (String,String) -> Reference
-getReference  r
-    = snd . getReference' r . flip (,) ("",0)
+parseLocator :: String -> (String, String)
+parseLocator s
+    | "b"    `isPrefixOf` formatField s = mk "book"
+    | "ch"   `isPrefixOf` formatField s = mk "chapter"
+    | "co"   `isPrefixOf` formatField s = mk "column"
+    | "fi"   `isPrefixOf` formatField s = mk "figure"
+    | "fo"   `isPrefixOf` formatField s = mk "folio"
+    | "i"    `isPrefixOf` formatField s = mk "issue"
+    | "l"    `isPrefixOf` formatField s = mk "line"
+    | "n"    `isPrefixOf` formatField s = mk "note"
+    | "o"    `isPrefixOf` formatField s = mk "opus"
+    | "para" `isPrefixOf` formatField s = mk "paragraph"
+    | "part" `isPrefixOf` formatField s = mk "part"
+    | "p"    `isPrefixOf` formatField s = mk "page"
+    | "sec"  `isPrefixOf` formatField s = mk "section"
+    | "sub"  `isPrefixOf` formatField s = mk "sub verbo"
+    | "ve"   `isPrefixOf` formatField s = mk "verse"
+    | "v"    `isPrefixOf` formatField s = mk "volume"
+    | otherwise                         =    ([], [])
+    where
+      mk c = if null s then ([], []) else (,) c . unwords . tail . words $ s
 
--- | With the 'Reference' list and the generated position for each
--- tuple of citation key and locator, produce a list of 'Reference's
--- with their positions (which come first.
-getReference' :: [Reference] -> ((String,String),(String,Int)) -> (String, Reference)
-getReference'  r ((c,l),(p,n))
-    = case c `elemIndex` map citeKey r of
-        Just i  -> (,) p $ (r !! i)
-                           { locator        = parseLocator l
-                           , citationNumber = CNum n }
-        Nothing -> (,) p $ emptyReference
-                           { title          = c ++ " not found!"
-                           , citationNumber = CNum n }
+getReference :: [Reference] -> Cite -> Reference
+getReference  r c
+    = case citeId c `elemIndex` map refId r of
+        Just i  -> setPageFirst $ r !! i
+        Nothing -> emptyReference { title = citeId c ++ " not found!" }
 
-data Locator
-    = NoneLoc
-    | BookLoc    String
-    | ChapterLoc String
-    | ColumnLoc  String
-    | FigureLoc  String
-    | FolioLoc   String
-    | IssueLoc   String
-    | LineLoc    String
-    | NoteLoc    String
-    | OpusLoc    String
-    | PageLoc    String
-    | PageFstLoc String
-    | ParaLoc    String
-    | PartLoc    String
-    | SecLoc     String
-    | SubVerbLoc String
-    | VolLoc     String
-    | VerseLoc   String
-      deriving ( Read, Eq, Typeable, Data )
+processCites :: [Reference] -> [[Cite]] -> [[(Cite, Reference)]]
+processCites rs cs
+    = setCitationNumber $ procGr [[]] cs
+    where
+      procRef r = case filter ((==) (refId r) . citeId) $ concat cs of
+                    x:_ -> r { firstReferenceNoteNumber = readNum $ citeNoteNumber x}
+                    []  -> r
+      getRef  c = case filter ((==) (citeId c) . refId) rs of
+                    x:_ -> procRef $ setPageFirst x
+                    []  -> emptyReference { title = citeId c ++ " not found!" }
 
-instance Show Locator where
-    show = map toLower . reverse . drop 3 . reverse . showConstr . toConstr
+      procGr _ [] = []
+      procGr a (x:xs) = let (a',res) = procCs a x
+                        in res : procGr (a' ++ [[]]) xs
 
-locString :: Locator -> String
-locString l
-    | BookLoc    s <- l =  s
-    | ChapterLoc s <- l =  s
-    | ColumnLoc  s <- l =  s
-    | FigureLoc  s <- l =  s
-    | FolioLoc   s <- l =  s
-    | IssueLoc   s <- l =  s
-    | LineLoc    s <- l =  s
-    | NoteLoc    s <- l =  s
-    | OpusLoc    s <- l =  s
-    | PageLoc    s <- l =  s
-    | PageFstLoc s <- l =  s
-    | ParaLoc    s <- l =  s
-    | PartLoc    s <- l =  s
-    | SecLoc     s <- l =  s
-    | SubVerbLoc s <- l =  s
-    | VolLoc     s <- l =  s
-    | VerseLoc   s <- l =  s
-    | otherwise         = []
+      procCs a [] = (a,[])
+      procCs a (c:xs)
+          | isIbidC, isLocSet = go "ibid-with-locator-c"
+          | isIbid,  isLocSet = go "ibid-with-locator"
+          | isIbidC           = go "ibid-c"
+          | isIbid            = go "ibid"
+          | isElem            = go "subsequent"
+          | otherwise         = go "first"
+          where
+            go s = let addCite    = if last a /= [] then init a ++ [last a ++ [c]] else init a ++ [[c]]
+                       (a', rest) = procCs addCite xs
+                   in  (a', (c { citePosition = s}, getRef c) : rest)
+            isElem   = citeId c `elem` map citeId (concat a)
+            -- Ibid in same citation
+            isIbid   = last a /= [] && citeId c == citeId (last $ last a)
+            -- Ibid in different citations (must be capitalized)
+            isIbidC  = init a /= [] && length (last $ init a) == 1 &&
+                       last a == [] && citeId c == citeId (head . last $ init a)
+            isLocSet = citeLocator c /= ""
 
-parseLocator :: String -> Locator
-parseLocator s
-    | "b"    `isPrefixOf` formatField s = mk BookLoc
-    | "ch"   `isPrefixOf` formatField s = mk ChapterLoc
-    | "co"   `isPrefixOf` formatField s = mk ColumnLoc
-    | "fi"   `isPrefixOf` formatField s = mk FigureLoc
-    | "fo"   `isPrefixOf` formatField s = mk FolioLoc
-    | "i"    `isPrefixOf` formatField s = mk IssueLoc
-    | "l"    `isPrefixOf` formatField s = mk LineLoc
-    | "n"    `isPrefixOf` formatField s = mk NoteLoc
-    | "o"    `isPrefixOf` formatField s = mk OpusLoc
-    | "para" `isPrefixOf` formatField s = mk ParaLoc
-    | "part" `isPrefixOf` formatField s = mk PartLoc
-    | "p"    `isPrefixOf` formatField s = mk PageLoc
-    | "sec"  `isPrefixOf` formatField s = mk SecLoc
-    | "sub"  `isPrefixOf` formatField s = mk SubVerbLoc
-    | "ve"   `isPrefixOf` formatField s = mk VerseLoc
-    | "v"    `isPrefixOf` formatField s = mk VolLoc
---    | "p"  `isPrefixOf` formatField s = mk PageFstLoc
-    | otherwise                       =    NoneLoc
+setCitationNumber :: [[(Cite, Reference)]] -> [[(Cite, Reference)]]
+setCitationNumber csrs = map (map setIt) csrs
     where
-      mk c = if null s then NoneLoc else c . concat . tail . words $ s
+      selectFirst = map citeId . filter ((==) "first" . citePosition) . concatMap (map fst)
+      setIt (c,r) = case elemIndex (citeId c) (selectFirst csrs) of
+                      Just i  -> (c,r {citationNumber = CNum (i + 1)})
+                      Nothing -> (c,r)
 
--- | For each citation group generate the position and the citation
--- number of each citation.
-generatePosition :: [[(String,String)]] -> [[((String,String),(String,Int))]]
-generatePosition = getPos ([],[])
+setPageFirst :: Reference -> Reference
+setPageFirst r = if ('-' `elem` page r)
+                 then r { pageFirst = takeWhile (/= '-') $ page r}
+                 else r
 
-getPos :: (Eq a) => ([a], [a])
-        -> [[(a, String)]] -> [[((a, String), (String, Int))]]
-getPos _ [] = []
-getPos (ac,cl) (x:xs)
-    = doGroup : getPos (ac ++ (map fst x), cl ++ fstcits) xs
+setNearNote :: Style -> [[Cite]] -> [[Cite]]
+setNearNote s cs
+    = procGr [] cs
     where
-      fstcits = map (fst . fst) . filter ((==) "first" . fst . snd) $ doGroup
-      doGroup = doGet (ac,cl) x
-      doGet _ [] = []
-      doGet (a,c) ((k,l):ys)
-          | isIbid
-          , isSet     = ((k, l), ("ibid-with-locator", citNum)) : doGet (a ++ [k], c       ) ys
-          | isIbid    = ((k, l), ("ibid"             , citNum)) : doGet (a ++ [k], c       ) ys
-          | isElem    = ((k, l), ("subsequent"       , citNum)) : doGet (a ++ [k], c       ) ys
-          | otherwise = ((k, l), ("first"            , newCit)) : doGet (a ++ [k], c ++ [k]) ys
+      near_note   = let nn = fromMaybe [] . lookup "near-note-distance" . citOptions . citation $ s
+                    in  if nn == [] then 5 else readNum nn
+      procGr _ [] = []
+      procGr a (x:xs) = let (a',res) = procCs a x
+                        in res : procGr a' xs
+
+      procCs a []     = (a,[])
+      procCs a (c:xs) = (a', c { nearNote = isNear} : rest)
           where
-            newCit  = 1 + length c
-            citNum  = (+) 1 . fromJust . elemIndex k $ c
-            isSet   = l /= ""
-            isElem  = k `elem` a
-            isIbid  = isElem && k == last a
+            (a', rest) = procCs (c:a) xs
+            isNear     = case filter ((==) (citeId c) . citeId) a of
+                           x:_ -> citeNoteNumber c /= "0" &&
+                                  citeNoteNumber x /= "0" &&
+                                  readNum (citeNoteNumber c) - readNum (citeNoteNumber x) <= near_note
+                           _   -> False
+
+readNum :: String -> Int
+readNum s = case reads s of
+              [(x,"")] -> x
+              _        -> 0
diff --git a/src/Text/CSL/Style.hs b/src/Text/CSL/Style.hs
--- a/src/Text/CSL/Style.hs
+++ b/src/Text/CSL/Style.hs
@@ -1,5 +1,4 @@
-{-# OPTIONS_GHC -fglasgow-exts #-} -- for deriving Typeable
-{-# LANGUAGE PatternGuards #-}
+{-# LANGUAGE PatternGuards, DeriveDataTypeable #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Text.CSL.Style
@@ -16,21 +15,54 @@
 
 module Text.CSL.Style where
 
-import Data.Generics
+import Data.List ( nubBy, isPrefixOf )
+import Data.Generics ( Typeable, Data
+                     , everywhere, everything, mkT, mkQ)
+import Text.JSON
+import Text.Pandoc.Definition ( Inline )
 
 -- | The representation of a parsed CSL style.
 data Style
     = Style
-      { styleClass  ::  String
-      , styleInfo   ::  Maybe CSInfo
-      , styleLang   ::  String
-      , styleLocale ::  String
-      , csTerms     :: [TermMap]
-      , csMacros    :: [MacroMap]
-      , citation    ::  Citation
-      , biblio      ::  Maybe Bibliography
+      { styleVersion       ::  String
+      , styleClass         ::  String
+      , styleInfo          ::  Maybe CSInfo
+      , styleDefaultLocale ::  String
+      , styleLocale        :: [Locale]
+      , csOptions          :: [Option]
+      , csMacros           :: [MacroMap]
+      , citation           ::  Citation
+      , biblio             ::  Maybe Bibliography
       } deriving ( Show, Typeable, Data )
 
+data Locale
+    = Locale
+      { localeVersion :: String
+      , localeLang    :: String
+      , localeOptions :: [Option]
+      , localeTermMap :: [TermMap]
+      , localeDate    :: [Element]
+      } deriving ( Show, Eq, Typeable, Data )
+
+-- | With the 'defaultLocale', the locales-xx-XX.xml loaded file and
+-- the parsed 'Style' cs:locale elements, produce the final 'Locale'
+-- as the only element of a list, taking into account CSL locale
+-- prioritization.
+mergeLocales :: String -> Locale -> [Locale] -> [Locale]
+mergeLocales s l ls = doMerge list
+    where
+      list = filter ((==) s . localeLang) ls ++
+             filter ((\x -> x /= [] && x `isPrefixOf` s) . localeLang) ls ++
+             filter ((==) [] . localeLang) ls
+      doMerge x = return l { localeOptions = newOpt     x
+                           , localeTermMap = newTermMap x
+                           , localeDate    = newDate    x
+                           }
+      newOpt     x = nubBy (\a b -> fst a == fst b) (concatMap localeOptions x ++ localeOptions l)
+      newTermMap x = nubBy (\a b -> fst a == fst b) (concatMap localeTermMap x ++ localeTermMap l)
+      newDate    x = nubBy (\(Date _ a _ _ _ _)
+                             (Date _ b _ _ _ _) -> a == b) (concatMap localeDate x ++ localeDate l)
+
 type TermMap
     = ((String,Form),(String,String))
 
@@ -53,6 +85,9 @@
 
 type Option = (String,String)
 
+mergeOptions :: [Option] -> [Option] -> [Option]
+mergeOptions os = nubBy (\x y -> fst x == fst y) . (++) os
+
 data Layout
     = Layout
       { layFormat ::  Formatting
@@ -61,19 +96,18 @@
       } deriving ( Show, Typeable, Data )
 
 data Element
-    = Choose       IfThen   [IfThen]     [Element]
-    | Macro        String     Form        Formatting
+    = Choose       IfThen    [IfThen]    [Element]
+    | Macro        String                 Formatting
     | Const        String                 Formatting
-    | PointLocator String     Form        Formatting
     | Variable    [String]    Form        Formatting Delimiter
-    | Term         String     Form        Formatting Bool Bool
-    | Label        String     Form        Formatting Bool Bool
+    | Term         String     Form        Formatting Bool
+    | Label        String     Form        Formatting Plural
     | Number       String     NumericForm Formatting
     | ShortNames  [String]                Formatting Delimiter
     | Names       [String]   [Name]       Formatting Delimiter [Element]
     | Substitute  [Element]
-    | Group        Formatting Delimiter   String    [Element]
-    | Date        [String]    Formatting  Delimiter [DatePart]
+    | Group        Formatting Delimiter  [Element]
+    | Date        [String]    DateForm    Formatting Delimiter [DatePart] String
       deriving ( Show, Eq, Typeable, Data )
 
 data IfThen
@@ -82,18 +116,16 @@
 
 data Condition
     = Condition
-      { isType         :: [String]
-      , isSet          :: [String]
-      , isNumeric      :: [String]
-      , isDate         :: [String]
-      , isPosition     :: [String]
-      , disambiguation :: [String]
-      , isLocator      :: [String]
-      }
-      deriving ( Eq, Show, Typeable, Data )
+      { isType          :: [String]
+      , isSet           :: [String]
+      , isNumeric       :: [String]
+      , isUncertainDate :: [String]
+      , isPosition      :: [String]
+      , disambiguation  :: [String]
+      , isLocator       :: [String]
+      } deriving ( Eq, Show, Typeable, Data )
 
-type Delimiter
-    = String
+type Delimiter = String
 
 data Match
     = Any
@@ -107,74 +139,100 @@
 match None = and . map not
 
 data DatePart
-    = DatePart String String Formatting
-      deriving ( Show, Eq, Typeable, Data )
+    = DatePart
+      { dpName       :: String
+      , dpForm       :: String
+      , dpRangeDelim :: String
+      , dpFormatting :: Formatting
+      } deriving ( Show, Eq, Typeable, Data )
 
 defaultDate :: [DatePart]
 defaultDate
-    = [ DatePart "year"  "" emptyFormatting
-      , DatePart "month" "" emptyFormatting
-      , DatePart "day"   "" emptyFormatting]
+    = [ DatePart "year"  "" "-" emptyFormatting
+      , DatePart "month" "" "-" emptyFormatting
+      , DatePart "day"   "" "-" emptyFormatting]
 
 data Sort
     = SortVariable String Sorting
-    | SortMacro    String Sorting
+    | SortMacro    String Sorting Int Int String
       deriving ( Eq, Show, Typeable, Data )
 
 data Sorting
     = Ascending  String
     | Descending String
-      deriving ( Eq, Read, Typeable, Data )
-
-instance Show Sorting where
-    show (Ascending  s) = s
-    show (Descending s) = s
+      deriving ( Read, Show, Eq, Typeable, Data )
 
 instance Ord Sorting where
-    compare (Ascending  a) (Ascending  b) = compare a b
-    compare (Descending a) (Descending b) = compare b a
-    compare             _              _  = EQ
+    compare (Ascending  []) (Ascending  []) = EQ
+    compare (Ascending  []) (Ascending   _) = GT
+    compare (Ascending   _) (Ascending  []) = LT
+    compare (Ascending   a) (Ascending   b) = compare' a b
+    compare (Descending []) (Descending []) = EQ
+    compare (Descending []) (Descending  _) = GT
+    compare (Descending  _) (Descending []) = LT
+    compare (Descending  a) (Descending  b) = compare' b a
+    compare              _               _  = EQ
 
+compare' :: String -> String -> Ordering
+compare' x y
+    = case (head x, head y) of
+        ('-','-') -> compare y x
+        ('-', _ ) -> LT
+        (_  ,'-') -> GT
+        _         -> compare x y
+
 data Form
     = Long
-    | Verb
     | Short
+    | Count
+    | Verb
     | VerbShort
     | Symbol
+    | NotSet
       deriving ( Eq, Show, Read, Typeable, Data )
 
 data NumericForm
     = Numeric
     | Ordinal
     | Roman
+    | LongOrdinal
       deriving ( Eq, Show, Read, Typeable, Data )
 
+data DateForm
+    = TextDate
+    | NumericDate
+    | NoFormDate
+      deriving ( Eq, Show, Read, Typeable, Data )
+
+data Plural
+    = Contextual
+    | Always
+    | Never
+      deriving ( Eq, Show, Read, Typeable, Data )
+
 data Name
-    = Name      Form Formatting NameFormatting Delimiter
-    | NameLabel Form Formatting Bool Bool
+    = Name      Form Formatting NameAttrs Delimiter [NamePart]
+    | NameLabel Form Formatting Plural
+    | EtAl           Formatting String
       deriving ( Eq, Show, Typeable, Data )
 
+type NameAttrs = [(String, String)]
+
+data NamePart
+    = NamePart String Formatting
+      deriving ( Show, Eq, Typeable, Data )
+
 isName :: Name -> Bool
 isName x = case x of Name {} -> True; _ -> False
 
-data NameFormatting
-    = NameFormatting
-      { andConnector          :: String
-      , delimiterPrecedesLast :: String
-      , nameAsSortOrder       :: String
-      , sortSeparator         :: String
-      , initializeWith        :: String
-      } deriving ( Eq, Show, Typeable, Data )
+isNames :: Element -> Bool
+isNames x = case x of Names {} -> True; _ -> False
 
-defaultNameFormatting :: NameFormatting
-defaultNameFormatting
-    = NameFormatting
-      { andConnector          = "text"
-      , delimiterPrecedesLast = ""
-      , nameAsSortOrder       = ""
-      , sortSeparator         = ""
-      , initializeWith        = ""
-      }
+hasEtAl :: [Name] -> Bool
+hasEtAl = not . null . query getEtAl
+    where getEtAl n
+              | EtAl _ _ <- n = [n]
+              | otherwise     = []
 
 data Formatting
     = Formatting
@@ -189,12 +247,38 @@
       , textCase       :: String
       , display        :: String
       , quotes         :: Bool
-      } deriving ( Eq, Ord, Read, Show, Typeable, Data )
+      , stripPeriods   :: Bool
+      , noCase         :: Bool
+      , noDecor        :: Bool
+      } deriving ( Read, Eq, Ord, Typeable, Data )
 
+instance Show Formatting where show _ = "emptyFormatting"
+
 emptyFormatting :: Formatting
 emptyFormatting
-    = Formatting [] [] [] [] [] [] [] [] [] [] False
+    = Formatting [] [] [] [] [] [] [] [] [] [] False False False False
 
+unsetAffixes :: Formatting -> Formatting
+unsetAffixes f = f {prefix = [], suffix = []}
+
+mergeFM :: Formatting -> Formatting -> Formatting
+mergeFM (Formatting aa ab ac ad ae af ag ah ai aj ak al am an)
+        (Formatting ba bb bc bd be bf bg bh bi bj bk bl bm bn) =
+                   Formatting (ba `betterThen` aa)
+                              (bb `betterThen` ab)
+                              (bc `betterThen` ac)
+                              (bd `betterThen` ad)
+                              (be `betterThen` ae)
+                              (bf `betterThen` af)
+                              (bg `betterThen` ag)
+                              (bh `betterThen` ah)
+                              (bi `betterThen` ai)
+                              (bj `betterThen` aj)
+                              (if bk /= ak then bk else ak)
+                              (if bl /= al then bl else al)
+                              (if bm /= am then bm else am)
+                              (if bn /= an then bn else an)
+
 data CSInfo
     = CSInfo
       { csiTitle      :: String
@@ -210,27 +294,73 @@
 -- | The formatted output, produced after post-processing the
 -- evaluated citations.
 data FormattedOutput
-    = FO String Formatting [FormattedOutput]
-    | Delimiter String
+    = FO          Formatting [FormattedOutput]
+    | FN   String Formatting
+    | FS   String Formatting
+    | FDel String
+    | FPan [Inline]
+    | FNull
       deriving ( Eq, Show )
 
 -- | The 'Output' generated by the evaluation of a style. Must be
 -- further processed for disambiguation and collapsing.
 data Output
-    = OStr     String             Formatting -- ^ A simple 'String'
-    | OName    String  [String]   Formatting -- ^ A (family) name with the list of given names.
-    | OYear    String   String    Formatting -- ^ The year and a suffix if needed
-    | OCitNum  Int                Formatting -- ^ The citation number
-    | Output  [Output]            Formatting -- ^ Some nested 'Output'
-    | OContrib String  [Output]   [[Output]] -- ^ The citation key with the contributor(s), and everything
-                                             -- used for disambiguation.
-    | ODel     String                        -- ^ A delimiter string.
+    = ONull
+    | OSpace
+    | OPan    [Inline]
+    | ODel     String                                   -- ^ A delimiter string.
+    | OStr     String             Formatting            -- ^ A simple 'String'
+    | ONum     Int                Formatting            -- ^ A number (used to count contributors)
+    | OCitNum  Int                Formatting            -- ^ The citation number
+    | OYear    String    String   Formatting            -- ^ The year and the citeId
+    | OYearSuf String    String   [Output]   Formatting -- ^ The year suffix, the citeId and a holder for collision data
+    | OName    String   [Output] [[Output]]  Formatting -- ^ A (family) name with the list of given names.
+    | OContrib String    String   [Output] [Output] [[Output]] -- ^ The citation key, the role (author, editor, etc.), the contributor(s),
+                                                        -- the output needed for year suf. disambiguation, and everything used for
+                                                        -- name disambiguation.
+    | Output  [Output]            Formatting            -- ^ Some nested 'Output'
       deriving ( Eq, Ord, Show, Typeable, Data )
 
+data Affix
+    = PlainText String
+    | PandocText [Inline]
+      deriving ( Show, Read, Eq, Ord, Typeable, Data )
+
+-- | Needed for the test-suite.
+instance JSON Affix where
+    showJSON (PlainText  s) = JSString . toJSString $ s
+    showJSON (PandocText i) = JSString . toJSString $ show i
+    readJSON jv
+        | JSString js <- jv
+        , [(x,"")] <- reads (fromJSString js) = Ok x
+        | otherwise                           = Ok $ PlainText []
+
+type Citations = [[Cite]]
+data Cite
+    = Cite
+      { citeId         :: String
+      , citePrefix     :: Affix
+      , citeSuffix     :: Affix
+      , citeLabel      :: String
+      , citeLocator    :: String
+      , citeNoteNumber :: String
+      , citePosition   :: String
+      , nearNote       :: Bool
+      , authorInText   :: Bool
+      , suppressAuthor :: Bool
+      , citeHash       :: Int
+      } deriving ( Show, Eq, Typeable, Data )
+
+emptyAffix :: Affix
+emptyAffix = PlainText []
+
+emptyCite :: Cite
+emptyCite  = Cite [] emptyAffix emptyAffix [] [] [] [] False False False 0
+
 -- | A citation group: a list of evaluated citations, the 'Formatting'
 -- to be applied to them, and the 'Delimiter' between individual
 -- citations.
-data CitationGroup = CG Formatting String [Output] deriving ( Show, Eq, Typeable, Data )
+data CitationGroup = CG [(Cite, Output)] Formatting Delimiter [(Cite, Output)] deriving ( Show, Eq, Typeable, Data )
 
 data BiblioData
     = BD
@@ -248,33 +378,69 @@
     = CD
       { key        ::   String
       , collision  ::  [Output]
+      , disambYS   ::  [Output]
       , disambData :: [[Output]]
       , disambed   ::  [Output]
       , citYear    ::   String
       } deriving ( Show, Typeable, Data )
 
 instance Eq CiteData where
-    (==) (CD ka ca _ _ _)
-         (CD kb cb _ _ _) = ka == kb && ca == cb
+    (==) (CD ka ca _ _ _ _)
+         (CD kb cb _ _ _ _) = ka == kb && ca == cb
 
+data NameData
+    = ND
+      { nameKey        ::   String
+      , nameCollision  ::  [Output]
+      , nameDisambData :: [[Output]]
+      , nameDataSolved ::  [Output]
+      } deriving ( Show, Typeable, Data )
+
+instance Eq NameData where
+    (==) (ND ka ca _ _)
+         (ND kb cb _ _) = ka == kb && ca == cb
+
+formatOutputList :: [Output] -> [FormattedOutput]
+formatOutputList = filterUseless . map formatOutput
+    where
+      filterUseless [] = []
+      filterUseless (o:os)
+          | FO _ [] <- o =                          filterUseless os
+          | FO f xs <- o
+          , isEmpty f    =      filterUseless xs ++ filterUseless os
+          | FO f xs <- o = case filterUseless xs of
+                             []      ->             filterUseless os
+                             xs'     -> FO  f xs' : filterUseless os
+          | FNull   <- o =                          filterUseless os
+          | otherwise    =                      o : filterUseless os
+          where
+            isEmpty f = f == emptyFormatting
+
 -- | Convert evaluated 'Output' into 'FormattedOutput', ready for the
 -- output filters.
 formatOutput :: Output -> FormattedOutput
 formatOutput o
-    | ODel     s     <- o = Delimiter s
-    | OStr     s   f <- o = FO s  f []
-    | OName    s _ f <- o = FO s  f []
-    | OYear    s _ f <- o = FO s  f []
-    | Output   os  f <- o = FO "" f               (format os)
-    | OContrib _ s _ <- o = FO "" emptyFormatting (format  s)
-    | OCitNum  i   f <- o = FO (show i) f []
-    | otherwise     = FO "" emptyFormatting []
+    | OSpace             <- o = FDel " "
+    | OPan     i          <- o = FPan i
+    | ODel     []        <- o = FNull
+    | ODel     s         <- o = FDel s
+    | OStr     []      _ <- o = FNull
+    | OStr     s       f <- o = FS s         f
+    | OYear    s _     f <- o = FS s         f
+    | OYearSuf s _ _   f <- o = FS s         f
+    | ONum     i       f <- o = FS (show  i) f
+    | OCitNum  i       f <- o = FN (add00 i) f
+    | OName  _ s _     f <- o = FO f               (format  s)
+    | OContrib _ _ s _ _ <- o = FO emptyFormatting (format  s)
+    | Output   os      f <- o = FO f               (format os)
+    | otherwise               = FNull
     where
-      format  = map formatOutput
+      format = map formatOutput
+      add00  = reverse . take 5 . flip (++) (repeat '0') . reverse . show
 
 -- | Map the evaluated output of a citation group.
 mapGroupOutput :: (Output -> [a]) -> CitationGroup -> [a]
-mapGroupOutput f (CG _ _ os) = concatMap f os
+mapGroupOutput f (CG _ _ _ os) = concatMap f $ map snd os
 
 -- | A generic processing function.
 proc :: (Typeable a, Data b) => (a -> a) -> b -> b
@@ -287,30 +453,55 @@
 -- | Removes all given names form a 'OName' element with 'proc'.
 rmGivenNames :: Output -> Output
 rmGivenNames o
-    | OName s _ f <- o = OName s [] f
-    | otherwise     = o
+    | OName i s _ f <- o = OName i s [] f
+    | otherwise          = o
 
+rmNameHash :: Output -> Output
+rmNameHash o
+    | OName _ s ss f <- o = OName [] s ss f
+    | otherwise           = o
+
 -- | Removes all contributors' names.
 rmContribs :: Output -> Output
 rmContribs o
-    | OContrib s _ _ <- o = OContrib s [] []
-    | otherwise           = o
+    | OContrib s r _ _ _ <- o = OContrib s r [] [] []
+    | otherwise               = o
 
 -- | Add, with 'proc', a give name to the family name. Needed for
 -- disambiguation.
 addGivenNames :: [Output] -> [Output]
 addGivenNames
-    = reverse . addGN True . reverse
+    = addGN True
     where
       addGN _ [] = []
       addGN b (o:os)
-          | OName _ xs f <- o
-          , xs /= []  = if b then OName (head xs) (tail xs) f : addGN False os else o:os
+          | OName i _ xs f <- o
+          , xs /= []  = if b then OName i (head xs) (tail xs) f : addGN False os else o:os
           | otherwise = o : addGN b os
 
 -- | Add the year suffix to the year. Needed for disambiguation.
 addYearSuffix :: Output -> Output
 addYearSuffix o
-    | OYear y s f <- o = OYear (y ++ s) s f
-    | otherwise        = o
+    | OYear y k       f <- o = Output [OYear y k emptyFormatting,OYearSuf [] k [] emptyFormatting] f
+    | Output (x:xs)   f <- o = if or $ map hasYearSuf (x : xs)
+                               then Output (x : xs) f
+                               else if hasYear x
+                                    then Output (addYearSuffix x : xs) f
+                                    else Output (x : [addYearSuffix $ Output xs emptyFormatting]) f
+    | otherwise              = o
 
+hasYear :: Output -> Bool
+hasYear = not . null . query getYear
+    where getYear o
+              | OYear _ _ _ <- o = [o]
+              | otherwise        = []
+
+
+hasYearSuf :: Output -> Bool
+hasYearSuf = not . null . query getYearSuf
+    where getYearSuf o
+              | OYearSuf _ _ _ _ <- o = ["a"]
+              | otherwise             = []
+
+betterThen :: Eq a => [a] -> [a] -> [a]
+betterThen a b = if a == [] then b else a
diff --git a/test/RefData.hs b/test/RefData.hs
deleted file mode 100644
--- a/test/RefData.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-module RefData where
-
-import Text.CSL.Reference
-
-someReferences :: [Reference]
-someReferences
-    = [ emptyReference
-        { refType         = ArticleNewspaper,
-          issued          = [RefDate 2007 0 0 ""],
-          title           = "Some Title",
-          containerTitle  = "Journal News",
-          page            = "A5",
-          url             = "http://ex.net/1",
-          accessed        = [RefDate 2007 11 12 ""]
-        }
-      , emptyReference
-        { refType         = Book,
-          issued          = [RefDate 2000 0 0 ""],
-          title           = "Splitting the Difference",
-          publisher       = [Entity "University of Chicago Press"],
-          publisherPlace  = "Chicago",
-          author          = [Person "" ["Wendy"] "" "" "Doniger" ""]
-        }
-      , emptyReference
-        { refType         = Book,
-          issued          = [RefDate 1994 0 0 ""],
-          title           = "The social organization of sexuality: Sexual practices in the United States",
-          publisher       = [Entity "University of Chicago Press"],
-          publisherPlace  = "Chicago",
-          author          = [ Person "" ["Edward","O."] "" "" "Laumann" ""
-                            , Person "" ["John"  ,"H."] "" "" "Gagnon" ""
-                            , Person "" ["Robert","T."] "" "" "Michael" ""
-                            ]
-        }
-      , emptyReference
-        { refType         = ArticleJournal,
-          issued          = [RefDate 1998 0 0 ""],
-          title           = "The origin of altruism",
-          containerTitle  = "Nature",
-          issue           = "393",
-          page            = "639-640",
-          author          = [ Person "" ["John","Maynard"] "" "" "Smith" ""
-                            ]
-        }
-      , emptyReference
-        { refType         = Chapter,
-          issued          = [RefDate 2000 0 0 ""],
-          title           = "Introduction: A Chapter Title",
-          containerTitle  = "Edited Book Title",
-          collectionTitle = "Series Title",
-          publisher       = [Entity "ABC Books"],
-          publisherPlace  = "New York",
-          author          = [ Person "" ["Jane"] "" "" "Doe" ""
-                            , Person "" ["John"] "" "" "Smith" ""
-                            ],
-          editor          = [ Person "" ["Jane"] "" "" "Doe" ""
-                            , Person "" ["John"] "" "" "Smith" ""
-                            ]
-        }
-      ]
diff --git a/test/apa b/test/apa
deleted file mode 100644
--- a/test/apa
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?oxygen RNGSchema="http://xbiblio.svn.sourceforge.net/viewvc/*checkout*/xbiblio/csl/schema/trunk/csl.rnc" type="compact"?>
-<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" xml:lang="en">
-  <info>
-    <title>American Psychological Association</title>
-    <id>http://www.zotero.org/styles/apa</id>
-    <link href="http://www.zotero.org/styles/apa"/>
-    <author>
-      <name>Simon Kornblith</name>
-      <email>simon@simonster.com</email>
-    </author>
-    <contributor>
-      <name>Bruce D'Arcus</name>
-    </contributor>
-    <category term="psychology"/>
-    <category term="generic-base"/>
-    <category term="author-date"/>
-    <updated>2008-05-07T12:08:52+00:00</updated>
-  </info>
-  <macro name="container-contributors">
-    <choose>
-      <if type="chapter">
-    <text term="in" text-case="capitalize-first" suffix=" "/>
-    <names variable="editor translator" delimiter=", " suffix=", ">
-      <name and="symbol" initialize-with=". " delimiter=", "/>
-      <label form="short" prefix=" (" text-case="capitalize-first" suffix=".)"/>
-    </names>
-      </if>
-    </choose>
-  </macro>
-  <macro name="secondary-contributors">
-    <choose>
-      <if type="chapter" match="none">
-    <names variable="editor translator" delimiter=", " prefix=" (" suffix=")">
-      <name and="symbol" initialize-with=". " delimiter=", "/>
-      <label form="short" prefix=", " text-case="capitalize-first" suffix="."/>
-    </names>
-      </if>
-    </choose>
-  </macro>
-  <macro name="author">
-    <names variable="author">
-      <name name-as-sort-order="all" and="symbol" sort-separator=", "
-        initialize-with=". " delimiter=", " delimiter-precedes-last="always"/>
-      <label form="short" prefix=" (" suffix=".)" text-case="capitalize-first"/>
-      <substitute>
-        <names variable="editor"/>
-        <names variable="translator"/>
-        <text macro="title"/>
-      </substitute>
-    </names>
-  </macro>
-  <macro name="author-short">
-    <names variable="author">
-      <name form="short" and="symbol" delimiter=", " initialize-with=". "/>
-      <substitute>
-        <names variable="editor"/>
-        <names variable="translator"/>
-        <choose>
-          <if type="book">
-            <text variable="title" form="short" font-style="italic"/>
-          </if>
-          <else>
-            <text variable="title" form="short" quotes="true"/>
-          </else>
-        </choose>
-      </substitute>
-    </names>
-  </macro>
-  <macro name="access">
-    <choose>
-      <if variable="DOI">
-        <text variable="DOI" prefix="doi: "/>
-      </if>
-      <else>
-        <group>
-          <text term="retrieved" text-case="capitalize-first" suffix=" "/>
-          <date variable="accessed" suffix=", ">
-            <date-part name="month" suffix=" "/>
-            <date-part name="day" suffix=", "/>
-            <date-part name="year"/>
-          </date>
-          <group>
-            <text term="from" suffix=" "/>
-            <text variable="URL"/>
-          </group>
-        </group>
-      </else>
-    </choose>
-  </macro>
-  <macro name="title">
-    <choose>
-      <if type="book thesis" match="any">
-        <text variable="title" font-style="italic"/>
-      </if>
-      <else>
-        <text variable="title" suffix=". "/>
-      </else>
-    </choose>
-  </macro>
-  <macro name="publisher">
-    <text variable="genre" suffix=", "/>
-    <group delimiter=": ">
-      <text variable="publisher-place"/>
-      <text variable="publisher"/>
-    </group>
-  </macro>
-  <macro name="event">
-    <text variable="event"/>
-    <text variable="event-place" prefix=", "/>
-  </macro>
-  <macro name="issued">
-    <group prefix=" (" suffix=").">
-      <date variable="issued">
-        <date-part name="year"/>
-      </date>
-      <choose>
-        <if type="book chapter article-journal" match="none">
-          <date variable="issued">
-            <date-part prefix=", " name="month"/>
-            <date-part prefix=" " name="day"/>
-          </date>
-        </if>
-      </choose>
-    </group>
-  </macro>
-  <macro name="issued-year">
-    <date variable="issued">
-      <date-part name="year"/>
-    </date>
-  </macro>
-  <macro name="edition">
-    <choose>
-      <if type="book chapter" match="any">
-    <choose>
-      <if is-numeric="edition">
-        <group delimiter=" ">
-          <number variable="edition" form="ordinal"/>
-          <text term="edition" form="short" suffix="."/>
-        </group>
-      </if>
-      <else>
-        <text variable="edition" suffix="."/>
-      </else>
-    </choose>
-      </if>
-    </choose>
-  </macro>
-  <macro name="locators">
-    <choose>
-      <if type="article-journal article-magazine article-newspaper" match="any">
-        <group prefix=", " delimiter=", ">
-          <group>
-            <text variable="volume" font-style="italic"/>
-            <text variable="issue" prefix="(" suffix=")"/>
-          </group>
-          <text variable="page"/>
-         </group>
-      </if>
-      <else-if type="book chapter" match="any">
-        <group prefix=" (" suffix=")" delimiter=", ">
-          <text macro="edition"/>
-          <group>
-            <text term="volume" form="short" plural="true" text-case="capitalize-first" suffix=". "/>
-            <number variable="number-of-volumes" form="numeric" prefix="1-"/>
-          </group>
-          <group>
-            <text term="volume" form="short" text-case="capitalize-first" suffix=". "/>
-            <number variable="volume" form="numeric"/>
-          </group>
-          <group>
-            <label variable="page" form="short" include-period="true" suffix=" "/>
-            <text variable="page"/>
-          </group>
-        </group>
-      </else-if>
-    </choose>
-  </macro>
-  <macro name="citation-locator">
-    <group>
-      <label variable="locator" include-period="true" form="short"/>
-      <text variable="locator" prefix=" "/>
-    </group>
-  </macro>
-  <citation>
-    <option name="et-al-min" value="6"/>
-    <option name="et-al-use-first" value="1"/>
-    <option name="et-al-subsequent-min" value="3"/>
-    <option name="et-al-subsequent-use-first" value="1"/>
-    <option name="disambiguate-add-year-suffix" value="true"/>
-    <option name="disambiguate-add-names" value="true"/>
-    <option name="disambiguate-add-givenname" value="true"/>
-    <option name="collapse" value="year"/>
-    <sort>
-      <key macro="author"/>
-      <key variable="issued"/>
-    </sort>
-    <layout prefix="(" suffix=")" delimiter="; ">
-      <group delimiter=", ">
-        <text macro="author-short"/>
-        <text macro="issued-year"/>
-        <text macro="citation-locator"/>
-      </group>
-    </layout>
-  </citation>
-  <bibliography>
-    <option name="hanging-indent" value="true"/>
-    <option name="et-al-min" value="6"/>
-    <option name="et-al-use-first" value="6"/>
-    <option name="entry-spacing" value="0"/>
-    <sort>
-      <key macro="author"/>
-      <key variable="issued"/>
-    </sort>
-    <layout suffix=".">
-      <text macro="author" suffix="."/>
-      <text macro="issued"/>
-      <text macro="title" prefix=" "/>
-      <text macro="container-contributors"/>
-      <text macro="secondary-contributors"/>
-      <text variable="container-title" font-style="italic"/>
-      <text variable="collection-title" prefix=", " suffix="."/>
-      <text macro="locators"/>
-      <group delimiter=". " prefix=". ">
-	    <text macro="publisher"/>
-	    <text macro="access"/>
-      </group>
-    </layout>
-  </bibliography>
-</style>
diff --git a/test/locales-it-IT.xml b/test/locales-it-IT.xml
deleted file mode 100644
--- a/test/locales-it-IT.xml
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ciao ciao -->
-<terms xmlns="http://purl.org/net/xbiblio/csl">
-  <locale xml:lang="it">
-    <term name="at">a</term>
-    <term name="in">in</term>
-    <term name="ibid">ibid</term>
-    <term name="accessed">consultato</term>
-    <term name="retrieved">recuperato</term>
-    <term name="from">da</term>
-    <term name="forthcoming">futuro</term>
-    <term name="references">Citazioni bibliografiche</term>
-    <term name="no date">S.d.</term>
-    <term name="and">e</term>
-    <term name="et-al">et al.</term>
-    <term name="interview">intervista</term>
-    <term name="letter">lettera</term>
-    <term name="anonymous">anonimo</term>
-    <term name="anonymous" form="short">anon</term>
-    <term name="and others">e altri</term>
-    <term name="in press">in stampa</term>
-    <term name="online">in linea</term>
-    <term name="cited">citato</term>
-    <term name="internet">internet</term>
-    <term name="presented at">presentato al</term>
-    <term name="anthropology">antropologia</term>
-    <term name="astronomy">astronomia</term>
-    <term name="biology">biologia</term>
-    <term name="botany">botanica</term>
-    <term name="chemistry">chimica</term>
-<!-- ciao ciao -->
-    <term name="engineering">ingegneria</term>
-    <term name="generic-base">generica</term>
-    <term name="geography">geografia</term>
-    <term name="geology">geologia</term>
-    <term name="history">storia</term>
-    <term name="humanities">discipline umanistiche</term>
-    <term name="literature">letteratura</term>
-    <term name="math">matematica</term>
-    <term name="medicine">medicina</term>
-    <term name="philosophy">filosofia</term>
-<!-- ciao ciao -->    <term name="physics">fisica</term>
-    <term name="psychology">psicologia</term>
-    <term name="sociology">sociologia</term>
-    <term name="science">scienze</term>
-    <term name="political_science">scienze politiche</term>
-    <term name="social_science">sociologia</term>
-    <term name="theology">teologia</term>
-    <term name="zoology">zoologia</term>
-    <term name="book">
-      <single>libro</single>
-      <multiple>libri</multiple>
-    </term>
-    <term name="chapter">
-      <single>capitolo</single>
-      <multiple>capitoli</multiple>
-    </term>
-    <term name="column">
-      <single>colonna</single>
-      <multiple>colonne</multiple>
-    </term>
-    <term name="figure">
-      <single>figura</single>
-      <multiple>figure</multiple>
-    </term>
-    <term name="folio">
-      <single>foglio</single>
-      <multiple>fogli</multiple>
-    </term>
-    <term name="issue">
-      <single>numero</single>
-      <multiple>numeri</multiple>
-    </term>
-    <term name="line">
-      <single>riga</single>
-      <multiple>righe</multiple>
-    </term>
-    <term name="note">
-      <single>nota</single>
-      <multiple>note</multiple>
-    </term>
-    <term name="opus">
-      <single>opera</single>
-      <multiple>opere</multiple>
-    </term>
-    <term name="page">
-      <single>pagina</single>
-      <multiple>pagine</multiple>
-    </term>
-    <term name="paragraph">
-      <single>capoverso</single>
-      <multiple>capoversi</multiple>
-    </term>
-    <term name="part">
-      <single>parte</single>
-      <multiple>parti</multiple>
-    </term>
-    <term name="section">
-      <single>paragrafo</single>
-      <multiple>paragrafi</multiple>
-    </term>
-    <term name="volume">
-      <single>volume</single>
-      <multiple>volumi</multiple>
-    </term>
-    <term name="edition">
-      <single>edizione</single>
-      <multiple>edizioni</multiple>
-    </term>
-    <term name="verse">
-      <single>verso</single>
-      <multiple>versi</multiple>
-    </term>
-    <term name="book" form="short">lib</term>
-    <term name="chapter" form="short">cap</term>
-    <term name="column" form="short">col</term>
-    <term name="figure" form="short">fig</term>
-    <term name="folio" form="short">fgl</term>
-    <term name="issue" form="short">n°</term>
-    <term name="opus" form="short">op</term>
-    <term name="page" form="short">
-      <single>pag</single>
-      <multiple>pagg</multiple>
-    </term>
-    <term name="paragraph" form="short">cpv</term>
-    <term name="part" form="short">pt</term>
-    <term name="section" form="short">par</term>
-    <term name="verse" form="short">
-      <single>v</single>
-      <multiple>vv</multiple>
-    </term>
-    <term name="volume" form="short">
-      <single>vol</single>
-      <multiple>vol</multiple>
-    </term>
-    <term name="edition">edition</term>
-    <term name="edition" form="short">ed</term>
-    <term name="paragraph" form="symbol">
-      <single>¶</single>
-      <multiple>¶¶</multiple>
-    </term>
-    <term name="section" form="symbol">
-      <single>§</single>
-      <multiple>§§</multiple>
-    </term>
-    <term name="author">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor">
-      <single>curatore</single>
-      <multiple>curatori</multiple>
-    </term>
-    <term name="translator">
-      <single>traduttore</single>
-      <multiple>traduttori</multiple>
-    </term>
-    <term name="author" form="short">
-      <single/>
-      <multiple/>
-    </term>
-    <term name="editor" form="short">
-      <single>cur</single>
-      <multiple>cur</multiple>
-    </term>
-    <term name="translator" form="short">
-      <single>trad</single>
-      <multiple>trad</multiple>
-    </term>
-    <term name="editor" form="verb">a cura di</term>
-    <term name="translator" form="verb">tradotto da</term>
-    <term name="recipient" form="verb">a</term>
-    <term name="interviewer" form="verb">intervista di</term>
-    <term name="editor" form="verb-short">cur. da</term>
-    <term name="translator" form="verb-short">trad. da</term>
-    <term name="month-01">Gennaio</term>
-    <term name="month-02">Febbraio</term>
-    <term name="month-03">Marzo</term>
-    <term name="month-04">Aprile</term>
-    <term name="month-05">Maggio</term>
-    <term name="month-06">Giugno</term>
-    <term name="month-07">Luglio</term>
-    <term name="month-08">Agosto</term>
-    <term name="month-09">Settembre</term>
-    <term name="month-10">Ottobre</term>
-    <term name="month-11">Novembre</term>
-    <term name="month-12">Dicembre</term>
-    <term name="month-01" form="short">Gen</term>
-    <term name="month-02" form="short">Feb</term>
-    <term name="month-03" form="short">Mar</term>
-    <term name="month-04" form="short">Apr</term>
-    <term name="month-05" form="short">Mag</term>
-    <term name="month-06" form="short">Giu</term>
-    <term name="month-07" form="short">Lug</term>
-    <term name="month-08" form="short">Ago</term>
-    <term name="month-09" form="short">Set</term>
-    <term name="month-10" form="short">Ott</term>
-    <term name="month-11" form="short">Nov</term>
-    <term name="month-12" form="short">Dic</term>
-  </locale>
-</terms>
diff --git a/test/modsCollection.xml b/test/modsCollection.xml
deleted file mode 100644
--- a/test/modsCollection.xml
+++ /dev/null
@@ -1,963 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?oxygen RNGSchema="file:/Users/darcusb/Projects/citeproc/schemas/mods-tight.rnc" type="compact"?>
-<modsCollection xmlns="http://www.loc.gov/mods/v3" xmlns:xlink="http://www.w3.org/1999/xlink">
-  <!-- mods sample data -->
-  <mods ID="NW2000-0424a">
-    <titleInfo>
-      <title>Perspectives</title>
-    </titleInfo>
-    <genre authority="xbib">letter to the editor</genre>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2000-04-24</dateIssued>
-    </originInfo>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Newsweek</title>
-      </titleInfo>
-      <genre authority="marc">periodical</genre>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <part>
-        <detail type="volume">
-          <number>135</number>
-        </detail>
-        <detail type="issue">
-          <number>17</number>
-        </detail>
-        <extent unit="page">
-          <start>21</start>
-        </extent>
-      </part>
-    </relatedItem>
-  </mods>
-  <mods ID="NW2000-0207">
-    <titleInfo>
-      <title>The Grandmas Pay a Visit</title>
-    </titleInfo>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2000-02-07</dateIssued>
-    </originInfo>
-    <genre authority="xbib">article</genre>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Newsweek</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre authority="marc">periodical</genre>
-      <part>
-        <detail type="volume">
-          <number>135</number>
-        </detail>
-        <detail type="issue">
-          <number>6</number>
-        </detail>
-        <extent unit="page">
-          <start>45</start>
-        </extent>
-      </part>
-    </relatedItem>
-  </mods>
-  <mods ID="Tremblay2001a">
-    <titleInfo>
-      <title>Tremblay v. Québec (Attorney General)</title>
-    </titleInfo>
-    <typeOfResource>text</typeOfResource>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2001</dateIssued>
-    </originInfo>
-    <genre authority="xbib">legal case</genre>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>C.S.</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>court reporter</genre>
-      <part>
-        <detail type="issue">
-          <number>J.Q. No. 1504</number>
-        </detail>
-      </part>
-    </relatedItem>
-    <identifier type="citekey">Tremblay2001a</identifier>
-  </mods>
-  <mods ID="Veer1996a">
-    <name type="personal">
-      <namePart type="given">Peter</namePart>
-      <namePart type="family">van der Veer</namePart>
-      <role>
-        <roleTerm authority="marcrelator" type="text">author</roleTerm>
-      </role>
-    </name>
-    <titleInfo>
-      <title>Riots and Rituals</title>
-      <subTitle>The Construction of Violence and Public Space in Hindu
-        Nationalism</subTitle>
-    </titleInfo>
-    <genre>chapter</genre>
-    <subject>
-      <topic>riots</topic>
-      <topic>public space</topic>
-      <geographic>India</geographic>
-    </subject>
-    <relatedItem type="host" xlink:type="simple" xlink:href="BrassP1996a">
-      <name type="personal">
-        <namePart type="given">Paul</namePart>
-        <namePart type="family">Brass</namePart>
-        <role>
-          <roleTerm type="text">editor</roleTerm>
-        </role>
-      </name>
-      <titleInfo>
-        <title>Riots and Pogroms</title>
-      </titleInfo>
-      <originInfo>
-        <dateIssued encoding="w3cdtf">1996</dateIssued>
-        <issuance>monographic</issuance>
-        <publisher>NYU Press</publisher>
-        <place>
-          <placeTerm>New York</placeTerm>
-        </place>
-      </originInfo>
-      <typeOfResource>text</typeOfResource>
-      <genre>book</genre>
-      <part>
-        <extent unit="page">
-          <start>154</start>
-          <end>176</end>
-        </extent>
-      </part>
-    </relatedItem>
-    <recordInfo>
-      <recordCreationDate encoding="w3cdtf">2004-01-24</recordCreationDate>
-      <recordIdentifier source="citekey">Veer199a</recordIdentifier>
-    </recordInfo>
-  </mods>
-  <mods ID="Tilly2000a">
-    <name type="personal">
-      <namePart type="given">Charles</namePart>
-      <namePart type="family">Tilly</namePart>
-      <role>
-        <roleTerm type="text">reviewer</roleTerm>
-      </role>
-    </name>
-    <titleInfo>
-      <title>Review of Moral Economy and Popular Protest</title>
-    </titleInfo>
-    <subject>
-      <topic>riots</topic>
-      <name type="personal">
-        <namePart type="given">E</namePart>
-        <namePart type="given">P</namePart>
-        <namePart type="family">Thompson</namePart>
-        <role>
-          <roleTerm authority="marcrelator">author</roleTerm>
-        </role>
-      </name>
-      <titleInfo>
-        <title>Moral Economy and Popular Protest</title>
-        <subTitle>Crowds, Conflict and Authority</subTitle>
-      </titleInfo>
-      <name type="personal">
-        <namePart type="given">Adrian</namePart>
-        <namePart type="family">Randall</namePart>
-        <role>
-          <roleTerm type="text">editor</roleTerm>
-        </role>
-      </name>
-      <name type="personal">
-        <namePart type="given">Andrew</namePart>
-        <namePart type="family">Charlesworth</namePart>
-        <role>
-          <roleTerm type="text">editor</roleTerm>
-        </role>
-      </name>
-    </subject>
-    <genre>review</genre>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Journal of Interdisciplinary History</title>
-      </titleInfo>
-      <typeOfResource>text</typeOfResource>
-      <originInfo>
-        <dateIssued encoding="w3cdtf">2000</dateIssued>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>academic journal</genre>
-      <part>
-        <detail type="volume">
-          <number>31</number>
-        </detail>
-        <detail type="issue">
-          <number>2</number>
-        </detail>
-        <extent unit="page">
-          <start>259</start>
-          <end>260</end>
-        </extent>
-      </part>
-    </relatedItem>
-    <recordInfo>
-      <recordCreationDate encoding="w3cdtf">2003-12-11</recordCreationDate>
-      <recordIdentifier source="citekey">Tilly2000a</recordIdentifier>
-    </recordInfo>
-  </mods>
-  <mods ID="Tilly2002a">
-    <name type="personal">
-      <namePart type="given">Charles</namePart>
-      <namePart type="family">Tilly</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <titleInfo>
-      <title>Stories, Identities, and Political Change</title>
-    </titleInfo>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2002</dateIssued>
-      <publisher>Rowman &amp; Littlefield Publishers, Inc.</publisher>
-      <place>
-        <placeTerm type="text">Lanham, MD</placeTerm>
-      </place>
-      <issuance>monographic</issuance>
-    </originInfo>
-    <typeOfResource>text</typeOfResource>
-    <genre authority="marc">book</genre>
-    <subject>
-      <topic>social movements</topic>
-      <topic>identity</topic>
-      <topic>protest</topic>
-    </subject>
-    <recordInfo>
-      <recordCreationDate encoding="w3cdtf">2004-01-23</recordCreationDate>
-      <recordIdentifier source="citekey">Tilly2002a</recordIdentifier>
-    </recordInfo>
-  </mods>
-  <mods ID="Thrift1990a">
-    <titleInfo>
-      <title>For a New Regional Geography 1</title>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="family">Thrift</namePart>
-      <namePart type="given">Nigel</namePart>
-      <role>
-        <roleTerm authority="marcrelator" type="text">author</roleTerm>
-      </role>
-    </name>
-    <genre>article</genre>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Progress in Human Geography</title>
-      </titleInfo>
-      <originInfo>
-        <dateIssued encoding="w3cdtf">1990</dateIssued>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>academic journal</genre>
-      <part>
-        <detail type="volume">
-          <number>14</number>
-        </detail>
-        <detail type="issue">
-          <number>2</number>
-        </detail>
-        <extent unit="page">
-          <start>272</start>
-          <end>279</end>
-        </extent>
-      </part>
-    </relatedItem>
-    <subject>
-      <topic>regional geography</topic>
-    </subject>
-    <subject>
-      <topic>social theory</topic>
-    </subject>
-    <identifier type="citekey">Thrift1990a</identifier>
-  </mods>
-  <mods ID="TimesP2001a">
-    <titleInfo>
-      <title>Senators Stamp OK on Anti-Terrorism Laws</title>
-    </titleInfo>
-    <genre>article</genre>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Times</title>
-      </titleInfo>
-      <originInfo>
-        <dateIssued encoding="w3cdtf">2001-10-26</dateIssued>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>newspaper</genre>
-      <part>
-        <extent unit="page">
-          <start>A</start>
-          <end>01</end>
-        </extent>
-      </part>
-    </relatedItem>
-    <identifier type="citekey">TimesP2001a</identifier>
-  </mods>
-  <!--remainder created by Bruce, edited by Jackie Radebaugh, and then re-edited by Bruce -->
-  <!-- 
-    First we have a simple book. This is just a standalone record with no
-    related item.  Arendt, Hannah. The Human Condition. New York: Doubleday,
-    1959.
-  -->
-  <mods ID="Arendt1959a">
-    <titleInfo>
-      <title>The Human Condition</title>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="family">Arendt</namePart>
-      <namePart type="given">Hannah</namePart>
-      <role>
-        <roleTerm authority="marcrelator" type="text">author</roleTerm>
-      </role>
-    </name>
-    <genre>book</genre>
-    <typeOfResource>text</typeOfResource>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">1959</dateIssued>
-      <place>
-        <placeTerm type="text">New York</placeTerm>
-      </place>
-      <publisher>Doubleday</publisher>
-      <issuance>monographic</issuance>
-    </originInfo>
-    <identifier type="citekey">Arendt1959a</identifier>
-  </mods>
-  <!-- 
-    Next we have a book chapter. This is a record with a related item that is a
-    monograph.  Amin, Ash. "Post-Fordism: Models, Fantasies and Phantoms of
-    Transition." In Post-Fordism: A Reader, edited by Ash Amin. Oxford:
-    Blackwell Publishers, 1994, pp23-45.
-  -->
-  <mods ID="Amin1994a">
-    <titleInfo>
-      <title>Post-Fordism</title>
-      <subTitle>Models, Fantasies and Phantoms of Transition</subTitle>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">Ash</namePart>
-      <namePart type="family">Amin</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Post-Fordism</title>
-        <subTitle>A Reader</subTitle>
-      </titleInfo>
-      <name type="personal">
-        <namePart type="given">Ash</namePart>
-        <namePart type="family">Amin</namePart>
-        <role>
-          <roleTerm type="text">editor</roleTerm>
-        </role>
-      </name>
-      <originInfo>
-        <dateIssued encoding="w3cdtf">1994</dateIssued>
-        <publisher>Blackwell Publishers</publisher>
-        <place>
-          <placeTerm type="text">Oxford</placeTerm>
-        </place>
-        <issuance>monographic</issuance>
-      </originInfo>
-      <genre>book</genre>
-      <part>
-        <extent unit="page">
-          <start>23</start>
-          <end>45</end>
-        </extent>
-      </part>
-    </relatedItem>
-    <identifier type="citekey">Amin1994a</identifier>
-  </mods>
-  <!-- 
-    Now, a journal article. Notice the structural simliarities and differences
-    between this and the preceeding. They are both records with related item
-    hosts. However, unlike the preceeding example, the host here is a serial
-    (indicated by the issuance element value of "continuing.").
-
-    Brenner, Neil. "The Urban Question as a Scale Question: Reflections on Henri
-    Lefebre, Urban Theory and the Politics of Scale." International Journal of
-    Urban and Regional Research 24, no. 2 (2000): 361-378.
-  -->
-  <mods ID="Brenner2000a">
-    <titleInfo>
-      <title>The Urban Question as a Scale Question</title>
-      <subTitle>Reflections on Henri Lefebre, Urban Theory and the Politics of
-        Scale</subTitle>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">Neil</namePart>
-      <namePart type="family">Brenner</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2000</dateIssued>
-    </originInfo>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>International Journal of Urban and Regional Research</title>
-      </titleInfo>
-      <genre>academic journal</genre>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <part>
-        <detail type="volume">
-          <number>24</number>
-        </detail>
-        <detail type="issue">
-          <number>2</number>
-        </detail>
-        <extent unit="page">
-          <start>361</start>
-          <end>378</end>
-        </extent>
-      </part>
-    </relatedItem>
-    <identifier type="citekey">BrennerN2000a</identifier>
-  </mods>
-  <!-- 
-    To test more complex formatting issues related to multiple authors that need
-    to be shortened to "Doe et al".
-  -->
-  <mods ID="DoeJ2002a">
-    <titleInfo>
-      <title>A Test Article with Multiple Authors</title>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">John</namePart>
-      <namePart type="family">Doe</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Jane</namePart>
-      <namePart type="family">Smith</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Hugo</namePart>
-      <namePart type="family">Chavez</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Steve</namePart>
-      <namePart type="family">Jones</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Jennifer</namePart>
-      <namePart type="family">Abel</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Cynthia</namePart>
-      <namePart type="family">McDonnell</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Matthew</namePart>
-      <namePart type="family">Turner</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2000</dateIssued>
-    </originInfo>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Journal of Marginal Research</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>academic journal</genre>
-      <part>
-        <detail type="volume">
-          <number>12</number>
-        </detail>
-        <detail type="issue">
-          <number>44</number>
-        </detail>
-        <extent unit="page">
-          <start>361</start>
-          <end>378</end>
-        </extent>
-      </part>
-    </relatedItem>
-    <identifier type="citekey">DoeJ2002a</identifier>
-  </mods>
-  <mods ID="DoeJ2006">
-    <titleInfo>
-      <title>This is a second Test Article with Multiple Authors to test author substitution</title>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">John</namePart>
-      <namePart type="family">Doe</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Jane</namePart>
-      <namePart type="family">Smith</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Hugo</namePart>
-      <namePart type="family">Chavez</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Steve</namePart>
-      <namePart type="family">Jones</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Jennifer</namePart>
-      <namePart type="family">Abel</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Cynthia</namePart>
-      <namePart type="family">McDonnell</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Matthew</namePart>
-      <namePart type="family">Turner</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2006</dateIssued>
-    </originInfo>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Journal of Higly Important Research</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>academic journal</genre>
-      <part>
-        <detail type="volume">
-          <number>9</number>
-        </detail>
-        <detail type="issue">
-          <number>5</number>
-        </detail>
-        <extent unit="page">
-          <start>241</start>
-          <end>258</end>
-        </extent>
-      </part>
-    </relatedItem>
-    <identifier type="citekey">DoeJ2006</identifier>
-  </mods>
-  <!--  Start examples from Chicago Manual-->
-  <!-- 
-    Batson, C. Daniel. 1990. How social is the animal? The human capacity for
-    caring. American Psschologist 45 (March): 336-46.
-  -->
-  <mods ID="Batson1990">
-    <titleInfo>
-      <title>How Social is the Animal?</title>
-      <subTitle>The Human Capacity for Caring</subTitle>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">C</namePart>
-      <namePart type="given">Daniel</namePart>
-      <namePart type="family">Batson</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">1990-03</dateIssued>
-    </originInfo>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>American Pyschologist</title>
-      </titleInfo>
-      <genre authority="xbib">academic journal</genre>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <part>
-        <detail type="volume">
-          <number>45</number>
-        </detail>
-        <extent unit="page">
-          <start>336</start>
-          <end>346</end>
-        </extent>
-      </part>
-    </relatedItem>
-  </mods>
-  <!-- 
-    A special edited issue of a journal: Alice Conley, "Fifth-Grade Boys'
-    Decisions about Participation in Sports Activities," in Non-subject-matter
-    Outcomes of Schooling,: ed. Thomas L. Good, special issue, Elementary School
-    Journal 99, no.5 (1999): 131-46.
-  -->
-  <mods ID="Conley1999">
-    <titleInfo>
-      <title>Fifth-Grade Boys' Decisions about Participation in Sports
-        Activities</title>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">Alice</namePart>
-      <namePart type="family">Conley</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">1999</dateIssued>
-    </originInfo>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Non-subject-matter Outcomes of Schooling</title>
-      </titleInfo>
-      <name type="personal">
-        <namePart type="given">Thomas</namePart>
-        <namePart type="given">L</namePart>
-        <namePart type="family">Good</namePart>
-        <role>
-          <roleTerm>editor</roleTerm>
-        </role>
-      </name>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>academic journal</genre>
-      <part>
-        <detail type="title">
-          <title>Special issue, Elementary School Journal</title>
-        </detail>
-        <detail type="volume">
-          <number>99</number>
-        </detail>
-        <detail type="issue">
-          <number>5</number>
-        </detail>
-        <extent unit="page">
-          <start>131</start>
-          <end>146</end>
-        </extent>
-      </part>
-    </relatedItem>
-  </mods>
-  <!--  
-    A supplement to a journal: Wall, J. V. 1971, 2700 MHz observations of 4c
-    radio sources in the declination zone +4 to -4. Australian
-    J. Phys. Astronphys. Suppl. no. 20.
-  -->
-  <mods ID="Wall1971">
-    <titleInfo>
-      <title>2700 MHz observations of 4c radio sources in the declination zone
-        +4 to -4</title>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">Jasper</namePart>
-      <namePart type="given">V</namePart>
-      <namePart type="family">Wall</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <typeOfResource>text</typeOfResource>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">1971</dateIssued>
-    </originInfo>
-    <relatedItem type="host">
-      <titleInfo type="abbreviated">
-        <title>Australian J. Phys. Astronphys.</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>academic journal</genre>
-      <part>
-        <detail type="supplement">
-          <number>20</number>
-        </detail>
-      </part>
-    </relatedItem>
-  </mods>
-  <!-- 
-    electronic journal article: Bernard Testa and Lamont B. Kier, "Emergence and
-    Dissolvence in the Self-Organization of Complex Systems," Entropy 2, no.1
-    (2000): 17, http://www.mdpi.org/entropy/papers/e2010001.pdf
-  -->
-  <mods ID="Testa2000">
-    <titleInfo>
-      <title>Emergence and Dissolvence in the Self-Organization of Complex
-        Systems</title>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">Bernard</namePart>
-      <namePart type="family">Testa</namePart>
-      <role>
-        <roleTerm>author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Lamont</namePart>
-      <namePart type="given">B</namePart>
-      <namePart type="family">Kier</namePart>
-      <role>
-        <roleTerm>author</roleTerm>
-      </role>
-    </name>
-    <genre authority="xbib">article</genre>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2000</dateIssued>
-    </originInfo>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Entropy</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>academic journal</genre>
-      <part>
-        <detail type="volume">
-          <number>2</number>
-        </detail>
-        <detail type="issue">
-          <number>1</number>
-        </detail>
-        <extent unit="page">
-          <start>17</start>
-          <end>17</end>
-        </extent>
-      </part>
-    </relatedItem>
-    <identifier type="uri">http://www.mdpi.org/entropy/papers/e2010001.pdf</identifier>
-  </mods>
-  <!-- 
-    Online magazine record that is a review, in a style where access date is
-    required: 
-
-    Lawrence Osborne, "Poison Pen," review of The Collaborator: The Trial and
-    Execution of Robert Brasillach, by Aliec Kaplan. Salon, March 29,
-    2000. http://www.salon.com/books/it/2000/03/29/kaplan/index.html (accessed
-    July 10, 2001)
-  -->
-  <mods ID="Osborne2001">
-    <titleInfo type="alternative">
-      <title>Poison Pen</title>
-    </titleInfo>
-    <titleInfo>
-      <nonSort>The</nonSort>
-      <title>review of The collaborator</title>
-      <subTitle>Trial and Execution of Robert Brasillach</subTitle>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">Lawrence</namePart>
-      <namePart type="family">Osborne</namePart>
-      <role>
-        <roleTerm type="text">reviewer</roleTerm>
-      </role>
-    </name>
-    <subject>
-      <titleInfo>
-        <title>The Collaborator</title>
-        <subTitle>The Trial and Execution of Robert Brasillach</subTitle>
-      </titleInfo>
-      <name type="personal">
-        <namePart type="family">Kaplan</namePart>
-        <namePart type="given">Aliec</namePart>
-        <role>
-          <roleTerm authority="marcrelator" type="text">author</roleTerm>
-        </role>
-      </name>
-    </subject>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2000-03-29</dateIssued>
-    </originInfo>
-    <genre>review</genre>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Salon</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre authority="marc">periodical</genre>
-    </relatedItem>
-    <location>
-      <url dateLastAccessed="2001-07-10">http://www.salon.com/books/it/2000/03/29/kaplan/index.html</url>
-    </location>
-  </mods>
-  <!-- 
-    A New York Times article available online: Mitchell, Alison and Frank
-    Bruni. 2001. Scars still raw, Bush clashes with McClain. New York Times,
-    March 25, 2001. http://www.nytimes.com/2001/03/25/politics/25MCCA.html
-    (accessed January 2, 2002).
-  -->
-  <mods ID="MitchellA2002">
-    <titleInfo>
-      <title>Scars still raw, Bush clashes with McClain</title>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">Alison</namePart>
-      <namePart type="family">Mitchell</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Frank</namePart>
-      <namePart type="family">Bruni</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <originInfo>
-      <dateIssued encoding="w3cdtf">2001-03-25</dateIssued>
-    </originInfo>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>New York Times</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre>newspaper</genre>
-    </relatedItem>
-    <location>
-      <url dateLastAccessed="2002-01-02"
-        >http://www.nytimes.com/2001/03/25/politics/25MCCA.html</url>
-    </location>
-  </mods>
-  <!-- 
-    Journal article with season date Myers, N. and R. Tucker, "Deforestation in
-    Central America: Spanish Legacy and North American Consumers."
-    Environmental Review, Spring 1987, 55-71.
-
-    note: used google to track down full authors names
-  -->
-  <mods ID="MyersN1987">
-    <titleInfo>
-      <title>Deforestation in Central America</title>
-      <subTitle>Spanish Legacy and North American Consumers</subTitle>
-    </titleInfo>
-    <name type="personal">
-      <namePart type="given">Norman</namePart>
-      <namePart type="family">Myers</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <name type="personal">
-      <namePart type="given">Richard</namePart>
-      <namePart type="given">P</namePart>
-      <namePart type="family">Tucker</namePart>
-      <role>
-        <roleTerm type="text">author</roleTerm>
-      </role>
-    </name>
-    <typeOfResource>text</typeOfResource>
-    <relatedItem type="host">
-      <titleInfo>
-        <title>Environmental Review</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-        <dateIssued encoding="w3cdtf">1987</dateIssued>
-      </originInfo>
-      <genre>academic journal</genre>
-      <part>
-        <date>Spring</date>
-        <extent unit="page">
-          <start>55</start>
-          <end>71</end>
-        </extent>
-      </part>
-    </relatedItem>
-  </mods>
-  <!--  
-    A legal case: U.S. v. Christmas, 222 F.3d 141, 145 (4th Cir. 2000).
-  -->
-  <mods ID="USvChristmas">
-    <titleInfo type="abbreviated">
-      <title>U.S. v. Christmas</title>
-    </titleInfo>
-    <name type="corporate">
-      <namePart>U.S. Supreme Court, 4th Circuit.</namePart>
-      <role>
-        <roleTerm type="text">court</roleTerm>
-      </role>
-    </name>
-    <originInfo>
-      <dateOther encoding="w3cdtf">2000</dateOther>
-    </originInfo>
-    <genre authority="xbib">legal case</genre>
-    <relatedItem type="host">
-      <titleInfo type="abbreviated">
-        <title>F.3d</title>
-      </titleInfo>
-      <originInfo>
-        <issuance>continuing</issuance>
-      </originInfo>
-      <genre authority="xbib">court reporter</genre>
-      <part>
-        <detail type="volume">
-          <number>222</number>
-        </detail>
-        <extent unit="page">
-          <list>141, 145</list>
-        </extent>
-        <date encoding="w3cdtf">2000</date>
-      </part>
-    </relatedItem>
-  </mods>
-</modsCollection>
diff --git a/test/test.hs b/test/test.hs
--- a/test/test.hs
+++ b/test/test.hs
@@ -1,108 +1,10 @@
-import Control.Arrow
-import Control.Monad.State
-import Data.IORef
-import Language.Haskell.Parser
-import Language.Haskell.Pretty (prettyPrint)
-import qualified System.Console.GetOpt as O (OptDescr (..))
-import System.Console.GetOpt hiding (Option)
 import System.Environment
-import System.Exit
+import Text.CSL.Input.Json
 
-import Text.CSL
+-- a dir with a final slash
+testDir = "citeproc-test/processor-tests/machines/"
 
 main :: IO ()
-main
-    = do
-      args  <- getArgs
-      (o,f) <- getOpts args
-      i     <- newIORef (Config False False [] [] [])
-      doOpts i o
-      c <- readIORef i
-      s <- readCSLFile f
-      processCitation c s
-
-bibfile :: String
-bibfile = "/home/andrea/devel/haskell/src/citeproc-hs/data/test.xml"
-
-processCitation :: Config -> Style -> IO ()
-processCitation config s
-    = do
-      Control.Monad.State.when (dump config) $
-             case parseModule $ "style = " ++ (show s) of
-               ParseOk a -> putStrLn (prettyPrint a)
-               ParseFailed loc err -> error ("Could not dump the internal representation of the style" ++ show loc ++ show err ++ show s)
-      when (mods config /= []) $ do
-        ref <- readModsFile (mods config)
-        let result = citeproc s [ref] [[(citeKey &&& const "") ref]]
-        putStrLn . concatMap renderPlainStrict $ citations    result
-        putStrLn . concatMap renderPlainStrict $ bibliography result
-
-      when (modsCo config /= []) $ do
-        ref <- readBiblioFile (modsCo config) "bibtex"
-        let result = citeproc s ref [map (citeKey &&& const "") ref]
-        case output config of
-          "pandoc"  -> do let concatPan = foldr (\x xs -> if xs /= [] then x ++ "," ++ xs else x ++ xs) []
-                          putStrLn $ "Pandoc (Meta [] [] []) [" ++  concatPan (map (renderPandoc' s) $ bibliography result) ++ "]"
-          otherwise -> do let renderP   = if (strict config) then renderPlainStrict  else renderPlain
-                          putStrLn $ unlines $ map renderP $ citations    result
-                          putStrLn $ unlines $ map renderP $ bibliography result
-
--- The needed boilerplate code for parsing command line options
-
-data Config
-    = Config
-      { dump   :: Bool
-      , strict :: Bool
-      , mods   :: String
-      , modsCo :: String
-      , output :: String
-      } deriving ( Show )
-
-data Opts
-    = Help
-    | Mods   String
-    | ModsCo String
-    | Output String
-    | Strict
-    | Dump
-      deriving Show
-
-opts :: [OptDescr Opts]
-opts =
-    [ O.Option ['h','?' ] ["help"      ] (NoArg Help            ) "This help"
-    , O.Option ['d'     ] ["dump"      ] (NoArg Dump            ) "Dump the internal representation of a style"
-    , O.Option ['s'     ] ["strict"    ] (NoArg Strict          ) "Evaluate the style strictly"
-    , O.Option ['m'     ] ["mods"      ] (ReqArg Mods   "file"  ) "The file with a MODS record"
-    , O.Option ['c'     ] ["collection"] (ReqArg ModsCo "file"  ) "The file with a MODS Collection"
-    , O.Option ['o'     ] ["output"    ] (ReqArg Output "output") "The output format: 'plain' or 'pandoc'"
-    ]
-
-getOpts :: [String] -> IO ([Opts], String)
-getOpts argv =
-    case getOpt Permute opts argv of
-      (_,[],_)   -> error $ "No imput file\n" ++ usage
-      (o,[n],[]) -> return (o,n)
-      (_,_,errs) -> error $ concat errs ++ usage
-
-usage :: String
-usage = (usageInfo header opts) ++ footer
-    where header = "Usage: test [OPTION...] CSLFILE\n" ++
-                   "Options:"
-          footer = "\nMail bug reports and suggestions to " ++ mail
-mail :: String
-mail = "<andrea.rossato@unibz.it>\n"
-
-doOpts :: IORef Config -> [Opts] -> IO ()
-doOpts _  [] = return ()
-doOpts conf (o:oo) =
-    case o of
-      Help     -> putStr   usage   >> exitWith ExitSuccess
-      Dump     -> modifyIORef conf (\c -> (c { dump   = True})) >> go
-      Strict   -> modifyIORef conf (\c -> (c { strict = True})) >> go
-      Mods   m -> modifyIORef conf (\c -> (c { mods   = m   })) >> go
-      ModsCo m -> modifyIORef conf (\c -> (c { modsCo = m   })) >> go
-      Output o -> modifyIORef conf (\c -> (c { output = o   })) >> go
-    where
-      go    = doOpts conf oo
-
-
+main = do
+  args <- getArgs
+  runTS args 0 testDir
diff --git a/test/test.markdown b/test/test.markdown
deleted file mode 100644
--- a/test/test.markdown
+++ /dev/null
@@ -1,23 +0,0 @@
-# Try Pandoc with Citeproc-hs
-
-We start with some normal links to [citeproc-hs] and [pandoc].
-
-And now some citation. First a citation group, without locators:
-[Veer1996a; Arendt1959a; DoeJ2002a]. Then another group, starting with
-an ibid: [DoeJ2002a; BrennerN2000a; Conley1999; MitchellA2002].
-
-This should be a court decision: [USvChristmas].
-
-And now a group of already cited stuff: [BrennerN2000a; Conley1999;
-Arendt1959a], followed by and ibid with locator: [Arendt1959a@p.
-15-17].
-
-And then a hude list of citations: [Tremblay2001a; Veer1996a;
-Tilly2000a; Tilly2002a; Thrift1990a; TimesP2001a; Arendt1959a;
-Amin1994a; BrennerN2000a; DoeJ2002a; DoeJ2006; Batson1990; Conley1999;
-Wall1971; Osborne2001; MitchellA2002; MyersN1987]
-
-[citeproc-hs]: http://code.haskell.org/cioteproc-hs
-[Pandoc]: http://johnmacfarlane.net/pandoc/
-
-# Bibliography
diff --git a/test/test_basic.hs b/test/test_basic.hs
deleted file mode 100644
--- a/test/test_basic.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-import Control.Monad.State
-
-import Text.XML.HXT.Arrow
-import Control.Arrow
-
-import Text.CSL.Reference
-import Text.CSL.Style
-import Text.CSL.Proc
-import Text.CSL.Parser
-import Text.CSL.Output.Plain
-
-import RefData
-
-file :: String
-file = "test/apa"
-
-localeFile :: String
-localeFile = "test/locales-it-IT.xml"
-
-main :: IO ()
-main
-    = do
-      s <- readCSLFile file
-      processCitation s
-
-processCitation :: Style -> IO ()
-processCitation s@(Style {biblio = b, citation = c, csMacros = m , csTerms = terms})
-    = do
-      let (lb,ob,sb) = case b of
-                         Just (Bibliography o s lay) -> (lay,o,s)
-                         _ -> error $ "no bibliography layout in style"
-          (lc,oc,sc) = case c of
-                         Citation o s lay -> (lay,o,s)
-      putStrLn . concatMap renderPlain . processCitations s [rossato2006] $ [[("Rossato2006","p. 10-12")]]
-      putStrLn . unlines . map renderPlain . processBibliography s $ someReferences
-
-rossato2006 :: Reference
-rossato2006
-    = emptyReference { citeKey        = "Rossato2006"
-                     , refType        = Book
-                     , author         = [Person "" ["Andrea"]   "" "" "Rossato" ""
-                                        ,Person "On." ["Amedea"]   "" "" "Uggino" ""
-                                        ,Person "" ["Luigi"]    "" "" "Gazzoni" ""]
-                     , editor         = [Person "" ["Paola"]    "" "" "Locatin" ""]
-                     , translator     = [Person "" ["Roberto"]  "" "" "Caso" ""
-                                        ,Person "" ["Federico"] "" "" "Uggino" ""]
-                     , title          = "Diritto e architettura nello spazio digitale"
-                     , issued         = [RefDate 2006 1 16 ""]
-                     , accessed       = [RefDate 2006 1 16 ""]
-                     , publisher      = [Entity "Cedam"]
-                     , publisherPlace = "Bologna"
-                     , edition        = "I"
-                     , page           = "12"
-                     , url            = "http://some.url.com"
-                     }
diff --git a/test/test_note.markdown b/test/test_note.markdown
deleted file mode 100644
--- a/test/test_note.markdown
+++ /dev/null
@@ -1,40 +0,0 @@
-# Try Pandoc with Citeproc-hs
-
-We start with some normal links to [citeproc-hs] and [pandoc].
-
-And now some citation. First a citation group.[^1] Then another group.[^2]
-
-This should be a court decision[^3].
-
-And now a group of already cited stuff[^4], followed by and ibid with
-locator.[^5]
-
-And then a hude list of citations[^6]
-
-[^1]:
-     Some citation without locators: [Veer1996a; Arendt1959a;
-     DoeJ2002a]
-
-[^2]:
-     Starting with an ibid: [DoeJ2002a; BrennerN2000a;
-     Conley1999; MitchellA2002]
-
-[^3]:
-     [USvChristmas]
-
-[^4]:
-     [BrennerN2000a; Conley1999; Arendt1959a]
-
-[^5]:
-     [Arendt1959a@p. 15-17]
-
-[^6]:
-     [Tremblay2001a; Veer1996a; Tilly2000a; Tilly2002a; Thrift1990a;
-     TimesP2001a; Arendt1959a; Amin1994a; BrennerN2000a; DoeJ2002a;
-     DoeJ2006; Batson1990; Conley1999; Wall1971; Osborne2001;
-     MitchellA2002; MyersN1987]
-
-[citeproc-hs]: http://code.haskell.org/cioteproc-hs
-[Pandoc]: http://johnmacfarlane.net/pandoc/
-
-# Bibliografia
