diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) Andrea Rossato
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the author nor the names of his contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
diff --git a/README b/README
new file mode 100644
--- /dev/null
+++ b/README
@@ -0,0 +1,240 @@
+% citeproc-hs - A Haskell Implementation of the Citation Style Language
+% Andrea Rossato
+
+About
+-----
+
+[citeproc-hs] is a Haskell implementation of the Citation Style
+Language [CSL].
+
+[citeproc-hs] adds to [Pandoc], the famous [Haskell] text processing
+tool, a Bibtex like citation and bibliographic formatting and
+generation facility.
+
+[CSL] is an XML language for specifying citation and bibliographic
+formatting, similar in principle to BibTeX `.bst` files or the binary
+style files in commercial products like Endnote or Reference Manager.
+
+[CSL] is used by [Zotero] for bibliographic style formatting, and the
+huge number of [CSL] styles developed by the [Zotero] community can
+can be downloaded from here:
+
+<http://www.zotero.org/styles>
+
+There are plans to use CSL for adding bibliographic support to future
+releases of [OpenOffice](http://bibliographic.openoffice.org/).
+
+[citeproc-hs] can process and format citations according to a [CSL]
+style, given a [MODS] collection of references.
+
+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.
+
+[Bibutils] can be used to convert Bibtex and other bibliographic
+databases to [MODS] collections, which can be thus read by
+[citeproc-hs].
+
+[Bibutils] also exports a library and a future plan is to use that
+library for providing native support for the most widely used
+bibliographic databases in [citeproc-hs].
+
+[citeproc-hs] is a library that exports functions to parse [CSL]
+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.
+
+
+Download
+--------
+
+[citeproc-hs] can be downloaded from [Hackage]:
+
+<http://hackage.haskell.org/cgi-bin/hackage-scripts/package/citeproc-hs>
+
+To get the darcs source run:
+
+        darcs get http://code.haskell.org/citeproc-hs/
+
+Installation
+------------
+
+[citeproc-hs] depends on [hxt], the Haskell XML Tool Box.
+
+In order to install [citeproc-hs] you need to install [hxt] and its
+dependencies. You can download everything from [Hackage]:
+
+<http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hxt>
+
+Every package downloaded form [Hackage] can be installed with those
+simple commands:
+
+        runhaskell Setup.lhs configure
+        runhaskell Setup.lhs build
+        runhaskell Setup.lhs install
+
+This last step requires `root` privileges.
+
+If you don't have `root` privileges you can install citeproc-hs and
+*all* its dependencies locally with these commands:
+
+        runhaskell Setup.lhs configure --user --prefix=$HOME
+        runhaskell Setup.lhs build
+        runhaskell Setup.lhs install --user
+
+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:
+
+        runhaskell Setup.lhs configure -f citeproc
+        runhaskell Setup.lhs build
+        runhaskell Setup.lhs install
+
+Citations are inserted like simple reference links:
+
+    [Rossato2006]
+
+where `Rossato2006` is the reference id (or citation key) used in the
+bibliographic database.
+
+Citation groups are also possible. Each citation is separated by a
+semicolon:
+
+    [Rossato2006; Pascuzzi2002]
+
+
+The use of locators is also possible:
+
+    [Rossato2006@ p. 10; Pascuzzi2002@ cap. 12]
+
+To automatically format citations and generate the bibliography, run
+[Pandoc] with the `--csl` and `--mods` flags:
+
+    pandoc --csl cslStyle.csl --mods modsCollection.xml text.markdown > text.html
+
+Obviously you can export the text into any of the formats supported by
+[Pandoc].
+
+Some examples can be found in the `test` directory of the source tree.
+
+You can try them with:
+
+    pandoc --csl apa.csl --mods modsCollection.xml test.markdown
+    pandoc --csl apa.csl --mods modsCollection.xml test_note.markdown
+
+Documentation
+-------------
+
+No further documentation is so far available and even haddock
+generated documentation is at a very early stage.
+
+Some usage examples can be found in the `test` directory of the
+source tree.
+
+Known Issues
+------------
+
+[citeproc-hs] is in an early stage of development and the [CSL]
+implementation is not complete yet.
+
+Specifically the following options are not implemented:
+
+ - "collapse" (citation collapsing)
+ - "hanging-indent"
+ - "second-field-align"
+ - "line-spacing"
+ - "entry-spacing"
+
+The [MODS] parser needs some refinement too.
+
+Bug Reports
+-----------
+
+To submit bug reports you can use the Google code bug tracking system
+available at the following address:
+
+<http://code.google.com/p/citeproc-hs/issues>
+
+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.
+
+[John MacFarlane], the author of [Pandoc], has been very supportive of
+the project and provided a lot of useful feed back, comments and
+suggestions.
+
+Author
+------
+
+Andrea Rossato
+
+`andrea.rossato at ing.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/>
+
+Zotero
+:    <http://www.zotero.org>
+
+MODS
+:    <http://www.loc.gov/mods/>
+
+Legal
+-----
+
+This software is released under a BSD-style license. See LICENSE for
+more details.
+
+This is an early, "alpha" release. It carries no warranties of any kind.
+
+Copyright &copy; 2008 Andrea Rossato
+
+[citeproc-hs]: http://code.haskell.org/cioteproc-hs
+[CSL]: http://xbiblio.sourceforge.net/csl/
+[Pandoc]: http://johnmacfarlane.net/pandoc/
+[Zotero]: http://www.zotero.org
+[MODS]: http://www.loc.gov/mods/
+[Bibutils]: http://www.scripps.edu/~cdputnam/software/bibutils/
+[Hackage]: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/citeproc-hs
+[hxt]: http://www.fh-wedel.de/~si/HXmlToolbox/
+[Bruce D'Arcus]: http://community.muohio.edu/blogs/darcusb/
+[John MacFarlane]: http://johnmacfarlane.net/
+
+[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/
diff --git a/Setup.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,3 @@
+#!/usr/bin/env runhaskell
+> import Distribution.Simple
+> main = defaultMain
diff --git a/citeproc-hs.cabal b/citeproc-hs.cabal
new file mode 100644
--- /dev/null
+++ b/citeproc-hs.cabal
@@ -0,0 +1,87 @@
+name:               citeproc-hs
+version:            0.1
+homepage:           http://code.haskell.org/citeproc-hs
+synopsis:           A Citation Style Language implementation in Haskell
+
+description:        citeproc-hs is a Hakell port of Citeproc, a
+		    processor for converting citations into a variety
+		    of formats using a macro language called Citation
+		    Style Language (CSL).
+		    .
+		    For more details on Citeproc and CSL, please check:
+		    <http://xbiblio.sourceforge.net/>.
+
+category:           Text
+license:            BSD3
+license-file:       LICENSE
+author:             Andrea Rossato
+maintainer:         andrea.rossato@ing.unitn.it
+cabal-version:      >= 1.2
+build-type:         Simple
+data-files:         locales/locales-af-AZ.xml
+                    locales/locales-af-ZA.xml
+                    locales/locales-ar-AR.xml
+                    locales/locales-bg-BG.xml
+                    locales/locales-ca-AD.xml
+                    locales/locales-cs-CZ.xml
+                    locales/locales-da-DK.xml
+                    locales/locales-de-AT.xml
+                    locales/locales-de-CH.xml
+                    locales/locales-de-DE.xml
+                    locales/locales-el-GR.xml
+                    locales/locales-en-US.xml
+                    locales/locales-es-ES.xml
+                    locales/locales-et-EE.xml
+                    locales/locales-fr-FR.xml
+                    locales/locales-he-IL.xml
+                    locales/locales-hu-HU.xml
+                    locales/locales-is-IS.xml
+                    locales/locales-it-IT.xml
+                    locales/locales-ja-JP.xml
+                    locales/locales-ko-KR.xml
+                    locales/locales-mn-MN.xml
+                    locales/locales-nb-NO.xml
+                    locales/locales-nl-NL.xml
+                    locales/locales-pl-PL.xml
+                    locales/locales-pt-BR.xml
+                    locales/locales-pt-PT.xml
+                    locales/locales-ro-RO.xml
+                    locales/locales-ru-RU.xml
+                    locales/locales-sk-SK.xml
+                    locales/locales-sl-SI.xml
+                    locales/locales-sr-RS.xml
+                    locales/locales-sv-SE.xml
+                    locales/locales-th-TH.xml
+                    locales/locales-tr-TR.xml
+                    locales/locales-vi-VN.xml
+                    locales/locales-zh-CN.xml
+                    locales/locales-zh-TW.xml
+
+flag small_base
+  description: Choose the new smaller, split-up base package.
+
+flag test
+  description: Run the textsuite.
+
+library
+    exposed-modules:    Text.CSL
+                        Text.CSL.Eval
+                        Text.CSL.Parser
+                        Text.CSL.Proc
+                        Text.CSL.Reference
+                        Text.CSL.Style
+                        Text.CSL.Input.MODS
+                        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 dist/build/autogen
+
+    if flag(small_base)
+       build-depends:   base >= 3, containers, directory
+
+    else
+       build-depends:   base < 3
+
+    build-depends:      mtl, hxt >= 8.1
diff --git a/locales/locales-af-AZ.xml b/locales/locales-af-AZ.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-af-AZ.xml
@@ -0,0 +1,147 @@
+<?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
new file mode 100644
--- /dev/null
+++ b/locales/locales-af-ZA.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-ar-AR.xml b/locales/locales-ar-AR.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-ar-AR.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-bg-BG.xml b/locales/locales-bg-BG.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-bg-BG.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-ca-AD.xml b/locales/locales-ca-AD.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-ca-AD.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-cs-CZ.xml b/locales/locales-cs-CZ.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-cs-CZ.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-da-DK.xml b/locales/locales-da-DK.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-da-DK.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-de-AT.xml b/locales/locales-de-AT.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-de-AT.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-de-CH.xml b/locales/locales-de-CH.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-de-CH.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-de-DE.xml b/locales/locales-de-DE.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-de-DE.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-el-GR.xml b/locales/locales-el-GR.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-el-GR.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-en-US.xml b/locales/locales-en-US.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-en-US.xml
@@ -0,0 +1,219 @@
+<?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>
diff --git a/locales/locales-es-ES.xml b/locales/locales-es-ES.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-es-ES.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-et-EE.xml b/locales/locales-et-EE.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-et-EE.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-fr-FR.xml b/locales/locales-fr-FR.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-fr-FR.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-he-IL.xml b/locales/locales-he-IL.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-he-IL.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-hu-HU.xml b/locales/locales-hu-HU.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-hu-HU.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-is-IS.xml b/locales/locales-is-IS.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-is-IS.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-it-IT.xml b/locales/locales-it-IT.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-it-IT.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-ja-JP.xml b/locales/locales-ja-JP.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-ja-JP.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-ko-KR.xml b/locales/locales-ko-KR.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-ko-KR.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-mn-MN.xml b/locales/locales-mn-MN.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-mn-MN.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-nb-NO.xml b/locales/locales-nb-NO.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-nb-NO.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-nl-NL.xml b/locales/locales-nl-NL.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-nl-NL.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-pl-PL.xml b/locales/locales-pl-PL.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-pl-PL.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-pt-BR.xml b/locales/locales-pt-BR.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-pt-BR.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-pt-PT.xml b/locales/locales-pt-PT.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-pt-PT.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-ro-RO.xml b/locales/locales-ro-RO.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-ro-RO.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-ru-RU.xml b/locales/locales-ru-RU.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-ru-RU.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-sk-SK.xml b/locales/locales-sk-SK.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-sk-SK.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-sl-SI.xml b/locales/locales-sl-SI.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-sl-SI.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-sr-RS.xml b/locales/locales-sr-RS.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-sr-RS.xml
@@ -0,0 +1,199 @@
+<?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="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>
diff --git a/locales/locales-sv-SE.xml b/locales/locales-sv-SE.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-sv-SE.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-th-TH.xml b/locales/locales-th-TH.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-th-TH.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-tr-TR.xml b/locales/locales-tr-TR.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-tr-TR.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-vi-VN.xml b/locales/locales-vi-VN.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-vi-VN.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-zh-CN.xml b/locales/locales-zh-CN.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-zh-CN.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/locales/locales-zh-TW.xml b/locales/locales-zh-TW.xml
new file mode 100644
--- /dev/null
+++ b/locales/locales-zh-TW.xml
@@ -0,0 +1,199 @@
+<?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>
diff --git a/src/Text/CSL.hs b/src/Text/CSL.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL.hs
@@ -0,0 +1,45 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@ing.unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The CSL implementation
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL
+    ( readCSLFile
+    , readModsFile
+    , readModsColletionFile
+    , Reference (..)
+    , getReference
+    , Style (..)
+    , Citation (..)
+    , Bibliography (..)
+    , FormattedOutput (..)
+    , evalLayout
+    , BiblioData (..)
+    , citeproc
+    , processCitations
+    , processBibliography
+    , renderPlain
+    , renderPlainStrict
+    , renderPandoc
+    , renderPandoc'
+    , renderPandocStrict
+    ) where
+
+import Text.CSL.Eval
+import Text.CSL.Parser
+import Text.CSL.Proc
+import Text.CSL.Reference
+import Text.CSL.Style
+import Text.CSL.Input.MODS
+import Text.CSL.Output.Pandoc
+import Text.CSL.Output.Plain
+
diff --git a/src/Text/CSL/Eval.hs b/src/Text/CSL/Eval.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Eval.hs
@@ -0,0 +1,411 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Eval
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@ing.unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The CSL implementation
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Eval 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.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 )
+
+evalLayout :: Layout   -> Bool -> [TermMap] -> [MacroMap]
+           -> [Option] -> String -> Reference -> [Output]
+evalLayout (Layout _ _ es) b t m o p r = evalState job initSt
+    where
+      job    = concatMapM evalElement es
+      initSt = EvalState (mkRefMap r) p (Env t m o []) [] b False
+
+evalSorting ::  [TermMap] -> [MacroMap] -> [Option] -> [Sort] -> Reference -> [Sorting]
+evalSorting ts 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
+      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   )
+
+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 []
+    where
+      tryGroup     l = get >>= \s -> evalElements (rmTermConst l) >>= \r -> put s >> return r
+      rmTermConst [] = []
+      rmTermConst (e:es)
+          | Term  {} <- e = rmTermConst es
+          | Const {} <- e = rmTermConst es
+          | otherwise = e : rmTermConst es
+
+      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
+
+      getFirst        [] = return []
+      getFirst    (x:xs) = whenElse ((/=) []  <$> evalElement x)
+                                    (consuming $  evalElement x)
+                                    (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
+
+evalIfThen :: IfThen -> [IfThen] -> [Element] -> State EvalState [Output]
+evalIfThen i ei e
+    | IfThen c m el <- i = ifElse c m el
+    | otherwise          = evalElements e
+    where
+      ifElse c m el = if ei == []
+                      then whenElse (evalCond m c)
+                                    (evalElements el)
+                                    (evalElements e )
+                      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
+                        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
+      checkMatch m
+          | All    <- m = return [True]
+          | otherwise   = return [False]
+
+      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
+      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
+          | 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 . FC k res =<<
+                                               mapM (rest ags ea s)  [1 + l .. length ags]
+                                           else return []
+                        r'  <- evalNames xs nl d
+                        return $ if r /= [] && r' /= []
+                                 then r ++ [S 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)
+    | Just v <- fromValue val :: Maybe Int       = output  fm (if v == 0 then [] else show v)
+    | Just v <- fromValue val :: Maybe [RefDate] = formatDate s [] defaultDate v
+    | Just v <- fromValue val :: Maybe [Agent]   = concatMap (formatName True f fm defaultNameFormatting) 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) ++ S (d <> andStr nf) : [last x]
+          | length x == 2 = addDelim d (init x) ++ S (     andStr nf) : [last x]
+          | length x >  2 = addDelim d (init x) ++ S (d <> andStr nf) : [last x]
+          | otherwise     = addDelim d x
+      andStr nf
+          | "text"   <- andConnector nf = " and "
+          | "symbol" <- andConnector nf = " & "
+          | otherwise                   = []
+      isPlural  p = (&&) p . (<) 1
+
+formatName :: Bool -> Form -> Formatting -> NameFormatting -> Agent -> [Output]
+formatName b f fm nf n
+    | Person {} <- n
+    , Short     <- f = return $ FN  short        rest         fm
+    | Person {} <- n = return $ FN (long given') [long given] fm
+    | Entity  s <- n = output fm s
+    | otherwise      = []
+    where
+      rest = [ family $ concatMap (flip (:) ". " . head) (givenName n)
+             , long given]
+      addSpace = flip (++) (if b then [] 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)
+
+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
+    where
+      format t b = return . output fm =<< flip (++) period <$> getTerm (b && p) f t
+      period     = if i then "." else []
+
+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 $ FY (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"
+
+output :: Formatting -> String -> [Output]
+output fm s = if s /= "" then [FS s fm] else []
+
+appendOutput :: Formatting -> [Output] -> [Output]
+appendOutput fm xs = if xs /= [] then [O xs fm] else []
+
+outputList :: Formatting -> Delimiter -> [Output] -> [Output]
+outputList fm d = appendOutput fm . addDelim d . cleanOutput
+
+cleanOutput :: [Output] -> [Output]
+cleanOutput = filter isNotEmpty
+    where
+      isNotEmpty (FS "" _) = False
+      isNotEmpty _         = True
+
+addDelim :: String -> [Output] -> [Output]
+addDelim d = foldr (\x xs -> if length xs < 1 then x : xs else x : S d : xs) []
+
+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
+
+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}
+
+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
+
+formatVariable :: String -> String
+formatVariable = foldr f []
+    where f x xs = if x == '_' then '-' : xs else toLower x : xs
+
+trace ::  String -> State EvalState ()
+trace d = modify $ \s -> s { debug = d : debug s }
diff --git a/src/Text/CSL/Input/MODS.hs b/src/Text/CSL/Input/MODS.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Input/MODS.hs
@@ -0,0 +1,281 @@
+{-# LANGUAGE PatternGuards #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Input.MODS
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@ing.unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- An ugly MODS parser
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Input.MODS where
+
+import Text.CSL.Output.Plain ( (<+>) )
+import Text.CSL.Parser ( xpIElem, readXmlFile )
+import Text.CSL.Reference
+
+import Text.XML.HXT.Arrow.Pickle.Xml
+
+import Data.Char ( isDigit )
+
+readModsFile :: String -> IO Reference
+readModsFile f = readXmlFile xpMods f
+
+readModsColletionFile :: String -> IO [Reference]
+readModsColletionFile f = readXmlFile xpModsCollection f
+
+xpModsCollection :: PU [Reference]
+xpModsCollection = xpElem "modsCollection" $ xpList xpMods
+
+xpMods :: PU Reference
+xpMods = xpElem "mods" xpReference
+
+xpReference :: PU Reference
+xpReference
+    = xpWrap ( \ ( ref
+                , (ck,ty,ti)
+                ,((au,ed,tr),(re,it,pu'),(co,ce))
+                , (di,pu,pp)
+                , (ac,uri)
+                 ) ->
+               ref { citeKey          = ck `betterThen` take 10 (concat $ words ti)
+                   , refType          = if refType ref /= NoType then refType ref else ty
+                   , title            = ti
+                   , author           = au
+                   , editor           = ed `betterThen` editor           ref
+                   , 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
+                   , url              = uri
+                   , accessed         = ac
+                   , page             = page             ref
+                   , volume           = volume           ref
+                   , issue            = issue            ref
+                   , number           = number           ref
+                   , section          = section          ref
+                   , chapterNumber    = chapterNumber    ref
+                   }
+             , \r -> (  r
+                     , (citeKey   r, refType          r, title          r)
+                     ,((author    r, editor           r, translator     r)
+                      ,(recipient r, interviewer      r, publisher      r)
+                      ,(composer  r, collectionEditor r))
+                     , (issued    r, publisher        r, publisherPlace r)
+                     , (accessed  r, url              r)
+                     )) $
+      xp5Tuple (xpDefault emptyReference xpRelatedItem)
+               (xpTriple  xpCiteKey xpRefType xpTitle )
+                xpAgents xpOrigin xpUrl
+
+xpCiteKey :: PU String
+xpCiteKey
+    = xpDefault [] $
+      xpChoice (xpAttr  "ID"         xpText)
+               (xpIElem "identifier" xpText)
+                xpLift
+
+xpOrigin :: PU ([RefDate],[Agent],String)
+xpOrigin
+    = xpDefault ([],[],[]) . xpIElem "originInfo" $
+      xpTriple (xpDefault [] $ xpWrap (readDate,show) $
+                xpIElem "dateIssued" xpText0)
+               (xpDefault [] $ xpList $ xpWrap (Entity, show) $
+                xpIElem "publisher" xpText0)
+               (xpDefault [] $ xpIElem "place" xpText0)
+
+xpRefType :: PU RefType
+xpRefType
+    = xpDefault NoType $
+      xpWrap (readType, show) xpGenre
+      where
+        readType t
+            | "conference publication" <- t = PaperConference
+            | "periodical"             <- t = ArticleJournal
+            | otherwise                     = Book
+
+xpRefType' :: PU RefType
+xpRefType'
+    = xpDefault NoType $
+      xpWrap (readTypeIn, show) xpGenre
+      where
+        readTypeIn t
+            | "book"                   <- t = Chapter
+            | "conference publication" <- t = PaperConference
+            | otherwise                     = ArticleJournal
+
+xpGenre :: PU String
+xpGenre
+    = xpWrap (concat, return) $
+      xpList $ xpIElem "genre" $
+      xpChoice xpZero
+              (xpPair (xpDefault [] $ xpAttr "authority" xpText) xpText)
+              $ \(a,s) -> if a == "marcgt"
+                          then xpLift s else xpGenre
+
+xpRelatedItem :: PU Reference
+xpRelatedItem
+    = xpIElem "relatedItem" . xpAddFixedAttr "type" "host" $
+      xpWrap ( \( (ty,ct)
+                ,((ca,ed,tr),(re,it,pu'),(co,ce))
+                ,((di,pg,vl,is),(nu,sc,ch))
+                , (di',pu,pp)
+                ) ->
+               emptyReference { refType          = ty
+                              , containerAuthor  = ca
+                              , containerTitle   = ct
+                              , editor           = ed
+                              , translator       = tr
+                              , recipient        = re
+                              , interviewer      = it
+                              , publisher        = pu `betterThen` pu'
+                              , publisherPlace   = pp
+                              , composer         = co
+                              , collectionEditor = ce
+                              , issued           = di `betterThen` di'
+                              , page             = pg
+                              , volume           = vl
+                              , issue            = is
+                              , number           = nu
+                              , section          = sc
+                              , chapterNumber    = ch
+                              }
+             , \r -> ( (refType         r, containerTitle   r)
+                     ,((containerAuthor r, editor           r, translator r)
+                      ,(recipient       r, interviewer      r, publisher  r)
+                      ,(composer        r, collectionEditor r))
+                     ,((issued  r, page  r, volume r, issue r)
+                      ,(number  r, section   r, chapterNumber r))
+                     , (issued  r, publisher r, publisherPlace r)
+                     )) $
+      xp4Tuple (xpPair  xpRefType' xpTitle)
+                xpAgents xpPart xpOrigin
+
+-- FIXME: join title and subtitle correctly
+xpTitle :: PU String
+xpTitle
+    = xpWrap (\(t,s) -> t <+> s, \s -> (s,[])) $
+      xpIElem "titleInfo" $
+      xpPair (xpIElem "title" xpText0)
+             (xpDefault [] $ xpIElem "subTitle" xpText0)
+
+xpAgents :: PU (([Agent],[Agent],[Agent])
+               ,([Agent],[Agent],[Agent])
+               ,([Agent],[Agent]))
+xpAgents
+    = xpTriple (xpTriple (xpAgent "author"      "aut")
+                         (xpAgent "editor"      "edt")
+                         (xpAgent "translator"  "trl"))
+               (xpTriple (xpAgent "recipient"   "rcp")
+                         (xpAgent "interviewer" "ivr")
+                         (xpAgent "publisher"   "pbl"))
+               (xpPair   (xpAgent "composer"    "cmp")
+                         (xpAgent "collector"   "xol"))
+
+xpAgent :: String -> String -> PU [Agent]
+xpAgent sa sb
+    = xpDefault [] $ xpList $ xpIElem "name" $
+      xpChoice  xpZero
+               (xpIElem "role" $ xpIElem "roleTerm" xpText0)
+               (\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)) $
+                 xpAddFixedAttr "type" "personal" xpNameData
+               , xpWrap ( \(_,s) -> Entity s
+                        , \(Entity s) -> ([],s)) $
+                 xpAddFixedAttr "type" "corporate" xpNameData
+             ]
+
+xpNameData :: PU ([String],String)
+xpNameData
+    = xpWrap (readName,const []) $
+      xpList $ xpElem "namePart" $ xpPair (xpAttr "type" xpText) xpText0
+    where
+      readName x = (readg x, readf x)
+      readf = foldr (\(k,v) xs -> if k == "family" then v    else xs) []
+      readg = foldr (\(k,v) xs -> if k == "given"  then v:xs else xs) []
+
+xpPart :: PU (([RefDate],String,String,String)
+             ,(String,String,String))
+xpPart
+    = xpDefault none . xpIElem "part" .
+      xpWrap (readIt none,const []) $ xpList xpDetail
+    where
+      none = (([],"","",""),("","",""))
+      readIt r [] = r
+      readIt acc@((d,p,v,i),(n,s,c)) (x:xs)
+          | Date      y <- x = readIt ((y,p,v,i),(n,s,c)) xs
+          | Page      y <- x = readIt ((d,y,v,i),(n,s,c)) xs
+          | Volume    y <- x = readIt ((d,p,y,i),(n,s,c)) xs
+          | Issue     y <- x = readIt ((d,p,v,y),(n,s,c)) xs
+          | Number    y <- x = readIt ((d,p,v,i),(y,s,c)) xs
+          | ChapterNr y <- x = readIt ((d,p,v,i),(n,s,y)) xs
+          | Section   y <- x = readIt ((d,p,v,i),(n,y,c)) xs
+          | otherwise        = acc
+
+data Detail
+    = Date     [RefDate]
+    | Page      String
+    | Volume    String
+    | Issue     String
+    | Number    String
+    | ChapterNr String
+    | Section   String
+      deriving ( Eq, Show )
+
+xpDetail :: PU Detail
+xpDetail
+    = xpAlt tag ps
+    where
+      tag _ = 0
+      ps = [ xpWrap (Date, const []) $ xpDate
+           , xpWrap (Page,     show) $ xpPage
+           , xpWrap (Volume,   show) $ xp "volume"
+           , xpWrap (Issue,    show) $ xp "issue"
+           , xpWrap (Number,   show) $ xp "number"
+           , xpWrap (Section,  show) $ xp "section"
+           , xpWrap (ChapterNr,show) $ xp "chapter"
+           ]
+      xpDate = xpWrap (readDate,show) (xpElem "date" xpText0)
+      xp   s = xpElemWithAttrValue "detail" "type" s $
+               xpElem "number" xpText
+
+xpPage :: PU String
+xpPage
+    = xpChoice (xpElemWithAttrValue "detail"  "type" "page" $ xpIElem "number" xpText)
+               (xpElemWithAttrValue "extent"  "unit" "page" $
+                xpPair (xpElem "start" xpText)
+                       (xpElem "end"   xpText))
+               (\(s,e) -> xpLift (s ++ "-" ++ e))
+
+xpUrl :: PU ([RefDate],String)
+xpUrl
+    = xpDefault ([],[]) . xpIElem "location" $
+      xpPair (xpWrap (readDate,show) $
+              xpDefault [] $ xpAttr "dateLastAccessed" xpText)
+             (xpDefault [] $ xpElem "url"              xpText)
+
+readDate :: String -> [RefDate]
+readDate s = if   takeWhile isDigit s /= []
+             then return $ RefDate (read $ takeWhile isDigit s) 0 0 []
+             else []
+
+betterThen :: Eq a => [a] -> [a] -> [a]
+betterThen a b = if a == [] then b else a
diff --git a/src/Text/CSL/Output/Pandoc.hs b/src/Text/CSL/Output/Pandoc.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Output/Pandoc.hs
@@ -0,0 +1,171 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Output.Pandoc
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@ing.unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The pandoc output formatter for CSL
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Output.Pandoc
+    ( renderPandoc
+    , renderPandocStrict
+    , renderPandoc'
+    , Pandoc (..), Meta (..)
+    ) where
+
+import Data.Char ( toUpper, toLower )
+import Data.List
+
+import Text.CSL.Style
+import Text.CSL.Output.Plain
+
+renderPandoc :: Style -> [FormattedOutput] -> String
+renderPandoc _
+    = show . clean . concatMap (render False)
+
+renderPandoc' :: Style -> [FormattedOutput] -> String
+renderPandoc' _
+    = show . Para . clean . concatMap (render False)
+
+renderPandocStrict :: [FormattedOutput] -> String
+renderPandocStrict
+    = show . cleanStrict . concatMap (render 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)
+    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
+
+      quote   i = if i /= [] && quotes fm
+                  then [Quoted DoubleQuote . valign . cleaner $ i]
+                  else valign (cleaner i)
+
+      capital s = toUpper (head s) : (tail s)
+
+      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
+
+      font_variant 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
+
+      valign i
+          |  "sup"  <- verticalAlign fm = [Superscript i]
+          |  "sub"  <- verticalAlign fm = [Subscript   i]
+          | otherwise                   =              i
+
+toStr :: String -> [Inline]
+toStr s
+    | ' ':xs <- s = Space : toStr xs
+    |  x :xs <- s = cleanStrict $ Str [x] : toStr xs
+    | otherwise   = []
+
+cleanStrict :: [Inline] -> [Inline]
+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
+
+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
+
+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 [] = []
+lastInline (i:[])
+    | Str s <- i = last' s
+    | Space <- i = " "
+    | otherwise  = lastInline $ getInline i
+    where
+      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
+    | otherwise           = []
+    where
+      tail' s = if s /= [] then tail s else []
+
+getInline :: Inline -> [Inline]
+getInline i
+    | Emph        is <- i = is
+    | SmallCaps   is <- i = is
+    | Strong      is <- i = is
+    | Superscript is <- i = is
+    | Subscript   is <- i = is
+    | Quoted _    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
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Output/Plain.hs
@@ -0,0 +1,69 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Output.Plain
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@ing.unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The plain ascii output formatter for CSL
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Output.Plain
+    ( renderPlain
+    , renderPlainStrict
+    , procList
+    , (<+>)
+    , (<>)
+    ) where
+
+import Data.Char
+import Data.List
+
+import Text.CSL.Style
+
+renderPlain :: [FormattedOutput] -> String
+renderPlain = concatMap $ render False
+
+renderPlainStrict :: [FormattedOutput] -> String
+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
+    where
+      rest      = 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
+
+      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
+
+procList :: Eq a => [a] -> ([a] -> [b]) -> [b]
+procList  s f = if s /= [] then f s else []
+
+(<+>) :: String -> String -> String
+[] <+> ss = ss
+s  <+> [] = s
+s  <+> ss = s ++ " " ++ ss
+
+(<>) :: String -> String -> String
+sa <> sb
+    | sa /= [], (s:xs) <- sb
+    , last sa == s
+    , s `elem` ";:,. " = sa ++ xs
+    | otherwise        = sa ++ sb
diff --git a/src/Text/CSL/Parser.hs b/src/Text/CSL/Parser.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Parser.hs
@@ -0,0 +1,421 @@
+{-# LANGUAGE PatternGuards #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Parser
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@ing.unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The CS Language parsers
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Parser where
+
+import Paths_citeproc_hs ( getDataFileName )
+import Text.CSL.Style
+
+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
+
+instance XmlPickler Layout where
+    xpickle = xpWrap (uncurry3 Layout, \(Layout f d e) -> (f,d,e)) $
+              xpIElem "layout" $
+              xpTriple xpickle xpDelimiter xpickle
+
+instance XmlPickler Element where
+    xpickle = xpAlt tag ps
+        where
+          tag (Choose       {}) =  0
+          tag (Macro        {}) =  1
+          tag (Const        {}) =  2
+          tag (PointLocator {}) =  3
+          tag (Variable     {}) =  4
+          tag (Term         {}) =  5
+          tag (Label        {}) =  6
+          tag (Names        {}) =  7
+          tag (ShortNames   {}) =  8
+          tag (Substitute   {}) =  9
+          tag (Group        {}) = 10
+          tag (Number       {}) = 11
+          tag (Date         {}) = 12
+          ps = [ xpChoose
+               , xpMacro
+               , xpConst
+               , xpPointLocator
+               , xpVariable
+               , xpTerm
+               , xpLabel
+               , xpNames
+               , xpShortNames
+               , xpSubStitute
+               , xpGroup
+               , xpNumber
+               , xpDate
+               ]
+
+instance XmlPickler IfThen where
+    xpickle = xpWrap (uncurry3 IfThen, \(IfThen c m e) -> (c,m,e)) $
+              xpTriple xpickle xpickle xpickle
+
+instance XmlPickler Condition where
+    xpickle = xpWrap ( \ ((t,v,n),(d,p,a,l)) ->
+                           Condition (words t) (words v) (words n)
+                                     (words d) (words p) (words a) (words l),
+                       \ (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"       ))
+
+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))
+
+instance XmlPickler Sort where
+    xpickle = xpAlt tag ps
+        where
+          readSort = read . flip (++) " \"\"" . toRead
+          tag (SortVariable {}) = 0
+          tag (SortMacro    {}) = 1
+          ps = [ xpWrap ( \(v,s) -> SortVariable v (readSort s)
+                        , \(SortVariable v s) -> (v,toShow $ show s)) $
+                 xpElem "key" $
+                 xpPair (xpAttrText "variable")
+                        (xpAttrWithDefault "ascending" "sort" xpText)
+
+               , xpWrap ( \(v,s) -> SortMacro v (readSort s)
+                        , \(SortMacro v s) -> (v,toShow $ show s)) $
+                 xpElem "key" $
+                 xpPair (xpAttrText "macro")
+                        (xpAttrWithDefault "ascending" "sort" xpText)
+               ]
+
+instance XmlPickler Bool where
+    xpickle = xpWrap readable xpText
+
+instance XmlPickler Form where
+    xpickle = xpWrap readable
+                     (xpAttrWithDefault "long" "form" xpText)
+
+instance XmlPickler NumericForm where
+    xpickle = xpWrap readable
+                     (xpAttrWithDefault "numeric" "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)) $
+              xpElem "date-part" $
+              xpTriple (xpAttrText "name")
+                       (xpAttrWithDefault "long" "form" xpText)
+                        xpickle
+
+instance XmlPickler Name where
+    xpickle = xpAlt tag ps
+        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
+               ]
+
+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 CSInfo where
+    xpickle = xpWrap ( \ ((t,i,u),(a,c)) -> CSInfo t a c i u
+                     , \ s -> ((csiTitle s,  csiId s, csiUpdated s)
+                              ,(csiAuthor s, csiCategories s))) $
+              xpPair (xpTriple (get "title"  )
+                               (get "id"     )
+                               (get "updated"))
+                     (xpPair   (xpIElemWithDefault (CSAuthor   "" "" "") "author" xpickle)
+                               (xpDefault [] $ xpList $ xpIElem "category" xpickle))
+                  where
+                    get = flip xpIElem xpText
+
+instance XmlPickler CSAuthor where
+    xpickle = xpWrap   (uncurry3 CSAuthor, \(CSAuthor a b c) -> (a, b, c)) $
+              xpTriple (xpIElemWithDefault [] "name"  xpText)
+                       (xpIElemWithDefault [] "email" xpText)
+                       (xpIElemWithDefault [] "uri"   xpText)
+
+instance XmlPickler CSCategory where
+    xpickle = xpWrap   (uncurry3 CSCategory, \(CSCategory a b c) -> (a, b, c)) $
+              xpTriple (xpAttrText  "term"  )
+                       (xpAttrText' "schema")
+                       (xpAttrText' "label" )
+
+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))) $
+      xpIElem "style" $
+      xpPair (xp4Tuple (xpAttrText "class")
+                        xpInfo
+                       (xpAttrWithDefault "en"    "xml:lang"       xpText)
+                       (xpAttrWithDefault "en-US" "default-locale" xpText))
+             (xp4Tuple (xpDefault [] xpTerms)
+                        xpMacros
+                        xpCitation
+                       (xpOption xpBibliography))
+
+xpInfo :: PU (Maybe CSInfo)
+xpInfo  = xpOption . xpIElem "info" $ xpickle
+
+xpTerms :: PU [TermMap]
+xpTerms
+    = xpIElem "terms" $ xpIElem "locale" $ xpList $ xpElem "term" $
+      xpPair (xpPair (xpAttrText "name") xpickle)
+             (xpChoice (xpWrap (\s -> (s,s), fst)    xpText0)
+                       (xpPair (xpIElem "single"   $ xpText0)
+                               (xpIElem "multiple" $ xpText0))
+                        xpLift)
+
+xpMacros :: PU [MacroMap]
+xpMacros
+    = xpList $ xpIElem "macro" $
+      xpPair (xpAttrText "name") xpickle
+
+xpCitation :: PU Citation
+xpCitation
+    = xpWrap (uncurry3 Citation, \(Citation o s l) -> (o,s,l)) $
+      xpIElem "citation" $
+      xpTriple xpOptions xpSort xpickle
+
+xpBibliography :: PU Bibliography
+xpBibliography
+    = xpWrap (uncurry3 Bibliography, \(Bibliography o s l) -> (o,s,l)) $
+      xpIElem "bibliography" $
+      xpTriple xpOptions xpSort xpickle
+
+xpOptions :: PU [Option]
+xpOptions
+    = xpList $ xpIElem "option" $
+      xpPair (xpAttrText "name") (xpAttrText "value")
+
+xpSort :: PU [Sort]
+xpSort
+    = xpDefault [] $ xpElem "sort" $ xpList xpickle
+
+xpChoose :: PU Element
+xpChoose
+    = xpWrap (uncurry3 Choose, \(Choose b t e) -> (b,t,e)) $
+      xpElem "choose" $
+      xpTriple (                        xpElem "if"      xpickle)
+               (xpDefault [] $ xpList $ xpElem "else-if" xpickle)
+               (xpDefault []          $ xpElem "else"    xpickle)
+
+xpMacro :: PU Element
+xpMacro
+    = xpWrap (uncurry3 Macro, \(Macro s f fm) -> (s,f,fm)) $
+      xpTextElem $ xpCommon "macro"
+
+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
+             , \(Variable v f fm d) -> ((unwords v,f,fm),d)) $
+      xpTextElem $ xpPair (xpCommon "variable") xpDelimiter
+
+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
+
+xpNames :: PU Element
+xpNames
+    = xpWrap ( \((a,n,fm),d,sb)     -> Names (words a) n fm d sb
+             , \(Names a n fm d sb) -> ((unwords a,n,fm),d,sb)) $
+      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
+
+xpShortNames :: PU Element
+xpShortNames
+    = xpWrap ( \((a,fm),d)          -> ShortNames (words a) fm d
+             , \(ShortNames a fm d) -> ((unwords a,fm),d)) $
+      xpElem "names" $ xpPair content xpDelimiter
+    where content = xpPair (xpAttrText "variable") xpickle
+
+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)) $
+      xpElem "label" $
+      xp5Tuple (xpAttrText' "variable")
+                xpickle xpickle xpIncludePeriod xpPlural
+
+xpSubStitute :: PU Element
+xpSubStitute
+    = xpWrap (Substitute, \(Substitute es) -> es) $
+      xpElem "substitute" xpickle
+
+xpGroup :: PU Element
+xpGroup
+    = xpWrap ( \(fm,d,c,e)       -> Group fm d c e
+             , \(Group fm d c e) -> (fm,d,c,e)) $
+      xpElem "group" $
+      xp4Tuple xpickle xpDelimiter (xpAttrText' "class") xpickle
+
+xpNumber :: PU Element
+xpNumber
+    = xpWrap (uncurry3 Number, \(Number s f fm) -> (s,f,fm)) $
+      xpElem "number" $ xpCommon "variable"
+
+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
+
+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
+
+xpCommon :: (XmlPickler b, XmlPickler c) => String -> PU (String,b,c)
+xpCommon s = xpTriple (xpAttrText s) xpickle xpickle
+
+-- | For mandatory attributes.
+xpAttrText :: String -> PU String
+xpAttrText n = xpAttr n xpText
+
+-- | For optional attributes.
+xpAttrText' ::  String -> PU String
+xpAttrText' n = xpAttrWithDefault [] n xpText
+
+xpAttrWithDefault :: Eq a => a -> String -> PU a -> PU a
+xpAttrWithDefault d n = xpDefault d . xpAttr n
+
+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)
+
+toShow :: String -> String
+toShow = foldr g [] . f
+    where g    x xs  = if isUpper x then '-' : toLower x : xs else x : xs
+          f (  x:xs) = toLower x : xs
+          f       [] = []
+
+toRead :: String -> String
+toRead    []  = []
+toRead (s:ss) = toUpper s : camel ss
+    where
+      camel x
+          | '-':y:ys <- x = toUpper y : camel ys
+          | '_':y:ys <- x = toUpper y : camel ys
+          |     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
+
+readCSLFile :: String -> 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}
diff --git a/src/Text/CSL/Proc.hs b/src/Text/CSL/Proc.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Proc.hs
@@ -0,0 +1,260 @@
+{-# LANGUAGE PatternGuards #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Proc
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@ing.unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- Output processing.
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Proc where
+
+import Control.Arrow ( (&&&), (>>>), (***) )
+import Data.Char ( chr )
+import Data.List ( (\\), elemIndex, findIndices
+                 , sortBy, mapAccumL, nub, groupBy
+                 , isPrefixOf )
+import Data.Maybe
+import Data.Ord ( comparing )
+
+import Text.CSL.Eval
+import Text.CSL.Reference
+import Text.CSL.Style
+
+processCitations :: Style -> [Reference] -> [[(String, String)]] -> [[FormattedOutput]]
+processCitations s rs
+    = citations . citeproc s rs
+
+processBibliography :: Style -> [Reference] -> [[FormattedOutput]]
+processBibliography s rs
+    = bibliography $ citeproc s rs [zip (map citeKey rs) (repeat "")]
+
+citeproc :: Style -> [Reference] -> [[(String, String)]] -> BiblioData
+citeproc s rs cs
+    = BD  (outputGroups citOutput) biblioOutput
+    where
+      bibs   = refsYSuffix . procRefs s . map (getReference rs) .
+               nub . map (id *** const []) . concat $ cs
+      refs   = getRefs bibs cs
+      groups = map (procGroup s) refs
+
+      -- | group citation data (with possible alternative names) for every
+      -- list of contributors which has a duplicate.
+      contribs  = nub $ concatMap (\(CG _ _ os) -> concatMap getCiteData os) groups
+      collid    = map rmGivenNames . collision
+      duplics   = groupBy (\a b -> collid a == collid b) .
+                  sortBy  (comparing collid) $
+                  filter  (collid &&& citYear >>> flip elem (getDuplicates groups)) contribs
+
+      needYSuff = map (allTheSame . map disData) duplics
+      needName  = concatMap fst . filter (not . snd) $ zip duplics needYSuff
+
+      disSolved = zip needName (disambiguate $ map disData needName)
+      addLNames = map (\(c,n) -> c { disambed = head n }) disSolved
+      addGNames = map (\ c    -> c { disambed = addGivenNames (disambed c) })
+
+      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))
+
+      disOpts  = getDisOptions s
+      hasNames = "disambiguate-add-names"       `elem` disOpts
+      hasGName = "disambiguate-add-givenname"   `elem` disOpts
+      hasYSuff = "disambiguate-add-year-suffix" `elem` disOpts
+      nameDis  = case () of
+                  _ | hasNames
+                    , hasGName -> let (n ,ns ) = done   addLNames
+                                      (n',ns') = done $ addGNames ns
+                                  in   n ++ n' ++ addGNames ns'
+                    | hasNames -> fst . done $ addLNames
+                    | hasGName -> fst . done $ addGNames needName
+                    | otherwise                                   -> []
+
+      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
+
+      outputGroups = map $ \(CG fm d os) -> map formatOutput $ outputList fm d os
+      citOutput    = if disOpts /= []
+                     then if hasYSuff
+                          then proc addYearSuffix $ proc (updateOutput nameDis) reEvaluated
+                          else proc (updateOutput nameDis) reEvaluated
+                     else groups
+      biblioOutput = if hasYSuff
+                     then map (map formatOutput) $ proc addYearSuffix $ procBiblio s bibs
+                     else map (map formatOutput) $ procBiblio s bibs
+
+procBiblio :: Style -> [Reference] -> [[Output]]
+procBiblio (Style {biblio = mb, csMacros = ms , csTerms = ts}) 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)
+      chkAut _ []     = []
+      chkAut a (x:xs) = if author x `elem` a
+                        then ("subsequent",x) : chkAut             a  xs
+                        else ("first"     ,x) : chkAut (author x : a) xs
+
+procRefs :: Style -> [Reference] -> [Reference]
+procRefs (Style {biblio = mb, csMacros = ms , csTerms = ts}) rs
+    = maybe rs process mb
+    where
+      citNum x = x { citationNumber = maybe 0 ((+) 1) . elemIndex x $ rs }
+      sort    b = evalSorting ts ms (bibOptions b) (bibSort b)
+      process b = map fst . sortBy (comparing snd) . map (citNum &&& sort b) $ rs
+
+refsYSuffix :: [Reference] -> [Reference]
+refsYSuffix rs
+    = update indices
+    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    -> []
+
+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)
+
+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
+                      else [out]
+
+suffixes :: [String]
+suffixes
+    = l ++ [x ++ y | x <- l, y <- l ]
+    where
+      l = map (return . chr) [97..122]
+
+updateOutput :: [CiteData] -> Output -> Output
+updateOutput m o
+    | FC k x _ <- o = case elemIndex (CD k x [] [] []) m of
+                        Just i -> FC k (disambed $ m !! i) []
+                        _      -> o
+    | otherwise     = o
+
+getDisOptions :: Style -> [String]
+getDisOptions
+   = map fst . filter ((==) "true" . snd) .
+     filter (isPrefixOf "disambiguate" . fst) . citOptions . citation
+
+getRefs :: [Reference] -> [[(String, String)]] -> [[(String, Reference)]]
+getRefs r = map (map $ getReference' r) . generatePosition
+
+-- | The contributors diambiguation data, the list of names and
+-- give-names, and the citation year ('FY').
+type NamesYear = ([Output],String)
+
+-- | Get the contributors list ('FC') and the year occurring in more
+-- then one citation.
+getDuplicates :: [CitationGroup] -> [NamesYear]
+getDuplicates
+    = nub . catMaybes . snd . mapAccumL dupl [] . getData
+    where
+      getData l = concat . map nub . flip map l $ \(CG _ _ os) ->  concatMap getNamesYear os
+      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     )
+
+getNamesYear :: Output -> [(String,NamesYear)]
+getNamesYear
+    = proc rmGivenNames        >>>
+      query contribs &&& years >>>
+      zipData
+    where
+      yearsQ  = query getYears
+      years o = if yearsQ o /= [] then yearsQ o else [""]
+      zipData = uncurry . zipWith $ \(k,c) y -> (,) k (c,y)
+      contribs o
+          | FC k x _ <- o = [(k,x)]
+          | otherwise     = []
+
+getYears :: Output -> [String]
+getYears o
+    | FY x _ _ <- o = [x]
+    | otherwise     = []
+
+hasIfDis :: IfThen -> [Bool]
+hasIfDis o
+    | IfThen (Condition {disambiguation = d}) _ _ <- o = [d /= []]
+    | otherwise                                        = [False  ]
+
+-- | Get the list of possible non ambiguous names for every citation
+-- whose contributor list and year is occuring in more then one
+-- citation.
+getCiteData :: Output -> [CiteData]
+getCiteData
+    = query contribs &&& years >>>
+      zipData
+    where
+      yearsQ  = query getYears
+      years o = if yearsQ o /= [] then yearsQ o else [""]
+      zipData = uncurry . zipWith $ \c y -> c {citYear = y}
+      contribs o
+          | FC k x xs <- o = [CD k x xs [] []]
+          | otherwise     = []
+
+-- List Utilities
+
+disambiguate :: (Eq a) => [[a]] -> [[a]]
+disambiguate [] = []
+disambiguate ls
+    = if hasDuplicates takeHead
+      then diff ++ disambiguate (map tail' dupl)
+      else takeHead
+    where
+      zipped = zip ls takeHead
+      diff   = map        fst  . filter (not . snd) $ zip takeHead (same takeHead)
+      dupl   = map (fst . fst) . filter        snd  $ zip zipped   (same takeHead)
+
+      takeHead  = map head' ls
+      head'     = foldr (\x _ -> [x]) []
+      tail' [x] = [x]
+      tail'  x  = tail x
+
+same :: Eq a => [a] -> [Bool]
+same [] = []
+same l
+    = snd $ mapAccumL check (catMaybes dupl) l
+    where
+      dupl = snd $ mapAccumL (\a x -> if x `elem` a then (a,Just x) else (x:a,Nothing)) [] l
+      check a e = if e `elem` a then (a,True) else (e:a,False)
+
+hasDuplicates :: Eq a => [a] -> Bool
+hasDuplicates = hasSame or
+
+allTheSame :: Eq a => [a] -> Bool
+allTheSame = hasSame and
+
+hasSame :: Eq a => ([Bool] -> Bool) -> [a] -> Bool
+hasSame _ [] = False
+hasSame f l
+    = f . snd $ mapAccumL check [head l] (tail l)
+    where
+      check a e = if e `elem` a then (a,True) else (e:a,False)
diff --git a/src/Text/CSL/Reference.hs b/src/Text/CSL/Reference.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Reference.hs
@@ -0,0 +1,321 @@
+{-# OPTIONS_GHC -fglasgow-exts #-} -- for deriving Typeable
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Reference
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@ing.unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The Reference type
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Reference where
+
+import Data.Char  ( isUpper, toLower      )
+import Data.List  ( elemIndex, isPrefixOf )
+import Data.Maybe ( fromJust              )
+import Data.Generics
+
+-- | 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
+
+-- for debuging
+instance Show Value where
+    show (Value a) = gshow a
+
+type ReferenceMap = [(String, Value)]
+
+mkRefMap :: Data a => a -> ReferenceMap
+mkRefMap a = zip fields (gmapQ Value a)
+    where fields = map formatField . constrFields . toConstr $ a
+
+formatField :: String -> String
+formatField = foldr f [] . g
+    where f  x xs  = if isUpper x then '-' : toLower x : xs else x : xs
+          g (x:xs) = toLower x : xs
+          g     [] = []
+
+fromValue :: Data a => Value -> Maybe a
+fromValue (Value a) = cast a
+
+isValueSet :: Value -> Bool
+isValueSet val
+    | Just v <- fromValue val :: Maybe String    = v /= []
+    | Just v <- fromValue val :: Maybe [Agent]   = v /= []
+    | Just v <- fromValue val :: Maybe [RefDate] = v /= []
+    | Just v <- fromValue val :: Maybe Int       = 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 )
+
+data RefDate =
+    RefDate { year  :: Int
+            , month :: Int
+            , day   :: Int
+            , other :: String
+            } deriving ( Show, Read, Eq, Typeable, Data )
+
+data RefType
+    = NoType
+    | Article
+    | ArticleMagazine
+    | ArticleNewspaper
+    | ArticleJournal
+    | Bill
+    | Book
+    | Chapter
+    | Entry
+    | EntryDictionary
+    | EntryEncyclopedia
+    | Figure
+    | Graphic
+    | Interview
+    | Legislation
+    | LegalCase
+    | Manuscript
+    | Map
+    | MotionPicture
+    | MusicalScore
+    | Pamphlet
+    | PaperConference
+    | Patent
+    | Post
+    | PostWeblog
+    | PersonalCommunication
+    | Report
+    | Review
+    | ReviewBook
+    | Song
+    | Speech
+    | Thesis
+    | Treaty
+    | Webpage
+      deriving ( Read, Eq, Typeable, Data )
+
+instance Show RefType where
+    show = map toLower . formatField . showConstr . toConstr
+
+data Reference =
+    Reference
+    { citeKey            :: String
+    , refType            :: RefType
+
+    , author             :: [Agent]
+    , editor             :: [Agent]
+    , translator         :: [Agent]
+    , recipient          :: [Agent]
+    , interviewer        :: [Agent]
+    , publisher          :: [Agent]
+    , composer           :: [Agent]
+    , originalPublisher  :: [Agent]
+    , originalAuthor     :: [Agent]
+    , containerAuthor    :: [Agent]
+    , collectionEditor   :: [Agent]
+
+    , issued             :: [RefDate]
+    , eventDate          :: [RefDate]
+    , accessed           :: [RefDate]
+    , container          :: [RefDate]
+    , originalDate       :: [RefDate]
+
+    , title              :: String
+    , containerTitle     :: String
+    , collectionTitle    :: String
+    , collectionNumber   :: Int
+    , originalTitle      :: String
+    , publisherPlace     :: String
+    , archive            :: String
+    , archivePlace       :: String
+    , archiveLocation    :: String
+    , event              :: String
+    , eventPlace         :: String
+    , page               :: String
+    , locator            :: Locator
+    , version            :: String
+    , volume             :: String
+    , numberOfVolumes    :: Int
+    , issue              :: String
+    , chapterNumber      :: String
+    , medium             :: String
+    , status             :: String
+    , edition            :: String
+    , section            :: String
+    , genre              :: String
+    , note               :: String
+    , annote             :: String
+    , abstract           :: String
+    , keyword            :: String
+    , number             :: String
+    , references         :: String
+    , url                :: String
+    , doi                :: String
+    , isbn               :: String
+
+    , citationNumber     :: Int
+    , yearSuffix         :: String
+    , citationLabel      :: String
+    } deriving ( Eq, Show, Read, Typeable, Data )
+
+emptyReference :: Reference
+emptyReference =
+    Reference
+    { citeKey             = []
+    , refType             = NoType
+
+    , author              = []
+    , editor              = []
+    , translator          = []
+    , recipient           = []
+    , interviewer         = []
+    , publisher           = []
+    , composer            = []
+    , originalPublisher   = []
+    , originalAuthor      = []
+    , containerAuthor     = []
+    , collectionEditor    = []
+
+    , issued              = []
+    , eventDate           = []
+    , accessed            = []
+    , container           = []
+    , originalDate        = []
+
+    , title               = []
+    , containerTitle      = []
+    , collectionTitle     = []
+    , collectionNumber    = 0
+    , originalTitle       = []
+    , publisherPlace      = []
+    , archive             = []
+    , archivePlace        = []
+    , archiveLocation     = []
+    , event               = []
+    , eventPlace          = []
+    , page                = []
+    , locator             = NoneLoc
+    , version             = []
+    , volume              = []
+    , numberOfVolumes     = 0
+    , issue               = []
+    , chapterNumber       = []
+    , medium              = []
+    , status              = []
+    , edition             = []
+    , section             = []
+    , genre               = []
+    , note                = []
+    , annote              = []
+    , abstract            = []
+    , keyword             = []
+    , number              = []
+    , references          = []
+    , url                 = []
+    , doi                 = []
+    , isbn                = []
+
+    , citationNumber      = 0
+    , yearSuffix          = []
+    , citationLabel       = []
+    }
+
+getReference :: [Reference] -> (String,String) -> Reference
+getReference  r
+    = snd . getReference' r . flip (,) ("",0)
+
+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 = n }
+        Nothing -> (,) p $ emptyReference
+                           { title          = c ++ " not found!"
+                           , citationNumber = n }
+
+data Locator
+    = NoneLoc
+    | BookLoc    String
+    | ChapterLoc String
+    | ColumnLoc  String
+    | FigureLoc  String
+    | FolioLoc   String
+    | IssueLoc   String
+    | LineLoc    String
+    | NoteLoc    String
+    | OpusLoc    String
+    | PageLoc    String
+      deriving ( Read, Eq, Typeable, Data )
+
+instance Show Locator where
+    show = map toLower . reverse . drop 3 . reverse . showConstr . toConstr
+
+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
+    | otherwise         = []
+
+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
+    | "p"  `isPrefixOf` formatField s = mk PageLoc
+    | otherwise                       =    NoneLoc
+    where
+      mk c = if null s then NoneLoc else c . concat . tail . words $ s
+
+generatePosition :: [[(String,String)]] -> [[((String,String),(String,Int))]]
+generatePosition = getPos ([],[])
+
+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
+    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
+          where
+            newCit  = 1 + length c
+            citNum  = (+) 1 . fromJust . elemIndex k $ c
+            isSet   = l /= ""
+            isElem  = k `elem` a
+            isIbid  = isElem && k == last a
diff --git a/src/Text/CSL/Style.hs b/src/Text/CSL/Style.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/CSL/Style.hs
@@ -0,0 +1,282 @@
+{-# OPTIONS_GHC -fglasgow-exts #-} -- for deriving Typeable
+{-# LANGUAGE PatternGuards #-}
+-- {-# LANGUAGE #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Text.CSL.Style
+-- Copyright   :  (c) Andrea Rossato
+-- License     :  BSD-style (see LICENSE)
+--
+-- Maintainer  :  Andrea Rossato <andrea.rossato@ing.unitn.it>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- The Style types
+--
+-----------------------------------------------------------------------------
+
+module Text.CSL.Style where
+
+import Data.Generics
+
+data Style
+    = Style
+      { styleClass  ::  String
+      , styleInfo   ::  Maybe CSInfo
+      , styleLang   ::  String
+      , styleLocale ::  String
+      , csTerms     :: [TermMap]
+      , csMacros    :: [MacroMap]
+      , citation    ::  Citation
+      , biblio      ::  Maybe Bibliography
+      } deriving ( Show, Typeable, Data )
+
+type TermMap
+    = ((String,Form),(String,String))
+
+type MacroMap
+    = (String,[Element])
+
+data Citation
+    = Citation
+      { citOptions :: [Option]
+      , citSort    :: [Sort]
+      , citLayout  ::  Layout
+      } deriving ( Show, Typeable, Data )
+
+data Bibliography
+    = Bibliography
+      { bibOptions :: [Option]
+      , bibSort    :: [Sort]
+      , bibLayout  ::  Layout
+      } deriving ( Show, Typeable, Data )
+
+type Option = (String,String)
+
+data Layout
+    = Layout
+      { layFormat ::  Formatting
+      , layDelim  ::  Delimiter
+      , elements  :: [Element]
+      } deriving ( Show, Typeable, Data )
+
+data Element
+    = Choose       IfThen   [IfThen]     [Element]
+    | Macro        String     Form        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
+    | 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]
+      deriving ( Show, Eq, Typeable, Data )
+
+data IfThen
+    = IfThen Condition Match [Element]
+      deriving ( Eq, Show, Typeable, Data )
+
+data Condition
+    = Condition
+      { isType         :: [String]
+      , isSet          :: [String]
+      , isNumeric      :: [String]
+      , isDate         :: [String]
+      , isPosition     :: [String]
+      , disambiguation :: [String]
+      , isLocator      :: [String]
+      }
+      deriving ( Eq, Show, Typeable, Data )
+
+type Delimiter
+    = String
+
+data Match
+    = Any
+    | All
+    | None
+      deriving ( Show, Read, Eq, Typeable, Data )
+
+match :: Match -> [Bool] -> Bool
+match All  = and
+match Any  = or
+match None = and . map not
+
+data DatePart
+    = DatePart String String Formatting
+      deriving ( Show, Eq, Typeable, Data )
+
+defaultDate :: [DatePart]
+defaultDate
+    = [ DatePart "year"  "" emptyFormatting
+      , DatePart "month" "" emptyFormatting
+      , DatePart "day"   "" emptyFormatting]
+
+data Sort
+    = SortVariable String Sorting
+    | SortMacro    String Sorting
+      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
+
+instance Ord Sorting where
+    compare (Ascending  a) (Ascending  b) = compare a b
+    compare (Descending a) (Descending b) = compare b a
+    compare             _              _  = EQ
+
+data Form
+    = Long
+    | Verb
+    | Short
+    | VerbShort
+    | Symbol
+      deriving ( Eq, Show, Read, Typeable, Data )
+
+data NumericForm
+    = Numeric
+    | Ordinal
+    | Roman
+      deriving ( Eq, Show, Read, Typeable, Data )
+
+data Name
+    = Name      Form Formatting NameFormatting Delimiter
+    | NameLabel Form Formatting Bool Bool
+      deriving ( Eq, Show, 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 )
+
+defaultNameFormatting :: NameFormatting
+defaultNameFormatting
+    = NameFormatting
+      { andConnector          = "text"
+      , delimiterPrecedesLast = ""
+      , nameAsSortOrder       = ""
+      , sortSeparator         = ""
+      , initializeWith        = ""
+      }
+
+data Formatting
+    = Formatting
+      { prefix         :: String
+      , suffix         :: String
+      , fontFamily     :: String
+      , fontStyle      :: String
+      , fontVariant    :: String
+      , fontWeight     :: String
+      , textDecoration :: String
+      , verticalAlign  :: String
+      , textCase       :: String
+      , display        :: String
+      , quotes         :: Bool
+      } deriving ( Eq, Ord, Read, Show, Typeable, Data )
+
+emptyFormatting :: Formatting
+emptyFormatting
+    = Formatting [] [] [] [] [] [] [] [] [] [] False
+
+data CSInfo
+    = CSInfo
+      { csiTitle      :: String
+      , csiAuthor     :: CSAuthor
+      , csiCategories :: [CSCategory]
+      , csiId         :: String
+      , csiUpdated    :: String
+      } deriving ( Show, Read, Typeable, Data )
+
+data CSAuthor   = CSAuthor   String String String deriving ( Show, Read, Eq, Typeable, Data )
+data CSCategory = CSCategory String String String deriving ( Show, Read, Eq, Typeable, Data )
+
+data FormattedOutput
+    = FO String Formatting [FormattedOutput]
+    | Delimiter String
+      deriving ( Eq, Show )
+
+data Output
+    = FS String             Formatting
+    | FN String  [String]   Formatting -- ^ A name and its given name if needed
+    | FY String   String    Formatting -- ^ The year and a suffix if needed
+    | O [Output]            Formatting
+    | FC String  [Output]   [[Output]] -- ^ The contributor(s) with additional names
+    | S  String
+      deriving ( Eq, Ord, Show, Typeable, Data )
+
+data CitationGroup = CG Formatting String [Output] deriving ( Show, Eq, Typeable, Data )
+
+data BiblioData
+    = BD
+      { citations    :: [[FormattedOutput]]
+      , bibliography :: [[FormattedOutput]]
+      } deriving ( Show )
+
+data CiteData
+    = CD
+      { key       ::   String
+      , collision ::  [Output]
+      , disData   :: [[Output]]
+      , disambed  ::  [Output]
+      , citYear   ::   String
+      } deriving ( Show, Typeable, Data )
+
+instance Eq CiteData where
+    (==) (CD ka ca _ _ _)
+         (CD kb cb _ _ _) = ka == kb && ca == cb
+
+formatOutput :: Output -> FormattedOutput
+formatOutput o
+    | S  s     <- o = Delimiter s
+    | FS s   f <- o = FO s  f []
+    | FN s _ f <- o = FO s  f []
+    | FY s _ f <- o = FO s  f []
+    | O   os f <- o = FO "" f               (format os)
+    | FC _ s _ <- o = FO "" emptyFormatting (format  s)
+    | otherwise     = FO "" emptyFormatting []
+    where
+      format  = map formatOutput
+
+proc :: (Typeable a, Data b) => (a -> a) -> b -> b
+proc f = everywhere (mkT f)
+
+query :: (Typeable a, Data b) => (a -> [c]) -> b -> [c]
+query f = everything (++) ([] `mkQ` f)
+
+rmGivenNames :: Output -> Output
+rmGivenNames o
+    | FN s _ f <- o = FN s [] f
+    | otherwise     = o
+
+addGivenNames :: [Output] -> [Output]
+addGivenNames
+    = reverse . addGN True . reverse
+    where
+      addGN _ [] = []
+      addGN b (o:os)
+          | FN _ xs f <- o
+          , xs /= []  = if b then FN (head xs) (tail xs) f : addGN False os else o:os
+          | otherwise = o : addGN b os
+
+addYearSuffix :: Output -> Output
+addYearSuffix o
+    | FY y s f <- o = FY (y ++ s) s f
+    | otherwise     = o
+
diff --git a/test/RefData.hs b/test/RefData.hs
new file mode 100644
--- /dev/null
+++ b/test/RefData.hs
@@ -0,0 +1,60 @@
+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
new file mode 100644
--- /dev/null
+++ b/test/apa
@@ -0,0 +1,230 @@
+<?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/loc.hs b/test/loc.hs
new file mode 100644
--- /dev/null
+++ b/test/loc.hs
@@ -0,0 +1,14 @@
+import Control.Monad
+import System.Exit
+
+main = do foo <- getContents
+          let actual_loc = filter (not.null) $ filter isntcomment $
+                           map (dropWhile (==' ')) $ lines foo
+              loc = length actual_loc
+          putStrLn $ show loc
+          -- uncomment the following to check for mistakes in isntcomment
+          -- putStr $ unlines $ actual_loc
+
+isntcomment ('-':'-':_) = False
+isntcomment ('{':'-':_) = False -- pragmas
+isntcomment _ = True
diff --git a/test/locales-it-IT.xml b/test/locales-it-IT.xml
new file mode 100644
--- /dev/null
+++ b/test/locales-it-IT.xml
@@ -0,0 +1,201 @@
+<?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
new file mode 100644
--- /dev/null
+++ b/test/modsCollection.xml
@@ -0,0 +1,963 @@
+<?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
new file mode 100644
--- /dev/null
+++ b/test/test.hs
@@ -0,0 +1,108 @@
+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
+
+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 <- readModsColletionFile (modsCo config)
+        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
+
+
diff --git a/test/test.markdown b/test/test.markdown
new file mode 100644
--- /dev/null
+++ b/test/test.markdown
@@ -0,0 +1,23 @@
+# 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
new file mode 100644
--- /dev/null
+++ b/test/test_basic.hs
@@ -0,0 +1,55 @@
+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
new file mode 100644
--- /dev/null
+++ b/test/test_note.markdown
@@ -0,0 +1,40 @@
+# 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
