texlive[52695] Master/texmf-dist: datetime2-serbian (8nov19)

commits+karl at tug.org commits+karl at tug.org
Fri Nov 8 22:40:42 CET 2019


Revision: 52695
          http://tug.org/svn/texlive?view=revision&revision=52695
Author:   karl
Date:     2019-11-08 22:40:42 +0100 (Fri, 08 Nov 2019)
Log Message:
-----------
datetime2-serbian (8nov19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/datetime2-serbian/datetime2-serbian.pdf
    trunk/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.dtx
    trunk/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.ins
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian.ldf

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/datetime2-serbian/README.md
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-ascii.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-utf8.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbianc.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-BA.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-ME.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-RS.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-BA.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-ME.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-RS.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn.ldf

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/datetime2-serbian/README
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-ascii.ldf
    trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-utf8.ldf

Deleted: trunk/Master/texmf-dist/doc/latex/datetime2-serbian/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/datetime2-serbian/README	2019-11-08 21:40:13 UTC (rev 52694)
+++ trunk/Master/texmf-dist/doc/latex/datetime2-serbian/README	2019-11-08 21:40:42 UTC (rev 52695)
@@ -1,57 +0,0 @@
-Serbian Language Module for datetime2 Package
-
-Author: Nicola L. C. Talbot (inactive)
-
-Licence: LPPL
-
-Required Packages: datetime2, tracklang
-
-This module is unmaintained. If you want to volunteer to take over
-the maintenance contact me at www.dickimaw-books.com/contact.html
-
-Example usage:
-
-\documentclass{article}
-\usepackage[serbian]{datetime2}
-\begin{document}
-\today
-\end{document}
-
-\documentclass[serbian]{article}
-\usepackage{babel}
-\usepackage[useregional]{datetime2}
-\begin{document}
-\today
-\end{document}
-
-\documentclass{article}
-\usepackage{polyglossia}
-\setmainlanguage{serbian}
-\usepackage[serbian]{datetime2}
-\begin{document}
-\today
-\end{document}
-
-INSTALLATION
-============
-
-xelatex datetime2-serbian.ins
-
-Move all *.ldf files to
-TEXMF/tex/latex/datetime2-contrib/datetime2-serbian/
-
-Documentation:
-
-xelatex datetime2-serbian.dtx
-makeindex -s gind.ist datetime2-serbian.idx
-makeindex -s gglo.ist -o datetime2-serbian.gls datetime2-serbian.glo
-xelatex datetime2-serbian.dtx
-xelatex datetime2-serbian.dtx
-
-Move datetime2-serbian.pdf and README to
-TEXMF/doc/latex/datetime2-contrib/datetime2-serbian/
-
-This material is subject to the LaTeX Project Public License.
-See http://www.ctan.org/license/lppl1.3 for the details of that
-license.
-

Added: trunk/Master/texmf-dist/doc/latex/datetime2-serbian/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/datetime2-serbian/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/datetime2-serbian/README.md	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,96 @@
+Serbian Language Module for datetime2 CTAN Package
+==================================================
+
+**Current maintainer:** Andrej Radović
+
+**Authors:** Andrej Radović (r.andrej at gmail.com), Nicola L. C. Talbot 
+(inactive)
+
+**Licence:** LPPL
+
+**Required Packages:** `datetime2`, `tracklang`
+
+Styles
+------
+
+This module provides the following styles:
+
+### Latin:
+* serbian    - regionless style
+* sr-Latn    - Serbian, Serbia
+* sr-Latn-RS - Serbian, Serbia
+* sr-Latn-ME - Serbian, Montenegro
+* sr-Latn-BA - Serbian, Bosnia and Herzegovina
+
+### Cyrillic
+* serbianc   - regionless style
+* sr-Cyrl    - Serbian, Serbia
+* sr-Cyrl-RS - Serbian, Serbia
+* sr-Cyrl-ME - Serbian, Montenegro
+* sr-Cyrl-BA - Serbian, Bosnia and Herzegovina
+
+Notes:
+------
+
+The regional settings still don't work, but `serbian` and `serbianc` work just
+fine.
+The package is still in development.
+
+Example usage:
+--------------
+
+### Generic w/ `babel`
+    \documentclass{article}
+    \usepackage[serbian]{datetime2}
+    \begin{document}
+    \today
+    \end{document}
+
+### Generic w/ `babel`
+
+    \documentclass[serbian]{article}
+    \usepackage{babel}
+    \usepackage[useregional]{datetime2}
+    \begin{document}
+    \today
+    \end{document}
+
+### Generic w/ `polyglossia`
+
+    \documentclass{article}
+    \usepackage{polyglossia}
+    \setmainlanguage{serbian}
+    \usepackage[serbian]{datetime2}
+    \begin{document}
+    \today
+    \end{document}
+
+
+Installation
+------------
+
+Extract the language definition files first:
+
+Run LuaLaTeX over the file `datetime2-serbian.ins`:
+
+    lualatex datetime2-serbian.ins
+
+Move all `*.ldf` files to
+
+    TEXMF/tex/latex/datetime2-contrib/datetime2-serbian/
+
+ Then, you can compile the documentation yourself by executing
+
+    lualatex datetime2-serbian.dtx
+    makeindex -s ginddt2s.ist datetime2-serbian.idx
+    makeindex -s gglodt2s.ist -o datetime2-serbian.gls datetime2-serbian.glo
+    lualatex datetime2-serbian.dtx
+    lualatex datetime2-serbian.dtx
+
+or just use the precompiled documentation shipped with the source files.
+In both cases, copy the files `datetime2-serbian.pdf` and `README.md` to
+`TEXMF/doc/latex/datetime2-contrib/datetime2-serbian/`.
+
+This material is subject to the LaTeX Project Public License.
+See http://www.ctan.org/license/lppl1.3 for the details of that
+license.


Property changes on: trunk/Master/texmf-dist/doc/latex/datetime2-serbian/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/datetime2-serbian/datetime2-serbian.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.dtx	2019-11-08 21:40:13 UTC (rev 52694)
+++ trunk/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.dtx	2019-11-08 21:40:42 UTC (rev 52695)
@@ -20,39 +20,129 @@
 % \iffalse
 % Doc-Source file to use with LaTeX2e
 % Copyright (C) 2019 Nicola Talbot, all rights reserved.
-% (New maintainer add relevant lines here.)
+% Copyright (C) 2019 Andrej Radović, all rights reserved.
 % \fi
 % \iffalse
 %<*driver>
-\documentclass{ltxdoc}
+\documentclass[11pt]{ltxdoc}
 
+
 \usepackage{alltt}
+\usepackage{hologo}
 \usepackage{graphicx}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
 \usepackage{fontspec}
+\usepackage{multicol}
+\usepackage[dvipsnames]{xcolor}
+\usepackage[english]{babel}
 \usepackage[colorlinks,
-            bookmarks,
-            hyperindex=false,
-            pdfauthor={Nicola L.C. Talbot},
-            pdftitle={datetime2.sty Serbian Module}]{hyperref}
+%draft, % hyperref's draft mode - disable all hypertext
+% TOC settings
+%
+bookmarks,
+linktocpage=true, % make page number, not text, be link on TOC
+%
+% link colors and other settings
+pageanchor=true,%    give every page an anchor in its top left corner
+%    necessary for many other options
+plainpages=false,%    don't force Arabic anchor naming
+breaklinks=true,%    allow breaking links over lines
+colorlinks=true,%    enable link coloring
+urlcolor=Maroon,%     url colors
+linkcolor=MidnightBlue,%    color for normal, internal links
+citecolor=PineGreen,%    bibliographical citation color
+%frenchlinks=true %  use small caps instead of color for links
+%pdfborder={1 0 0},% the color of boxes around links if colorlinks is
+% not used
+%
+% PDF settings
+%
+unicode=true, % set PDF metadata to be unicode
+pdfpagemode=UseNone, % don't open either bookmark or thumbnail sidebar
+% alternately, UseOutlines shows bookmark sidebar
+pdfstartview=FitV, % scale the PDF to fit the height on first open
+bookmarksnumbered=true,% include section number in bookmarks
+bookmarksopen=true,% expand bookmark tree in PDF viewer to a level
+bookmarksopenlevel=1,% this is the level
+hypertexnames=true, % guessable link names
+pdfhighlight=/O,% links are outlined when selected, not /I for inverted
+%
+% PDF metadata
+%
+pdftitle={datetime2.sty Serbian Module}
+pdfauthor={Andrej Radović},
+pdfcreator={xdvipdfmx},%
+pdfproducer={lualatex},%
+hyperindex=false%
+]{hyperref}
+\usepackage{textcase}
 
-\setmainfont{Liberation Serif}
-\setmonofont{Liberation Mono}
-\newfontfamily\cyrillicfont{Liberation Serif}
+\usepackage{enumitem}
+\newlist{optdescription}{description}{1}
+\setlist[optdescription]{%
+    align=right,
+    labelindent=!,
+    leftmargin=0pt,
+    font=\small\normalfont\ttfamily}
 
-\CheckSum{615}
+\usepackage{acronym}
+\renewcommand{\acsfont}[1]{{\scshape{#1}}}
+\renewcommand*{\aclabelfont}[1]{{\acsfont{#1}}}
 
+
+%%\CheckSum{692}
+
 \renewcommand*{\usage}[1]{\hyperpage{#1}}
 \renewcommand*{\main}[1]{\hyperpage{#1}}
 \IndexPrologue{\section*{\indexname}\markboth{\indexname}{\indexname}}
 \setcounter{IndexColumns}{2}
+\setcounter{GlossaryColumns}{2}
+\setlength{\columnsep}{2em}
+\let\GlossaryParms\IndexParms%
+\newcommand*{\indexitemst}[1]{{\bfseries\sffamily\normalsize{#1}}}
 
-\newcommand*{\sty}[1]{\textsf{#1}}
+\newcommand*{\sty}[1]{{\textsf{#1}}}
 \newcommand*{\opt}[1]{\texttt{#1}\index{#1=\texttt{#1}|main}}
+\newcommand*{\subsubsectionopt}[1]{\subsubsection{#1}\index{#1=\texttt{#1}|main}}
+\newcommand*{\itemopt}[1]{\item[#1]\index{#1=\texttt{#1}|main}}
 
-\RecordChanges
-\PageIndex
-\CodelineNumbered
+\usepackage[final,tracking=true, protrusion=true, expansion=true]{microtype}
 
+\usepackage[drafting=false,
+tocaligned=false,
+dottedtoc=false,
+eulerchapternumbers=false,
+linedheaders=false,
+floatperchapter=false,
+eulermath=false,
+beramono=false,
+palatino=false,
+style=arsclassica,
+nochapters=true%
+]{classicthesis}
+
+\pagestyle{plain}
+\cfoot[\small\pagemark]{}% use a small centered page number in the footer
+\ofoot[]{}% clear the outer footer
+
+\usepackage[%showframe,
+top=3.25cm,bottom=3cm]{geometry}
+
+\defaultfontfeatures{Ligatures=TeX, Scale=MatchLowercase}
+\setmainfont{XCharter}[Numbers=OldStyle]
+\setmonofont{Inconsolata LGC}
+\setsansfont{Fira Sans Book}[%
+    Numbers=OldStyle,
+     ItalicFont     = {Fira Sans Book Italic},
+     BoldFont       = {Fira Sans SemiBold},
+     BoldItalicFont = {Fira Sans SemiBold Italic}]
+\newfontfamily\cyrillicfont{XCharter}
+
+\RecordChanges%
+\PageIndex%
+\CodelineNumbered%
+
 \begin{document}
 \DocInput{datetime2-serbian.dtx}
 \end{document}
@@ -61,408 +151,1372 @@
 %
 %\MakeShortVerb{"}
 %
-%\title{Serbian Module for datetime2 Package}
-%\author{Nicola L. C. Talbot (inactive)}
-%\date{2019-09-14 (v1.1)}
+%\changes{2.0}{2019-11-07}{%
+%   Restyled the documentation.
+%}
+%
+%
+%\title{{\rmfamily\normalfont\spacedallcaps{%
+%   Serbian Module for datetime\liningnums{2} Package}}\\%
+%   {\large\url{https://gitlab.com/andrejr/datetime2-serbian}}}
+%\author{%
+%  \spacedlowsmallcaps{Andrej Radović}\\
+%  \url{r.andrej at gmail.com}
+%  \and
+%  \spacedlowsmallcaps{Nicola L. C. Talbot} \\
+%  \spacedlowsmallcaps{(inactive)}
+%}
+%\date{{\sffamily\scshape 2019-11-07 (v2.0)}}
 %\maketitle
 %
-%This module is currently unmaintained and may be subject to change.
-%If you want to volunteer to take over maintenance, contact me at
-%\url{http://www.dickimaw-books.com/contact.html}
+% \renewcommand{\abstractname}{\normalfont\normalsize\spacedlowsmallcaps{Abstract}}
 %
+%
 %\begin{abstract}
+%\noindent
 %This is the Serbian language module for the \sty{datetime2}
 %package. If you want to use the settings in this module you must
 %install it in addition to installing \sty{datetime2}. If you use
 %\sty{babel} or \sty{polyglossia}, you will need this module to
 %prevent them from redefining \cs{today}. The \sty{datetime2}
-% \opt{useregional} setting must be set to "text" or "numeric"
-% for the language styles to be set.
-% Alternatively, you can set the style in the document using
-% \cs{DTMsetstyle}, but this may be changed by \cs{date}\meta{language}
-% depending on the value of the \opt{useregional} setting.
+% \opt{useregional} setting must be on (\texttt{text} or
+% \texttt{numeric}) for the language styles to be set.
+% Alternatively, you can set them in the document using
+% \cs{DTMsetstyle}, but without the \opt{useregional} setting on the
+% style will be changed by \cs{date}\meta{language}.
 %\end{abstract}
 %
-%I've copied the date style from \texttt{babel-serbian}'s \cs{today}.
+%\changes{2.0}{2019-11-07}{%
+%   Added a proper introduction.
+%}
 %
-%I don't know if these settings are correct as I can't speak Serbian.
-%In particular, I don't know if the "serbian" time style is
-%correct. Currently this just uses the "default" time style. Please
-%be aware that this may change. Whoever takes over maintanance
-%of this module may can change it as appropriate.
+% \noindent
+% As of version 2.0, there is support for both Ekavian and Ijekavian
+% pronunciation in both Latin and Cyrillic, regions (Serbia, Bosnia and
+% Herzegovina, Montenegro), numeric format variants (Roman month ordinals,
+% optional leading zeros).
+% The package provides two regionless styles, "serbian" (Latin) and "serbianc"
+% (Cyrillic), as well as regional styles (explained in \autoref{sub:regions}).
 %
-%The new maintainer should add the line:
+% Neither month nor day of week abbreviations are supported.
+% These aren't often used within dates in Serbian.
+%
+% Currently, there are problems invoking regional styles, but I'm working on
+% fixing those.
+% Regionless styles are fully functional and you may load them as "serbian" and
+% "serbianc".
+%
+% \bigskip
+%
+% {\itshape
+% \noindent
+% The package is generated from (Jinja2) templates by a Python script before
+% it's uploaded to CTAN, so don't try to send patches to files you find there.
+% All development is done on Gitlab
+% (\url{https://gitlab.com/andrejr/datetime2-serbian}).
+%
+% If you're developing other datetime2 localization modules (or
+% localization modules in general), the way the package is generated might be
+% of interest to you.
+% I actually tried writing the package by hand, but it was way too tedious.
+% Generating most of the package from templates seems like the best way to do
+% it.
+% Along the way, I also wrote a small utility for generating \acsu{ascii} --
+% \acsu{licr} strings from utf-8 strings, and it can be found here:
+% \url{https://gitlab.com/andrejr/utf8_to_licr}.
+% I might publish it to CTAN if there is interest.
+% }
+%
+% \tableofcontents
+%
+% \section{The Documentation}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added installation guide.
+%}
+%
+% \subsection{Installation}
+% Extract the language definition files first:
+% \begin{enumerate}
+%     \item
+%     Run \hologo{LuaLaTeX} over the file \texttt{datetime2-serbian.ins}: \\
+%     "lualatex datetime2-serbian.ins"
+%     %
+%     \item Move all \texttt{*.ldf} files to %
+%       \nolinkurl{TEXMF/tex/latex/datetime2-contrib/datetime2-serbian/}
+% \end{enumerate}
+% Then, you can compile the documentation yourself by executing
 %\begin{verbatim}
-% The Current Maintainer of this work is Name.
+%lualatex datetime2-serbian.dtx
+%makeindex -s ginddt2s.ist datetime2-serbian.idx
+%makeindex -s gglodt2s.ist -o datetime2-serbian.gls datetime2-serbian.glo
+%lualatex datetime2-serbian.dtx
+%lualatex datetime2-serbian.dtx
 %\end{verbatim}
-%to the preamble part in \texttt{datetime2-serbian.ins} where Name
-%is the name of the maintainer(s) and replace
-%the `inactive' status to `maintained'.
+% or just use the precompiled documentation shipped with the source files.
+% In both cases, copy the files \texttt{datetime2-serbian.pdf} and
+% \texttt{README.md} to
+% \nolinkurl{TEXMF/doc/latex/datetime2-contrib/datetime2-serbian/}.
 %
-%Currently there is only a regionless style.
 %
+% \subsection{Setting up \sty{datetime2} with a language module}
+%
+% \subsubsection{Loading a language module}
+% \emph{There are three different ways to load the required language module.
+% See the \sty{datetime2} documentation for further detail.}
+%
+% \medskip
+%
+% \paragraph{Variant 1:}
+% Request the desired language module explicitly by passing one of the
+% region options to the \sty{datetime2} package, such as "serbian", "serbianc",
+% "sr-Cyrl-ME", \ldots{} (the full list can be found in \autoref{sub:regions}).%
+%
+%\begin{verbatim}
+%\documentclass{article}
+%\usepackage[serbian]{datetime2}
+%\begin{document}
+%\today
+%\end{document}
+%\end{verbatim}
+%
+% \paragraph{Variant 2:}
+% Load \sty{babel} and pass the "serbian" or "serbianc" option to the
+% "\documentclass" command (or to \sty{babel} directly).
+% If you now pass the \opt{useregional} option to \sty{datetime2}, the language
+% module suitable to the one specified with \sty{babel} is loaded:
+%\begin{verbatim}
+%\documentclass[serbian]{article}
+%\usepackage{babel}
+%\usepackage[useregional]{datetime2}
+%\begin{document}
+%\today
+%\end{document}
+%\end{verbatim}
+%
+% \paragraph{Variant 3:}
+% When using \sty{polyglossia}, you should request the desired language module
+% by passing one of the previously mentioned options to the \sty{datetime2}
+% package:
+%\begin{verbatim}
+%\documentclass{article}
+%\usepackage{polyglossia}
+%\setmainlanguage{serbian}
+%\usepackage[serbian]{datetime2}
+%\begin{document}
+%\today
+%\end{document}
+%\end{verbatim}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added regions and documented their use.
+%}
+% \subsection{Regions and scripts}\label{sub:regions}
+%
+% Serbian language is a rare example of synchronic digraphia --- a situation
+% where all literate members of a society use two interchangeable writing
+% systems (Cyrillic and Latin).
+% This is true in all regions Serbian is spoken in (Serbia, Bosnia and
+% Herzegovina, Montenegro).
+% This is why every region has a Cyrillic and Latin variant, as well as the
+% regionless styles ("serbian" and "serbianc").
+%
+% The only other difference between the regions is the default value of
+% \hyperref[sub:pronu]{\opt{pronunciation}}, which is Ekavian by default for
+% "serbian", "serbianc", "sr-*-RS" and Ijekavian for the rest.
+%
+% The full list of regions (and regionless styles, on top) is as follows:
+%\begin{multicols}{2}
+%\begin{verbatim}
+%serbian
+%sr-Latn
+%sr-Latn-RS
+%sr-Latn-ME
+%sr-Latn-BA
+%serbianc
+%sr-Cyrl
+%sr-Cyrl-RS
+%sr-Cyrl-ME
+%sr-Cyrl-BA
+%\end{verbatim}
+%\end{multicols}
+%
+%
+% \subsection{Settings (Serbian-related)}
+%\changes{2.0}{2019-11-07}{%
+%   Added documentation for new settings.
+%}
+%
+% These settings can be changed using \sty{\\DTMlangsetup}.
+% Here's an example showing how to set both multiple--choice and boolean
+% settings.
+%\begin{verbatim}
+%    \DTMlangsetup[serbian]{pronunciation=ijekavian, monthi}
+%\end{verbatim}
+%
+%
+% \subsubsectionopt{pronunciation}\label{sub:pronu}
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+% May take values "ekavian" and "ijekavian", which denote the two most
+% frequently used pronunciations in Serbian language.
+% The only difference is in the way weekdays are written.
+%
+% The default value is Ekavian by default for "serbian", "serbianc", "sr-*-RS"
+% and Ijekavian for the rest of the regions.
+%
+% \smallskip
+% ponedeljak, 4. novembar 2019. \hfill \emph{Ekavian pronunciation} \\
+% ponedjeljak, 4. novembar 2019. \hfill \emph{Ijekavian pronunciation}
+%
+%
+% \subsubsectionopt{monthi}
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% This is a boolean key.
+% If "false" (the default), the months June and July are spelled as \emph{Jun}
+% and \emph{Jul}.
+% If "true", the months June and July are spelled as \emph{Juni} and
+% \emph{Juli}.
+%
+% \smallskip
+% 15. juni 1389. \hfill "monthi=true" \\
+% 15. jun 1389. \hfill "monthi=false"
+%
+% \subsubsectionopt{leadingzero}\label{sub:leadingzero}
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for toggling leading zeroes in day and month ordinals.
+%}
+% This is a boolean key.
+% If "false" (the default), there is no leading zero for hours, days or months.
+% If "true", there is.
+%
+% \smallskip
+% уторак, 2. 4. 2019. 8.03 CET \hfill "leadingzero=false" \\
+% уторак, 02. 04. 2019. 08.03 CET \hfill "leadingzero=true"
+%
+% \subsubsectionopt{monthord}
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% This key defines the way the month ordinal is written in Serbian "*-numeric"
+% formats.
+% It takes values "arabic" (the default), "roman" and "romanlsc".
+% The "arabic" setting results in an arabic numeral (subject to
+% \nameref{sub:leadingzero}) followed by a colon.
+% The "roman" setting results in an uppercase Roman numeral without a colon
+% suffix.
+% The "romansc" setting results in a lowercase small caps Roman numeral without
+% a colon suffix (this looks better than regular uppercase when usign old style
+% figures).
+%
+% \smallskip
+% уторак, 2. 4. 2019. 8.03 CET \hfill "monthord=arabic" \\
+% \liningnums{уторак, 2. IV 2019. 8.03 CET} \hfill "monthord=roman" with
+% "\liningnums" \\
+% \oldstylenums{уторак, 02. \textsc{iv} 2019. 08.03 CET} \hfill
+% "monthord=romanlsc" with "\oldstylenums"
+%
+% \subsection{Other features and settings}
+%
+% \subsubsection{Showing the weekday}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% All language modules shipped with \sty{datetime2-serbian} support showing the
+% weekday.
+% To enable this feature, pass the \opt{showdow} option to the \sty{datetime2}
+% package.
+%
+% \subsubsection{Generic customization of styles}
+% There are a number of settings provided that can be used in "\DTMlangsetup"
+% to modify the date-time style.
+% These should be present in all "datetime2-*" packages and are present in
+% all Serbian regionless and regional styles
+%
+% These are:
+% \begin{optdescription}
+%	\itemopt{dowdaysep}%
+%	The separator between the day of week name and the day of month number.
+%
+%	\itemopt{daymonthsep}%
+%	The separator between the day and the month name.
+%
+%	\itemopt{monthyearsep}%
+%	The separator between the month name and year.
+%
+%	\itemopt{datesep}%
+%	The separator between the date numbers in the numeric styles.
+%
+%	\itemopt{timesep}%
+%	The separator between hours, minutes and seconds.
+%
+%	\itemopt{datetimesep}%
+%	The separator between the date and time for the full date-time format.
+%
+%	\itemopt{timezonesep}%
+%	The separator between the time and zone for the full date-time format.
+%
+%	\itemopt{mapzone}%
+%	This is a boolean key. If true, the time zone mappings are applied.
+%
+%	\itemopt{showdayofmonth}%
+%	A boolean key that determines whether or not to show the day of the month.
+%
+%	\itemopt{showyear}%
+%	A boolean key that determines whether or not to show the year.
+%\end{optdescription}
+%
+% Although the keys listed here are \emph{defined} for all variant styles, it
+% depends on \sty{datetime2}'s setup and the requested styles whether they're
+% \emph{used}. \\
+% For more information about the "\DTMlangsetup" command see the documentation
+% of the main \sty{datetime2} package.
+%
+%
+% \subsection{License}
+% This material is subject to the \LaTeX\ Project Public License, Version 1.3c or later. \\
+% See the copyright headers of the single files for further details.
+%
 %\StopEventually{%
-%\clearpage
-%\phantomsection
-%\addcontentsline{toc}{section}{Change History}%
-%\PrintChanges
-%\addcontentsline{toc}{section}{\indexname}%
-%\PrintIndex}
+%  \clearpage
+%  \section*{Acronyms}
+%  \addcontentsline{toc}{section}{Acronyms}%
+%  \begin{acronym}[asciim]
+%    \acro{ascii}{American Standard Code for Information
+%    Interchange\acroextra{, legacy 7-bit text encoding used on American
+%    computers since the 1960s.
+%    It fails to encode non-English characters.
+%    The mainstream encoding used when \hologo{TeX} was concieved.
+%    }}
+%    \acro{utf-8}{Unicode Transformation Format -- 8-bit\acroextra{,
+%    modern variable width character encoding that's backward-compatible with
+%    \acs*{ascii} for all \acs*{ascii} characters, yet provides full coverage
+%    for almost every spoken language.}}
+%    \acro{licr}{\LaTeX{} Internal Character Representation\acroextra{, a set
+%    of macros that help define non-\acs*{ascii} characters for typesetting in
+%    \LaTeX{} even in engines that only support \acs*{ascii}.}}
+%  \end{acronym}
+%  \phantomsection
+%  \addcontentsline{toc}{section}{Change History}%
+%  \PrintChanges
+%  \addcontentsline{toc}{section}{\indexname}%
+%  \PrintIndex
+%}
+%
+%\newgeometry{left=5cm,right=2.75cm,top=3.25cm,bottom=3cm}
+%
 %\section{The Code}
+%
 %\iffalse
 %    \begin{macrocode}
-%<*datetime2-serbian-utf8.ldf>
+%<*datetime2-serbian-base.ldf>
 %    \end{macrocode}
 %\fi
-%\subsection{UTF-8}
-%This file contains the settings that use UTF-8 characters. This
-%file is loaded if XeLaTeX or LuaLaTeX are used. Please make sure
-%your text editor is set to UTF-8 if you want to view this code.
+%\subsection{Base package localization strings}
+%
+% This file contains the code common to all the Serbian regional
+% variations.
+%
+% The localization strings are later imported with the appropriate encoding.
+%
 %\changes{1.0}{2015-03-31}{Initial release}
-% Identify module
+%\changes{2.0}{2019-11-07}{%
+%   Separated the base package from the regionless style.
+%   The base package now only declares common localization strings and includes
+%   adequately encoded localization strings from their respective packages.
+%}
+%
 %    \begin{macrocode}
-\ProvidesDateTimeModule{serbian-utf8}[2019/09/14 v1.0]
+\ProvidesDateTimeModule{serbian-base}[2019/11/07 v2.0]
 %    \end{macrocode}
-%\begin{macro}{\DTMserbianordinal}
+%
+%
+%\begin{macro}{\DTMserbianordinalROMAN}
+% Uppercase Roman numerals.
 %    \begin{macrocode}
-\newcommand*{\DTMserbianordinal}[1]{%
-  \number#1.%
+\newcommand*{\DTMserbianordinalROMAN}[1]{%
+  \ifcase#1
+  \or%
+    I%
+  \or%
+    II%
+  \or%
+    III%
+  \or%
+    IV%
+  \or%
+    V%
+  \or%
+    VI%
+  \or%
+    VII%
+  \or%
+    VIII%
+  \or%
+    IX%
+  \or%
+    X%
+  \or%
+    XI%
+  \or%
+    XII%
+  \fi
 }
 %    \end{macrocode}
 %\end{macro}
 %
-%\begin{macro}{\DTMserbiancyrmonthname}
-% Serbian month names. (Cyrillic alphabet.)
+%
+%\begin{macro}{\DTMserbianordinalroman}
+% Lowercase Roman numerals.
 %    \begin{macrocode}
-\newcommand*{\DTMserbiancyrmonthname}[1]{%
+\newcommand*{\DTMserbianordinalroman}[1]{%
   \ifcase#1
-  \or
-  јануар%
-  \or
-  фебруар%
-  \or
-  март%
-  \or
-  април%
-  \or
-  мај%
-  \or
-  јун%
-  \or
-  јул%
-  \or
-  август%
-  \or
-  септембар%
-  \or
-  октобар%
-  \or
-  новембар%
-  \or
-  децембар%
+  \or%
+    i%
+  \or%
+    ii%
+  \or%
+    iii%
+  \or%
+    iv%
+  \or%
+    v%
+  \or%
+    vi%
+  \or%
+    vii%
+  \or%
+    viii%
+  \or%
+    ix%
+  \or%
+    x%
+  \or%
+    xi%
+  \or%
+    xii%
   \fi
 }
 %    \end{macrocode}
 %\end{macro}
 %
-%\begin{macro}{\DTMserbiancyrMonthname}
-% As above but capitalize.
+%
+% We will now include the appropriate localization data.
+%
+% Packages \sty{ifxetex} and \sty{ifluatex} provide a way to determine if the
+% currently used \LaTeX{} engine is \hologo{XeLaTeX} or \hologo{LuaLaTeX},
+% respectively.
 %    \begin{macrocode}
-\newcommand*{\DTMserbiancyrMonthname}[1]{%
+\RequirePackage{ifxetex,ifluatex}
+%    \end{macrocode}
+% Load \texttt{serbian-utf8} if either \hologo{XeLaTeX} or \hologo{LuaLaTeX}
+% are used, since these engines natively support utf-8.
+% Otherwise load \texttt{serbian-ascii}, which provides support for legacy
+% engines that only support \ac{licr}.
+%    \begin{macrocode}
+\ifxetex%
+  \RequireDateTimeModule{serbian-base-utf8}
+\else
+  \ifluatex%
+    \RequireDateTimeModule{serbian-base-utf8}
+  \else
+    \RequireDateTimeModule{serbian-base-ascii}
+  \fi
+\fi
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-serbian-base.ldf>
+%    \end{macrocode}
+%\fi
+%
+%
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-serbian-base-utf8.ldf>
+%    \end{macrocode}
+%\fi
+%\subsection{Base Serbian \acs{utf-8} localization strings}
+% This file contains the localization strings necessary for proper date
+% formatting in \acs{utf-8} format.
+% This file is loaded if \hologo{XeLaTeX} or \hologo{LuaLaTeX} are used.
+%
+%\changes{1.0}{2015-03-31}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings are now declared within the Python build script
+%   and both the \acs{utf-8} and \acs{licr} encoded strings are generated from
+%   said files on build, before uploading to CTAN.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{serbian-base-utf8}[2019/11/07 v2.0]
+%    \end{macrocode}
+%
+%\subsubsection{Latin month names}
+%
+%\begin{macro}{\DTMserbianlatnoimonthname}
+% Serbian month names, Latin alphabet, no \sty{i} suffix for June and July,
+% non-capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatnoimonthname}[1]{%
   \ifcase#1
-  \or
-  Јануар%
-  \or
-  Фебруар%
-  \or
-  Март%
-  \or
-  Април%
-  \or
-  Мај%
-  \or
-  Јун%
-  \or
-  Јул%
-  \or
-  Август%
-  \or
-  Септембар%
-  \or
-  Октобар%
-  \or
-  Новембар%
-  \or
-  Децембар%
+  \or%
+    januar%
+  \or%
+    februar%
+  \or%
+    mart%
+  \or%
+    april%
+  \or%
+    maj%
+  \or%
+    jun%
+  \or%
+    jul%
+  \or%
+    avgust%
+  \or%
+    septembar%
+  \or%
+    oktobar%
+  \or%
+    novembar%
+  \or%
+    decembar%
   \fi
 }
 %    \end{macrocode}
 %\end{macro}
 %
-%\begin{macro}{\DTMserbianlatinmonthname}
-% Serbian month names. (Latin alphabet.)
+%\begin{macro}{\DTMserbianlatnoiMonthname}
+% Serbian month names, Latin alphabet, no \sty{i} suffix for June and July,
+% capitalized.
 %    \begin{macrocode}
-\newcommand*{\DTMserbianlatinmonthname}[1]{%
+\newcommand*{\DTMserbianlatnoiMonthname}[1]{%
   \ifcase#1
-  \or
-  januar%
-  \or
-  februar%
-  \or
-  mart%
-  \or
-  april%
-  \or
-  maj%
-  \or
-  juni%
-  \or
-  juli%
-  \or
-  avgust%
-  \or
-  septembar%
-  \or
-  oktobar%
-  \or
-  novembar%
-  \or
-  decembar%
+  \or%
+    Januar%
+  \or%
+    Februar%
+  \or%
+    Mart%
+  \or%
+    April%
+  \or%
+    Maj%
+  \or%
+    Jun%
+  \or%
+    Jul%
+  \or%
+    Avgust%
+  \or%
+    Septembar%
+  \or%
+    Oktobar%
+  \or%
+    Novembar%
+  \or%
+    Decembar%
   \fi
 }
 %    \end{macrocode}
 %\end{macro}
 %
-%\begin{macro}{\DTMserbianlatinMonthname}
-% As above but capitalize.
+%\begin{macro}{\DTMserbianlatimonthname}
+% Serbian month names, Latin alphabet, \sty{i} suffix for June and July,
+% non-capitalized.
 %    \begin{macrocode}
-\newcommand*{\DTMserbianlatinMonthname}[1]{%
+\newcommand*{\DTMserbianlatimonthname}[1]{%
+  \ifnum#1=6%
+    juni%
+  \else\ifnum\#1=7%
+      juli%
+    \else
+      \DTMserbianlatnoimonthname%
+    \fi\fi
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianlatiMonthname}
+% Serbian month names, Latin alphabet, \sty{i} suffix for June and July,
+% capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatiMonthname}[1]{%
+  \ifnum#1=6%
+    Juni%
+  \else\ifnum\#1=7%
+  Juli%
+    \else
+      \DTMserbianlatnoimonthname%
+    \fi\fi
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\subsubsection{Latin days of week, Ekavian pronunciation}
+%
+%\begin{macro}{\DTMserbianlatekweekdayname}
+% Serbian weekday names, Latin alphabet, Ekavian pronunciation,
+% non-capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatekweekdayname}[1]{%
   \ifcase#1
-  \or
-  Januar%
-  \or
-  Februar%
-  \or
-  Mart%
-  \or
-  April%
-  \or
-  Maj%
-  \or
-  Juni%
-  \or
-  Juli%
-  \or
-  Avgust%
-  \or
-  Septembar%
-  \or
-  Oktobar%
-  \or
-  Novembar%
-  \or
-  Decembar%
+    ponedeljak%
+  \or%
+    utorak%
+  \or%
+    sreda%
+  \or%
+    četvrtak%
+  \or%
+    petak%
+  \or%
+    subota%
+  \or%
+    nedelja%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianlatekWeekdayname}
+% Serbian weekday names, Latin alphabet, Ekavian pronunciation, capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatekWeekdayname}[1]{%
+  \ifcase#1
+    Ponedeljak%
+  \or%
+    Utorak%
+  \or%
+    Sreda%
+  \or%
+    Četvrtak%
+  \or%
+    Petak%
+  \or%
+    Subota%
+  \or%
+    Nedelja%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\subsubsection{Latin days of week, Ijekavian pronunciation}
+%
+%
+%\begin{macro}{\DTMserbianlatijweekdayname}
+% Serbian weekday names, Latin alphabet, Ijekavian pronunciation,
+% non-capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatijweekdayname}[1]{%
+  \ifcase#1
+    ponedjeljak%
+  \or%
+    utorak%
+  \or%
+    srijeda%
+  \or%
+    četvrtak%
+  \or%
+    petak%
+  \or%
+    subota%
+  \or%
+    nedjelja%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianlatijWeekdayname}
+% Serbian weekday names, Latin alphabet, Ijekavian pronunciation,
+% capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatijWeekdayname}[1]{%
+  \ifcase#1
+    Ponedjeljak%
+  \or%
+    Utorak%
+  \or%
+    Srijeda%
+  \or%
+    Četvrtak%
+  \or%
+    Petak%
+  \or%
+    Subota%
+  \or%
+    Nedjelja%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\subsubsection{Cyrillic month names}
+%
+%\begin{macro}{\DTMserbiancyrnoimonthname}
+% Serbian month names, Cyrillic alphabet, no \sty{i} suffix for June and July,
+% non-capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrnoimonthname}[1]{%
+  \ifcase#1
+  \or%
+    јануар%
+  \or%
+    фебруар%
+  \or%
+    март%
+  \or%
+    април%
+  \or%
+    мај%
+  \or%
+    јун%
+  \or%
+    јул%
+  \or%
+    август%
+  \or%
+    септембар%
+  \or%
+    октобар%
+  \or%
+    новембар%
+  \or%
+    децембар%
   \fi
 }
 %    \end{macrocode}
 %\end{macro}
 %
-%If abbreviated dates are supported, short month names should be
-%likewise provided.
+%\begin{macro}{\DTMserbiancyrnoiMonthname}
+% Serbian month names, Cyrillic alphabet, no \sty{i} suffix for June and July,
+% capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrnoiMonthname}[1]{%
+  \ifcase#1
+  \or%
+    Јануар%
+  \or%
+    Фебруар%
+  \or%
+    Март%
+  \or%
+    Април%
+  \or%
+    Мај%
+  \or%
+    Јун%
+  \or%
+    Јул%
+  \or%
+    Август%
+  \or%
+    Септембар%
+  \or%
+    Октобар%
+  \or%
+    Новембар%
+  \or%
+    Децембар%
+  \fi
+}
+%    \end{macrocode}
+%\end{macro}
 %
+%\begin{macro}{\DTMserbiancyrimonthname}
+% Serbian month names, Cyrillic alphabet, \sty{i} suffix for June and July,
+% non-capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrimonthname}[1]{%
+  \ifnum#1=6%
+    јуни%
+  \else\ifnum\#1=7%
+      јули%
+    \else
+      \DTMserbiancyrnoimonthname%
+    \fi\fi
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancyriMonthname}
+% Serbian month names, Cyrillic alphabet, \sty{i} suffix for June and July,
+% capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyriMonthname}[1]{%
+  \ifnum#1=6%
+    Јуни%
+  \else\ifnum\#1=7%
+  Јули%
+    \else
+      \DTMserbiancyrnoimonthname%
+    \fi\fi
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\subsubsection{Cyrillic days of week, Ekavian pronunciation}
+%
+%\begin{macro}{\DTMserbiancyrekweekdayname}
+% Serbian weekday names, Cyrillic alphabet, Ekavian pronunciation,
+% non-capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrekweekdayname}[1]{%
+  \ifcase#1
+    понедељак%
+  \or%
+    уторак%
+  \or%
+    среда%
+  \or%
+    четвртак%
+  \or%
+    петак%
+  \or%
+    субота%
+  \or%
+    недеља%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancyrekWeekdayname}
+% Serbian weekday names, Cyrillic alphabet, Ekavian pronunciation, capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrekWeekdayname}[1]{%
+  \ifcase#1
+    Понедељак%
+  \or%
+    Уторак%
+  \or%
+    Среда%
+  \or%
+    Четвртак%
+  \or%
+    Петак%
+  \or%
+    Субота%
+  \or%
+    Недеља%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\subsubsection{Cyrillic days of week, Ijekavian pronunciation}
+%
+%
+%\begin{macro}{\DTMserbiancyrijweekdayname}
+% Serbian weekday names, Cyrillic alphabet, Ijekavian pronunciation,
+% non-capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrijweekdayname}[1]{%
+  \ifcase#1
+    понедјељак%
+  \or%
+    уторак%
+  \or%
+    сриједа%
+  \or%
+    четвртак%
+  \or%
+    петак%
+  \or%
+    субота%
+  \or%
+    недјеља%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancyrijWeekdayname}
+% Serbian weekday names, Cyrillic alphabet, Ijekavian pronunciation,
+% capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrijWeekdayname}[1]{%
+  \ifcase#1
+    Понедјељак%
+  \or%
+    Уторак%
+  \or%
+    Сриједа%
+  \or%
+    Четвртак%
+  \or%
+    Петак%
+  \or%
+    Субота%
+  \or%
+    Недјеља%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%
 %\iffalse
 %    \begin{macrocode}
-%</datetime2-serbian-utf8.ldf>
+%</datetime2-serbian-base-utf8.ldf>
 %    \end{macrocode}
 %\fi
+%
 %\iffalse
 %    \begin{macrocode}
-%<*datetime2-serbian-ascii.ldf>
+%<*datetime2-serbian-base-ascii.ldf>
 %    \end{macrocode}
 %\fi
-%\subsection{ASCII}
-%This file contains the settings that use \LaTeX\ commands for
-%non-ASCII characters. This should be input if neither XeLaTeX nor
-%LuaLaTeX are used. Even if the user has loaded \sty{inputenc} with
-%"utf8", this file should still be used not the
-%\texttt{datetime2-serbian-utf8.ldf} file as the non-ASCII
-%characters are made active in that situation and would need
-%protecting against expansion.
+%\subsection{Base Serbian \acs{ascii} --- \acs{licr} localization strings}
+% This file contains the localization strings necessary for proper date
+% formatting in \ac{licr} format, which is \acs{ascii}-compatible.
+% It provides support for legacy \LaTeX{} engines that only support this kind
+% of format and encoding.
+%
+% This part of the file is generated from the \acs{utf-8} version with the
+% help of a tool I wrote, since writing pure \ac{licr} by hand would be
+% quite insane.
+%
 %\changes{1.0}{2015-03-31}{Initial release}
-% Identify module
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings are now declared within the Python build script
+%   and both the \acs{utf-8} and \acs{licr} encoded strings are generated from
+%   said files on build, before uploading to CTAN.
+%}
+%
 %    \begin{macrocode}
-\ProvidesDateTimeModule{serbian-ascii}[2019/09/14 v1.0]
+\ProvidesDateTimeModule{serbian-base-ascii}[2019/11/07 v2.0]
 %    \end{macrocode}
 %
-%If abbreviated dates are supported, short month names should be
-%likewise provided.
-%\begin{macro}{\DTMserbianordinal}
+%%\subsubsection{Latin month names}
+%
+%\begin{macro}{\DTMserbianlatnoimonthname}
+% Serbian month names, Latin alphabet, no \sty{i} suffix for June and July,
+% non-capitalized.
 %    \begin{macrocode}
-\newcommand*{\DTMserbianordinal}[1]{%
-  \number#1.%
+\newcommand*{\DTMserbianlatnoimonthname}[1]{%
+  \ifcase#1
+  \or%
+    januar%
+  \or%
+    februar%
+  \or%
+    mart%
+  \or%
+    april%
+  \or%
+    maj%
+  \or%
+    jun%
+  \or%
+    jul%
+  \or%
+    avgust%
+  \or%
+    septembar%
+  \or%
+    oktobar%
+  \or%
+    novembar%
+  \or%
+    decembar%
+  \fi
 }
 %    \end{macrocode}
 %\end{macro}
 %
-%\begin{macro}{\DTMserbiancyrmonthname}
-% Serbian month names. (Cyrillic alphabet.) I'm not sure if these
-% are correct.
+%\begin{macro}{\DTMserbianlatnoiMonthname}
+% Serbian month names, Latin alphabet, no \sty{i} suffix for June and July,
+% capitalized.
 %    \begin{macrocode}
-\newcommand*{\DTMserbiancyrmonthname}[1]{%
+\newcommand*{\DTMserbianlatnoiMonthname}[1]{%
   \ifcase#1
-  \or
-   \protect\cyrje\protect\cyra\protect\cyrn\protect\cyru\protect\cyra
-     \protect\cyrr
-  \or
-   \protect\cyrf\protect\cyrie\protect\cyrb\protect\cyrr\protect\cyru
-     \protect\cyrr
-  \or
-   \protect\cyrm\protect\cyra\protect\cyrr\protect\cyrt
-  \or
-   \protect\cyra\protect\cyrp\protect\cyrr\protect\cyri\protect\cyrl
-  \or
-   \protect\cyrm\protect\cyra\protect\cyrje
-  \or
-   \protect\cyrje\protect\cyru\protect\cyrn
-  \or
-   \protect\cyrje\protect\cyru\protect\cyrl
-  \or
-   \protect\cyra\protect\cyrv\protect\cyrg\protect\cyru\protect\cyrs
-     \protect\cyrt
-  \or
-   \protect\cyrs\protect\cyre\protect\cyrp\protect\cyrt\protect\cyre
-     \protect\cyrm\protect\cyrb\protect\cyra\protect\cyrr
-  \or
-   \protect\cyro\protect\cyrk\protect\cyrt\protect\cyro\protect\cyrb
-     \protect\cyra\protect\cyrr
-  \or
-   \protect\cyrn\protect\cyro\protect\cyrv\protect\cyre\protect\cyrm
-     \protect\cyrb\protect\cyra\protect\cyrr
-  \or
-   \protect\cyrd\protect\cyre\protect\cyrc\protect\cyre\protect\cyrm
-    \protect\cyrb\protect\cyra\protect\cyrr
+  \or%
+    Januar%
+  \or%
+    Februar%
+  \or%
+    Mart%
+  \or%
+    April%
+  \or%
+    Maj%
+  \or%
+    Jun%
+  \or%
+    Jul%
+  \or%
+    Avgust%
+  \or%
+    Septembar%
+  \or%
+    Oktobar%
+  \or%
+    Novembar%
+  \or%
+    Decembar%
   \fi
 }
 %    \end{macrocode}
 %\end{macro}
 %
-%\begin{macro}{\DTMserbiancyrMonthname}
-% As above but capitalize.
+%\begin{macro}{\DTMserbianlatimonthname}
+% Serbian month names, Latin alphabet, \sty{i} suffix for June and July,
+% non-capitalized.
 %    \begin{macrocode}
-\newcommand*{\DTMserbiancyrMonthname}[1]{%
+\newcommand*{\DTMserbianlatimonthname}[1]{%
+  \ifnum#1=6%
+    juni%
+  \else\ifnum\#1=7%
+      juli%
+    \else
+      \DTMserbianlatnoimonthname%
+    \fi\fi
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianlatiMonthname}
+% Serbian month names, Latin alphabet, \sty{i} suffix for June and July,
+% capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatiMonthname}[1]{%
+  \ifnum#1=6%
+    Juni%
+  \else\ifnum\#1=7%
+  Juli%
+    \else
+      \DTMserbianlatnoimonthname%
+    \fi\fi
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\subsubsection{Latin days of week, Ekavian pronunciation}
+%
+%\begin{macro}{\DTMserbianlatekweekdayname}
+% Serbian weekday names, Latin alphabet, Ekavian pronunciation,
+% non-capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatekweekdayname}[1]{%
   \ifcase#1
-  \or
-   \protect\CYRJE\protect\cyra\protect\cyrn\protect\cyru\protect\cyra
-     \protect\cyrr
-  \or
-   \protect\CYRF\protect\cyrie\protect\cyrb\protect\cyrr\protect\cyru
-     \protect\cyrr
-  \or
-   \protect\CYRM\protect\cyra\protect\cyrr\protect\cyrt
-  \or
-   \protect\CYRA\protect\cyrp\protect\cyrr\protect\cyri\protect\cyrl
-  \or
-   \protect\CYRM\protect\cyra\protect\cyrje
-  \or
-   \protect\CYRJE\protect\cyru\protect\cyrn
-  \or
-   \protect\CYRJE\protect\cyru\protect\cyrl
-  \or
-   \protect\CYRA\protect\cyrv\protect\cyrg\protect\cyru\protect\cyrs
-     \protect\cyrt
-  \or
-   \protect\CYRS\protect\cyre\protect\cyrp\protect\cyrt\protect\cyre
-     \protect\cyrm\protect\cyrb\protect\cyra\protect\cyrr
-  \or
-   \protect\CYRO\protect\cyrk\protect\cyrt\protect\cyro\protect\cyrb
-     \protect\cyra\protect\cyrr
-  \or
-   \protect\CYRN\protect\cyro\protect\cyrv\protect\cyre\protect\cyrm
-     \protect\cyrb\protect\cyra\protect\cyrr
-  \or
-   \protect\CYRD\protect\cyre\protect\cyrc\protect\cyre\protect\cyrm
-    \protect\cyrb\protect\cyra\protect\cyrr
-  \fi
+    ponedeljak%
+  \or%
+    utorak%
+  \or%
+    sreda%
+  \or%
+    \v cetvrtak%
+  \or%
+    petak%
+  \or%
+    subota%
+  \or%
+    nedelja%
+  \fi%
 }
 %    \end{macrocode}
 %\end{macro}
 %
-%\begin{macro}{\DTMserbianlatinmonthname}
-% Serbian month names. (Latin alphabet.)
+%\begin{macro}{\DTMserbianlatekWeekdayname}
+% Serbian weekday names, Latin alphabet, Ekavian pronunciation, capitalized
 %    \begin{macrocode}
-\newcommand*{\DTMserbianlatinmonthname}[1]{%
+\newcommand*{\DTMserbianlatekWeekdayname}[1]{%
   \ifcase#1
-  \or
-  januar%
-  \or
-  februar%
-  \or
-  mart%
-  \or
-  april%
-  \or
-  maj%
-  \or
-  juni%
-  \or
-  juli%
-  \or
-  avgust%
-  \or
-  septembar%
-  \or
-  oktobar%
-  \or
-  novembar%
-  \or
-  decembar%
+    Ponedeljak%
+  \or%
+    Utorak%
+  \or%
+    Sreda%
+  \or%
+    \v Cetvrtak%
+  \or%
+    Petak%
+  \or%
+    Subota%
+  \or%
+    Nedelja%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\subsubsection{Latin days of week, Ijekavian pronunciation}
+%
+%
+%\begin{macro}{\DTMserbianlatijweekdayname}
+% Serbian weekday names, Latin alphabet, Ijekavian pronunciation,
+% non-capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatijweekdayname}[1]{%
+  \ifcase#1
+    ponedjeljak%
+  \or%
+    utorak%
+  \or%
+    srijeda%
+  \or%
+    \v cetvrtak%
+  \or%
+    petak%
+  \or%
+    subota%
+  \or%
+    nedjelja%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianlatijWeekdayname}
+% Serbian weekday names, Latin alphabet, Ijekavian pronunciation,
+% capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbianlatijWeekdayname}[1]{%
+  \ifcase#1
+    Ponedjeljak%
+  \or%
+    Utorak%
+  \or%
+    Srijeda%
+  \or%
+    \v Cetvrtak%
+  \or%
+    Petak%
+  \or%
+    Subota%
+  \or%
+    Nedjelja%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\subsubsection{Cyrillic month names}
+%
+%\begin{macro}{\DTMserbiancyrnoimonthname}
+% Serbian month names, Cyrillic alphabet, no \sty{i} suffix for June and July,
+% non-capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrnoimonthname}[1]{%
+  \ifcase#1
+  \or%
+    \cyrje\cyra\cyrn\cyru\cyra\cyrr%
+  \or%
+    \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr%
+  \or%
+    \cyrm\cyra\cyrr\cyrt%
+  \or%
+    \cyra\cyrp\cyrr\cyri\cyrl%
+  \or%
+    \cyrm\cyra\cyrje%
+  \or%
+    \cyrje\cyru\cyrn%
+  \or%
+    \cyrje\cyru\cyrl%
+  \or%
+    \cyra\cyrv\cyrg\cyru\cyrs\cyrt%
+  \or%
+    \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyra\cyrr%
+  \or%
+    \cyro\cyrk\cyrt\cyro\cyrb\cyra\cyrr%
+  \or%
+    \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyra\cyrr%
+  \or%
+    \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyra\cyrr%
   \fi
 }
 %    \end{macrocode}
 %\end{macro}
 %
-%\begin{macro}{\DTMserbianlatinMonthname}
-% As above but capitalize.
+%\begin{macro}{\DTMserbiancyrnoiMonthname}
+% Serbian month names, Cyrillic alphabet, no \sty{i} suffix for June and July,
+% capitalized.
 %    \begin{macrocode}
-\newcommand*{\DTMserbianlatinMonthname}[1]{%
+\newcommand*{\DTMserbiancyrnoiMonthname}[1]{%
   \ifcase#1
-  \or
-  Januar%
-  \or
-  Februar%
-  \or
-  Mart%
-  \or
-  April%
-  \or
-  Maj%
-  \or
-  Juni%
-  \or
-  Juli%
-  \or
-  Avgust%
-  \or
-  Septembar%
-  \or
-  Oktobar%
-  \or
-  Novembar%
-  \or
-  Decembar%
+  \or%
+    \CYRJE\cyra\cyrn\cyru\cyra\cyrr%
+  \or%
+    \CYRF\cyre\cyrb\cyrr\cyru\cyra\cyrr%
+  \or%
+    \CYRM\cyra\cyrr\cyrt%
+  \or%
+    \CYRA\cyrp\cyrr\cyri\cyrl%
+  \or%
+    \CYRM\cyra\cyrje%
+  \or%
+    \CYRJE\cyru\cyrn%
+  \or%
+    \CYRJE\cyru\cyrl%
+  \or%
+    \CYRA\cyrv\cyrg\cyru\cyrs\cyrt%
+  \or%
+    \CYRS\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyra\cyrr%
+  \or%
+    \CYRO\cyrk\cyrt\cyro\cyrb\cyra\cyrr%
+  \or%
+    \CYRN\cyro\cyrv\cyre\cyrm\cyrb\cyra\cyrr%
+  \or%
+    \CYRD\cyre\cyrc\cyre\cyrm\cyrb\cyra\cyrr%
   \fi
 }
 %    \end{macrocode}
 %\end{macro}
 %
+%\begin{macro}{\DTMserbiancyrimonthname}
+% Serbian month names, Cyrillic alphabet, \sty{i} suffix for June and July,
+% non-capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrimonthname}[1]{%
+  \ifnum#1=6%
+    \cyrje\cyru\cyrn\cyri%
+  \else\ifnum\#1=7%
+      \cyrje\cyru\cyrl\cyri%
+    \else
+      \DTMserbiancyrnoimonthname%
+    \fi\fi
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancyriMonthname}
+% Serbian month names, Cyrillic alphabet, \sty{i} suffix for June and July,
+% capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyriMonthname}[1]{%
+  \ifnum#1=6%
+    \CYRJE\cyru\cyrn\cyri%
+  \else\ifnum\#1=7%
+  \CYRJE\cyru\cyrl\cyri%
+    \else
+      \DTMserbiancyrnoimonthname%
+    \fi\fi
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\subsubsection{Cyrillic days of week, Ekavian pronunciation}
+%
+%\begin{macro}{\DTMserbiancyrekweekdayname}
+% Serbian weekday names, Cyrillic alphabet, Ekavian pronunciation,
+% non-capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrekweekdayname}[1]{%
+  \ifcase#1
+    \cyrp\cyro\cyrn\cyre\cyrd\cyre\cyrlje\cyra\cyrk%
+  \or%
+    \cyru\cyrt\cyro\cyrr\cyra\cyrk%
+  \or%
+    \cyrs\cyrr\cyre\cyrd\cyra%
+  \or%
+    \cyrch\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk%
+  \or%
+    \cyrp\cyre\cyrt\cyra\cyrk%
+  \or%
+    \cyrs\cyru\cyrb\cyro\cyrt\cyra%
+  \or%
+    \cyrn\cyre\cyrd\cyre\cyrlje\cyra%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancyrekWeekdayname}
+% Serbian weekday names, Cyrillic alphabet, Ekavian pronunciation, capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrekWeekdayname}[1]{%
+  \ifcase#1
+    \CYRP\cyro\cyrn\cyre\cyrd\cyre\cyrlje\cyra\cyrk%
+  \or%
+    \CYRU\cyrt\cyro\cyrr\cyra\cyrk%
+  \or%
+    \CYRS\cyrr\cyre\cyrd\cyra%
+  \or%
+    \CYRCH\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk%
+  \or%
+    \CYRP\cyre\cyrt\cyra\cyrk%
+  \or%
+    \CYRS\cyru\cyrb\cyro\cyrt\cyra%
+  \or%
+    \CYRN\cyre\cyrd\cyre\cyrlje\cyra%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\subsubsection{Cyrillic days of week, Ijekavian pronunciation}
+%
+%
+%\begin{macro}{\DTMserbiancyrijweekdayname}
+% Serbian weekday names, Cyrillic alphabet, Ijekavian pronunciation,
+% non-capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrijweekdayname}[1]{%
+  \ifcase#1
+    \cyrp\cyro\cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra\cyrk%
+  \or%
+    \cyru\cyrt\cyro\cyrr\cyra\cyrk%
+  \or%
+    \cyrs\cyrr\cyri\cyrje\cyre\cyrd\cyra%
+  \or%
+    \cyrch\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk%
+  \or%
+    \cyrp\cyre\cyrt\cyra\cyrk%
+  \or%
+    \cyrs\cyru\cyrb\cyro\cyrt\cyra%
+  \or%
+    \cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancyrijWeekdayname}
+% Serbian weekday names, Cyrillic alphabet, Ijekavian pronunciation,
+% capitalized
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancyrijWeekdayname}[1]{%
+  \ifcase#1
+    \CYRP\cyro\cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra\cyrk%
+  \or%
+    \CYRU\cyrt\cyro\cyrr\cyra\cyrk%
+  \or%
+    \CYRS\cyrr\cyri\cyrje\cyre\cyrd\cyra%
+  \or%
+    \CYRCH\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk%
+  \or%
+    \CYRP\cyre\cyrt\cyra\cyrk%
+  \or%
+    \CYRS\cyru\cyrb\cyro\cyrt\cyra%
+  \or%
+    \CYRN\cyre\cyrd\cyrje\cyre\cyrlje\cyra%
+  \fi%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%
 %\iffalse
 %    \begin{macrocode}
-%</datetime2-serbian-ascii.ldf>
+%</datetime2-serbian-base-ascii.ldf>
 %    \end{macrocode}
 %\fi
 %
-%\subsection{Main Serbian Module (\texttt{datetime2-serbian.ldf})}
-%\changes{1.0}{2015-03-31}{Initial release}
 %
 %\iffalse
 %    \begin{macrocode}
@@ -470,44 +1524,48 @@
 %    \end{macrocode}
 %\fi
 %
-% Identify Module
+%\subsection{Serbian \sty{serbian} Code
+%   (\texttt{datetime2-serbian.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
 %    \begin{macrocode}
-\ProvidesDateTimeModule{serbian}[2019/09/14 v1.0]
+\ProvidesDateTimeModule{serbian}[2019/11/07 v2.0]
 %    \end{macrocode}
-% Need to find out if XeTeX or LuaTeX are being used.
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
 %    \begin{macrocode}
-\RequirePackage{ifxetex,ifluatex}
+\RequireDateTimeModule{serbian-base}
 %    \end{macrocode}
-% XeTeX and LuaTeX natively support UTF-8, so load
-% \texttt{serbian-utf8} if either of those engines are used
-% otherwise load \texttt{serbian-ascii}.
+%
+%\subsubsection{Defining the \sty{serbian} style}
+%
+% Allow the user a way of configuring the "serbian" and
+% "serbian-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMserbiandowdaysep}
+% The separator between weekday and day.
 %    \begin{macrocode}
-\ifxetex
- \RequireDateTimeModule{serbian-utf8}
-\else
- \ifluatex
-   \RequireDateTimeModule{serbian-utf8}
- \else
-   \RequireDateTimeModule{serbian-ascii}
- \fi
-\fi
+\newcommand*{\DTMserbiandowdaysep}{,\space}
 %    \end{macrocode}
+%\end{macro}
 %
-% Define the \texttt{serbian} style.
-% The time style is the same as the "default" style
-% provided by \sty{datetime2}. This may need correcting. For
-% example, if a 12 hour style similar to the "englishampm" (from the
-% "english-base" module) is required. 
 %
-% Allow the user a way of configuring the "serbian" and
-% "serbian-numeric" styles. This doesn't use the package wide
-% separators such as
-% \cs{dtm at datetimesep} in case other date formats are also required.
 %\begin{macro}{\DTMserbiandaymonthsep}
 % The separator between the day and month for the text format.
 %    \begin{macrocode}
 \newcommand*{\DTMserbiandaymonthsep}{%
- \DTMtexorpdfstring{\protect~}{\space}%
+  \DTMtexorpdfstring{\protect~}{\space}%
 }
 %    \end{macrocode}
 %\end{macro}
@@ -520,8 +1578,8 @@
 %\end{macro}
 %
 %\begin{macro}{\DTMserbiandatetimesep}
-% The separator between the date and time blocks in the full format
-% (either text or numeric).
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
 %    \begin{macrocode}
 \newcommand*{\DTMserbiandatetimesep}{\space}
 %    \end{macrocode}
@@ -528,8 +1586,8 @@
 %\end{macro}
 %
 %\begin{macro}{\DTMserbiantimezonesep}
-% The separator between the time and zone blocks in the full format
-% (either text or numeric).
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
 %    \begin{macrocode}
 \newcommand*{\DTMserbiantimezonesep}{\space}
 %    \end{macrocode}
@@ -549,45 +1607,145 @@
 %    \end{macrocode}
 %\end{macro}
 %
-%Provide keys that can be used in \cs{DTMlangsetup} to set these
-%separators.
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
 %    \begin{macrocode}
-\DTMdefkey{serbian}{daymonthsep}{\renewcommand*{\DTMserbiandaymonthsep}{#1}}
-\DTMdefkey{serbian}{monthyearsep}{\renewcommand*{\DTMserbianmonthyearsep}{#1}}
-\DTMdefkey{serbian}{datetimesep}{\renewcommand*{\DTMserbiandatetimesep}{#1}}
-\DTMdefkey{serbian}{timezonesep}{\renewcommand*{\DTMserbiantimezonesep}{#1}}
-\DTMdefkey{serbian}{datesep}{\renewcommand*{\DTMserbiandatesep}{#1}}
-\DTMdefkey{serbian}{timesep}{\renewcommand*{\DTMserbiantimesep}{#1}}
+\DTMdefkey{serbian}{dowdaysep}%
+    {\renewcommand*{\DTMserbiandowdaysep}{#1}}
+\DTMdefkey{serbian}{daymonthsep}%
+    {\renewcommand*{\DTMserbiandaymonthsep}{#1}}
+\DTMdefkey{serbian}{monthyearsep}%
+    {\renewcommand*{\DTMserbianmonthyearsep}{#1}}
+\DTMdefkey{serbian}{datetimesep}%
+    {\renewcommand*{\DTMserbiandatetimesep}{#1}}
+\DTMdefkey{serbian}{timezonesep}%
+    {\renewcommand*{\DTMserbiantimezonesep}{#1}}
+\DTMdefkey{serbian}{datesep}%
+    {\renewcommand*{\DTMserbiandatesep}{#1}}
+\DTMdefkey{serbian}{timesep}%
+    {\renewcommand*{\DTMserbiantimesep}{#1}}
 %    \end{macrocode}
 %
-%\begin{macro}{\DTMserbianmonthname}
-% Provide a way to switch between Latin and Cyrillic month names.
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMserbianweekdayname}
+% Define the weekday name, lowercase.
 %    \begin{macrocode}
-\newcommand*{\DTMserbianmonthname}{\DTMserbiancyrmonthname}
+\newcommand*{\DTMserbianweekdayname}%
+{\DTMserbianlatekweekdayname}
 %    \end{macrocode}
 %\end{macro}
-%\begin{macro}{\DTMserbianMonthname}
+
+%\begin{macro}{\DTMserbianweekdayname}
+% Define the weekday name, capitalized.
 %    \begin{macrocode}
-\newcommand*{\DTMserbianMonthname}{\DTMserbiancyrMonthname}
+\newcommand*{\DTMserbianWeekdayname}%
+    {\DTMserbianlatekWeekdayname}
 %    \end{macrocode}
 %\end{macro}
 %
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
 %    \begin{macrocode}
-\DTMdefchoicekey{serbian}{alphabet}[\val\nr]{cyrillic,latin}{%
- \ifcase\nr\relax
-  \renewcommand*{\DTMserbianmonthname}{\DTMserbiancyrmonthname}%
-  \renewcommand*{\DTMserbianMonthname}{\DTMserbiancyrMonthname}%
- \or
-  \renewcommand*{\DTMserbianmonthname}{\DTMserbianlatinmonthname}%
-  \renewcommand*{\DTMserbianMonthname}{\DTMserbianlatinMonthname}%
- \fi
+\DTMdefchoicekey{serbian}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMserbianweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMserbianWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMserbianweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMserbianWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
 }
 %    \end{macrocode}
 %
-% TODO: provide a boolean key to switch between full and abbreviated
-% formats if appropriate. (I don't know how the date should be
-% abbreviated.)
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{serbian}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{serbian}{monthi}{false}
+%    \end{macrocode}
 %
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{serbian}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{serbian}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMserbiandayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMserbiandayordinal}[1]{%
+       \DTMifbool{serbian}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMserbiandatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMserbianyearordinal}[1]{%
+       \number#1\DTMserbiandatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMserbiannoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMserbiannoimonthname}{\DTMserbianlatnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiannoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMserbiannoiMonthname}{\DTMserbianlatnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMserbianimonthname}{\DTMserbianlatimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMserbianiMonthname}{\DTMserbianlatiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
 % Define a boolean key that determines if the time zone mappings
 % should be used.
 %    \begin{macrocode}
@@ -617,137 +1775,222 @@
 %    \begin{macrocode}
 \DTMsetbool{serbian}{showyear}{true}
 %    \end{macrocode}
-%
-% Define the "serbian" style. (TODO: implement day of week?)
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
 %    \begin{macrocode}
-\DTMnewstyle
- {serbian}% label
- {% date style
-   \renewcommand*\DTMdisplaydate[4]{%
-     \DTMifbool{serbian}{showdayofmonth}
-     {\DTMserbianordinal{##3}\DTMserbiandaymonthsep}%
-     {}%
-     \DTMserbianmonthname{##2}%
-     \DTMifbool{serbian}{showyear}%
-     {%
-       \DTMserbianmonthyearsep
-       \number##1
-     }%
-     {}%
-   }%
-   \renewcommand*\DTMDisplaydate[4]{%
-     \DTMifbool{serbian}{showdayofmonth}
-     {%
-       \DTMserbianordinal{##3}\DTMserbiandaymonthsep
-       \DTMserbianmonthname{##2}%
-     }%
-     {%
-       \DTMserbianMonthname{##2}%
-     }%
-     \DTMifbool{serbian}{showyear}%
-     {%
-       \DTMserbianmonthyearsep
-       \number##1
-     }%
-     {}%
-   }%
- }%
- {% time style (use default)
-   \DTMsettimestyle{default}%
- }%
- {% zone style
-   \DTMresetzones
-   \DTMserbianzonemaps
-   \renewcommand*{\DTMdisplayzone}[2]{%
-     \DTMifbool{serbian}{mapzone}%
-     {\DTMusezonemapordefault{##1}{##2}}%
-     {%
-       \ifnum##1<0 \else+\fi\DTMtwodigits{##1}%
-       \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi
-     }%
-   }%
- }%
- {% full style
-   \renewcommand*{\DTMdisplay}[9]{%
-    \ifDTMshowdate
-     \DTMdisplaydate{##1}{##2}{##3}{##4}%
-     \DTMserbiandatetimesep
+\DTMnewstyle%
+{serbian}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMserbianweekdayname{##4}%
+   	    \DTMserbiandowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{serbian}{showdayofmonth}
+      {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}%
+      {}%
+    \DTMifbool{serbian}{monthi}%
+      {\DTMserbianimonthname{##2}}%
+      {\DTMserbiannoimonthname{##2}}%
+    \DTMifbool{serbian}{showyear}%
+    {%
+      \DTMserbianmonthyearsep%
+      \DTMserbianyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMserbianWeekdayname{##4}%
+   	    \DTMserbiandowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{serbian}{showdayofmonth}
+    {%
+      \DTMserbiandayordinal{##3}\DTMserbiandaymonthsep%
+      \DTMifbool{serbian}{monthi}%
+        {\DTMserbianimonthname{##2}}%
+        {\DTMserbiannoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{serbian}{monthi}%
+        {\DTMserbianiMonthname{##2}}%
+        {\DTMserbiannoiMonthname{##2}}%
+    }%
+    \DTMifbool{serbian}{showyear}%
+    {%
+      \DTMserbianmonthyearsep%
+      \DTMserbianyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMserbiantimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMserbianzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{serbian}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiandatetimesep%
     \fi
     \DTMdisplaytime{##5}{##6}{##7}%
-    \ifDTMshowzone
-     \DTMserbiantimezonesep
-     \DTMdisplayzone{##8}{##9}%
+    \ifDTMshowzone%
+      \DTMserbiantimezonesep%
+      \DTMdisplayzone{##8}{##9}%
     \fi
-   }%
-   \renewcommand*{\DTMDisplay}[9]{%
-    \ifDTMshowdate
-     \DTMDisplaydate{##1}{##2}{##3}{##4}%
-     \DTMserbiandatetimesep
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiandatetimesep%
     \fi
     \DTMdisplaytime{##5}{##6}{##7}%
-    \ifDTMshowzone
-     \DTMserbiantimezonesep
-     \DTMdisplayzone{##8}{##9}%
+    \ifDTMshowzone%
+      \DTMserbiantimezonesep%
+      \DTMdisplayzone{##8}{##9}%
     \fi
-   }%
- }%
+  }%
+}%
 %    \end{macrocode}
 %
+%
+%\begin{macro}{\DTMserbianmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMserbianmonthordinal}[1]{%
+       \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "serbian-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{serbian}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMserbianmonthordinal}[1]{%
+       \DTMifbool{serbian}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMserbiandatesep}%
+ \or%
+   \renewcommand*{\DTMserbianmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMserbianmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
 % Define numeric style.
 %    \begin{macrocode}
-\DTMnewstyle
- {serbian-numeric}% label
- {% date style
-    \renewcommand*\DTMdisplaydate[4]{%
-      \DTMifbool{serbian}{showdayofmonth}%
-      {%
-        \number##3 % space intended
-        \DTMserbiandatesep
-      }%
-      {}%
-      \number##2 % space intended
-      \DTMifbool{serbian}{showyear}%
-      {%
-        \DTMserbiandatesep
-        \number##1 % space intended
-      }%
-      {}%
+\DTMnewstyle%
+{serbian-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMserbianweekdayname{##4}%
+   	    \DTMserbiandowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{serbian}{showdayofmonth}%
+    {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}%
+    {}%
+    \DTMserbianmonthordinal{##2}%
+    \DTMifbool{serbian}{showyear}%
+    {%
+      \DTMserbianmonthyearsep%
+      \DTMserbianyearordinal{##1}%
     }%
-    \renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}%
- }%
- {% time style
-    \renewcommand*\DTMdisplaytime[3]{%
-      \number##1
-      \DTMserbiantimesep\DTMtwodigits{##2}%
-      \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMserbianWeekdayname{##4}%
+   	    \DTMserbiandowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{serbian}{showdayofmonth}%
+    {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}%
+    {}%
+    \DTMserbianmonthordinal{##2}%
+    \DTMifbool{serbian}{showyear}%
+    {%
+      \DTMserbianmonthyearsep%
+      \DTMserbianyearordinal{##1}%
     }%
- }%
- {% zone style
-   \DTMresetzones
-   \DTMserbianzonemaps
-   \renewcommand*{\DTMdisplayzone}[2]{%
-     \DTMifbool{serbian}{mapzone}%
-     {\DTMusezonemapordefault{##1}{##2}}%
-     {%
-       \ifnum##1<0 \else+\fi\DTMtwodigits{##1}%
-       \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi
-     }%
-   }%
- }%
- {% full style
-   \renewcommand*{\DTMdisplay}[9]{%
-    \ifDTMshowdate
-     \DTMdisplaydate{##1}{##2}{##3}{##4}%
-     \DTMserbiandatetimesep
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMserbiantimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMserbianzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{serbian}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiandatetimesep%
     \fi
     \DTMdisplaytime{##5}{##6}{##7}%
-    \ifDTMshowzone
-     \DTMserbiantimezonesep
-     \DTMdisplayzone{##8}{##9}%
+    \ifDTMshowzone%
+      \DTMserbiantimezonesep%
+      \DTMdisplayzone{##8}{##9}%
     \fi
-   }%
-   \renewcommand*{\DTMDisplay}{\DTMdisplay}%
- }
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
 %    \end{macrocode}
 %
 %\begin{macro}{\DTMserbianzonemaps}
@@ -764,10 +2007,10 @@
 
 % Switch style according to the \opt{useregional} setting.
 %    \begin{macrocode}
-\DTMifcaseregional
+\DTMifcaseregional%
 {}% do nothing
-{\DTMsetstyle{serbian}}
-{\DTMsetstyle{serbian-numeric}}
+{\DTMsetstyle{serbian}}%
+{\DTMsetstyle{serbian-numeric}}%
 %    \end{macrocode}
 %
 % Redefine \cs{dateserbian} (or \cs{date}\meta{dialect}) to prevent
@@ -774,15 +2017,18 @@
 % \sty{babel} from resetting \cs{today}. (For this to work,
 % \sty{babel} must already have been loaded if it's required.)
 %\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
 %    \begin{macrocode}
 \ifcsundef{date\CurrentTrackedDialect}
 {%
-  \ifundef\dateserbian
+  \ifundef\dateserbian%
   {% do nothing
   }%
   {%
     \def\dateserbian{%
-      \DTMifcaseregional
+      \DTMifcaseregional%
       {}% do nothing
       {\DTMsetstyle{serbian}}%
       {\DTMsetstyle{serbian-numeric}}%
@@ -791,7 +2037,7 @@
 }%
 {%
   \csdef{date\CurrentTrackedDialect}{%
-    \DTMifcaseregional
+    \DTMifcaseregional%
     {}% do nothing
     {\DTMsetstyle{serbian}}%
     {\DTMsetstyle{serbian-numeric}}%
@@ -798,10 +2044,4812 @@
   }%
 }%
 %    \end{macrocode}
+%
 %\iffalse
 %    \begin{macrocode}
 %</datetime2-serbian.ldf>
 %    \end{macrocode}
 %\fi
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-sr-Latn.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\subsection{Serbian \sty{sr-Latn} Code
+%   (\texttt{datetime2-sr-Latn.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{sr-Latn}[2019/11/07 v2.0]
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
+%    \begin{macrocode}
+\RequireDateTimeModule{serbian-base}
+%    \end{macrocode}
+%
+%\subsubsection{Defining the \sty{sr-Latn} style}
+%
+% Allow the user a way of configuring the "srLatn" and
+% "srLatn-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMsrLatndowdaysep}
+% The separator between weekday and day.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatndowdaysep}{,\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\DTMsrLatndaymonthsep}
+% The separator between the day and month for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatndaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnmonthyearsep}
+% The separator between the month and year for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnmonthyearsep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatndatetimesep}
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatndatetimesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatntimezonesep}
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatntimezonesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatndatesep}
+% The separator for the numeric date format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatndatesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatntimesep}
+% The separator for the numeric time format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatntimesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
+%    \begin{macrocode}
+\DTMdefkey{sr-Latn}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Latndowdaysep}{#1}}
+\DTMdefkey{sr-Latn}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Latndaymonthsep}{#1}}
+\DTMdefkey{sr-Latn}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Latnmonthyearsep}{#1}}
+\DTMdefkey{sr-Latn}{datetimesep}%
+    {\renewcommand*{\DTMsr-Latndatetimesep}{#1}}
+\DTMdefkey{sr-Latn}{timezonesep}%
+    {\renewcommand*{\DTMsr-Latntimezonesep}{#1}}
+\DTMdefkey{sr-Latn}{datesep}%
+    {\renewcommand*{\DTMsr-Latndatesep}{#1}}
+\DTMdefkey{sr-Latn}{timesep}%
+    {\renewcommand*{\DTMsr-Latntimesep}{#1}}
+%    \end{macrocode}
+%
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMsrLatnweekdayname}
+% Define the weekday name, lowercase.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnweekdayname}%
+{\DTMserbianlatekweekdayname}
+%    \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\DTMsrLatnweekdayname}
+% Define the weekday name, capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnWeekdayname}%
+    {\DTMserbianlatekWeekdayname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Latn}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrLatnweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMsrLatnWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrLatnweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMsrLatnWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn}{monthi}{false}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMsrLatndayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatndayordinal}[1]{%
+       \DTMifbool{sr-Latn}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrLatndatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnyearordinal}[1]{%
+       \number#1\DTMsrLatndatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMsrLatnnoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnnoimonthname}{\DTMserbianlatnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnnoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnnoiMonthname}{\DTMserbianlatnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnimonthname}{\DTMserbianlatimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatniMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatniMonthname}{\DTMserbianlatiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Define a boolean key that determines if the time zone mappings
+% should be used.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn}{mapzone}[true]{}
+%    \end{macrocode}
+% The default is to use mappings.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn}{mapzone}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the day of month should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn}{showdayofmonth}[true]{}
+%    \end{macrocode}
+% The default is to show the day of month.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn}{showdayofmonth}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the year should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn}{showyear}[true]{}
+%    \end{macrocode}
+% The default is to show the year.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn}{showyear}{true}
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Latn}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnweekdayname{##4}%
+   	    \DTMsrLatndowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn}{showdayofmonth}
+      {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}%
+      {}%
+    \DTMifbool{sr-Latn}{monthi}%
+      {\DTMsrLatnimonthname{##2}}%
+      {\DTMsrLatnnoimonthname{##2}}%
+    \DTMifbool{sr-Latn}{showyear}%
+    {%
+      \DTMsrLatnmonthyearsep%
+      \DTMsrLatnyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnWeekdayname{##4}%
+   	    \DTMsrLatndowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn}{showdayofmonth}
+    {%
+      \DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep%
+      \DTMifbool{sr-Latn}{monthi}%
+        {\DTMsrLatnimonthname{##2}}%
+        {\DTMsrLatnnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Latn}{monthi}%
+        {\DTMsrLatniMonthname{##2}}%
+        {\DTMsrLatnnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Latn}{showyear}%
+    {%
+      \DTMsrLatnmonthyearsep%
+      \DTMsrLatnyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatntimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatntimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatntimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatndatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatntimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatndatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatntimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+%    \end{macrocode}
+%
+%
+%\begin{macro}{\DTMsrLatnmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnmonthordinal}[1]{%
+       \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "srLatn-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Latn}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrLatnmonthordinal}[1]{%
+       \DTMifbool{sr-Latn}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrLatndatesep}%
+ \or%
+   \renewcommand*{\DTMsrLatnmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrLatnmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% Define numeric style.
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Latn-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnweekdayname{##4}%
+   	    \DTMsrLatndowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn}{showdayofmonth}%
+    {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}%
+    {}%
+    \DTMsrLatnmonthordinal{##2}%
+    \DTMifbool{sr-Latn}{showyear}%
+    {%
+      \DTMsrLatnmonthyearsep%
+      \DTMsrLatnyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnWeekdayname{##4}%
+   	    \DTMsrLatndowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn}{showdayofmonth}%
+    {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}%
+    {}%
+    \DTMsrLatnmonthordinal{##2}%
+    \DTMifbool{sr-Latn}{showyear}%
+    {%
+      \DTMsrLatnmonthyearsep%
+      \DTMsrLatnyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatntimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatntimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatntimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatndatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatntimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+%    \end{macrocode}
+%
+%\begin{macro}{\DTMsr-Latnzonemaps}
+% The time zone mappings are set through this command, which can be
+% redefined if extra mappings are required or mappings need to be
+% removed.
+%    \begin{macrocode}
+\newcommand*{\DTMsr-Latnzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+%    \end{macrocode}
+%\end{macro}
+
+% Switch style according to the \opt{useregional} setting.
+%    \begin{macrocode}
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Latn}}%
+{\DTMsetstyle{sr-Latn-numeric}}%
+%    \end{macrocode}
+%
+% Redefine \cs{dateserbian} (or \cs{date}\meta{dialect}) to prevent
+% \sty{babel} from resetting \cs{today}. (For this to work,
+% \sty{babel} must already have been loaded if it's required.)
+%\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
+%    \begin{macrocode}
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbian%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbian{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Latn}}%
+      {\DTMsetstyle{sr-Latn-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Latn}}%
+    {\DTMsetstyle{sr-Latn-numeric}}%
+  }%
+}%
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-sr-Latn.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-sr-Latn-RS.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\subsection{Serbian \sty{sr-Latn-RS} Code
+%   (\texttt{datetime2-sr-Latn-RS.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{sr-Latn-RS}[2019/11/07 v2.0]
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
+%    \begin{macrocode}
+\RequireDateTimeModule{serbian-base}
+%    \end{macrocode}
+%
+%\subsubsection{Defining the \sty{sr-Latn-RS} style}
+%
+% Allow the user a way of configuring the "srLatnRS" and
+% "srLatnRS-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMsrLatnRSdowdaysep}
+% The separator between weekday and day.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSdowdaysep}{,\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\DTMsrLatnRSdaymonthsep}
+% The separator between the day and month for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnRSmonthyearsep}
+% The separator between the month and year for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSmonthyearsep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnRSdatetimesep}
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSdatetimesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnRStimezonesep}
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRStimezonesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnRSdatesep}
+% The separator for the numeric date format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSdatesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnRStimesep}
+% The separator for the numeric time format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRStimesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
+%    \begin{macrocode}
+\DTMdefkey{sr-Latn-RS}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Latn-RSdowdaysep}{#1}}
+\DTMdefkey{sr-Latn-RS}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Latn-RSdaymonthsep}{#1}}
+\DTMdefkey{sr-Latn-RS}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Latn-RSmonthyearsep}{#1}}
+\DTMdefkey{sr-Latn-RS}{datetimesep}%
+    {\renewcommand*{\DTMsr-Latn-RSdatetimesep}{#1}}
+\DTMdefkey{sr-Latn-RS}{timezonesep}%
+    {\renewcommand*{\DTMsr-Latn-RStimezonesep}{#1}}
+\DTMdefkey{sr-Latn-RS}{datesep}%
+    {\renewcommand*{\DTMsr-Latn-RSdatesep}{#1}}
+\DTMdefkey{sr-Latn-RS}{timesep}%
+    {\renewcommand*{\DTMsr-Latn-RStimesep}{#1}}
+%    \end{macrocode}
+%
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMsrLatnRSweekdayname}
+% Define the weekday name, lowercase.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSweekdayname}%
+{\DTMserbianlatekweekdayname}
+%    \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\DTMsrLatnRSweekdayname}
+% Define the weekday name, capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSWeekdayname}%
+    {\DTMserbianlatekWeekdayname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Latn-RS}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrLatnRSweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMsrLatnRSWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrLatnRSweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMsrLatnRSWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-RS}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-RS}{monthi}{false}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-RS}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-RS}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMsrLatnRSdayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnRSdayordinal}[1]{%
+       \DTMifbool{sr-Latn-RS}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrLatnRSdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnRSyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnRSyearordinal}[1]{%
+       \number#1\DTMsrLatnRSdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMsrLatnRSnoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSnoimonthname}{\DTMserbianlatnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnRSnoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSnoiMonthname}{\DTMserbianlatnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnRSimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSimonthname}{\DTMserbianlatimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnRSiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnRSiMonthname}{\DTMserbianlatiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Define a boolean key that determines if the time zone mappings
+% should be used.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-RS}{mapzone}[true]{}
+%    \end{macrocode}
+% The default is to use mappings.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-RS}{mapzone}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the day of month should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-RS}{showdayofmonth}[true]{}
+%    \end{macrocode}
+% The default is to show the day of month.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-RS}{showdayofmonth}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the year should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-RS}{showyear}[true]{}
+%    \end{macrocode}
+% The default is to show the year.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-RS}{showyear}{true}
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Latn-RS}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnRSweekdayname{##4}%
+   	    \DTMsrLatnRSdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-RS}{showdayofmonth}
+      {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Latn-RS}{monthi}%
+      {\DTMsrLatnRSimonthname{##2}}%
+      {\DTMsrLatnRSnoimonthname{##2}}%
+    \DTMifbool{sr-Latn-RS}{showyear}%
+    {%
+      \DTMsrLatnRSmonthyearsep%
+      \DTMsrLatnRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnRSWeekdayname{##4}%
+   	    \DTMsrLatnRSdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-RS}{showdayofmonth}
+    {%
+      \DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep%
+      \DTMifbool{sr-Latn-RS}{monthi}%
+        {\DTMsrLatnRSimonthname{##2}}%
+        {\DTMsrLatnRSnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Latn-RS}{monthi}%
+        {\DTMsrLatnRSiMonthname{##2}}%
+        {\DTMsrLatnRSnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Latn-RS}{showyear}%
+    {%
+      \DTMsrLatnRSmonthyearsep%
+      \DTMsrLatnRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnRStimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnRStimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnRSzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-RS}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnRStimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+%    \end{macrocode}
+%
+%
+%\begin{macro}{\DTMsrLatnRSmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnRSmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "srLatnRS-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Latn-RS}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-RS}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnRSdatesep}%
+ \or%
+   \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% Define numeric style.
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Latn-RS-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnRSweekdayname{##4}%
+   	    \DTMsrLatnRSdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-RS}{showdayofmonth}%
+    {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}%
+    {}%
+    \DTMsrLatnRSmonthordinal{##2}%
+    \DTMifbool{sr-Latn-RS}{showyear}%
+    {%
+      \DTMsrLatnRSmonthyearsep%
+      \DTMsrLatnRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnRSWeekdayname{##4}%
+   	    \DTMsrLatnRSdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-RS}{showdayofmonth}%
+    {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}%
+    {}%
+    \DTMsrLatnRSmonthordinal{##2}%
+    \DTMifbool{sr-Latn-RS}{showyear}%
+    {%
+      \DTMsrLatnRSmonthyearsep%
+      \DTMsrLatnRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnRStimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnRStimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnRSzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-RS}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnRStimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+%    \end{macrocode}
+%
+%\begin{macro}{\DTMsr-Latn-RSzonemaps}
+% The time zone mappings are set through this command, which can be
+% redefined if extra mappings are required or mappings need to be
+% removed.
+%    \begin{macrocode}
+\newcommand*{\DTMsr-Latn-RSzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+%    \end{macrocode}
+%\end{macro}
+
+% Switch style according to the \opt{useregional} setting.
+%    \begin{macrocode}
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Latn-RS}}%
+{\DTMsetstyle{sr-Latn-RS-numeric}}%
+%    \end{macrocode}
+%
+% Redefine \cs{dateserbian} (or \cs{date}\meta{dialect}) to prevent
+% \sty{babel} from resetting \cs{today}. (For this to work,
+% \sty{babel} must already have been loaded if it's required.)
+%\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
+%    \begin{macrocode}
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbian%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbian{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Latn-RS}}%
+      {\DTMsetstyle{sr-Latn-RS-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Latn-RS}}%
+    {\DTMsetstyle{sr-Latn-RS-numeric}}%
+  }%
+}%
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-sr-Latn-RS.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-sr-Latn-ME.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\subsection{Serbian \sty{sr-Latn-ME} Code
+%   (\texttt{datetime2-sr-Latn-ME.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{sr-Latn-ME}[2019/11/07 v2.0]
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
+%    \begin{macrocode}
+\RequireDateTimeModule{serbian-base}
+%    \end{macrocode}
+%
+%\subsubsection{Defining the \sty{sr-Latn-ME} style}
+%
+% Allow the user a way of configuring the "srLatnME" and
+% "srLatnME-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMsrLatnMEdowdaysep}
+% The separator between weekday and day.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEdowdaysep}{,\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\DTMsrLatnMEdaymonthsep}
+% The separator between the day and month for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnMEmonthyearsep}
+% The separator between the month and year for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEmonthyearsep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnMEdatetimesep}
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEdatetimesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnMEtimezonesep}
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEtimezonesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnMEdatesep}
+% The separator for the numeric date format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEdatesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnMEtimesep}
+% The separator for the numeric time format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEtimesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
+%    \begin{macrocode}
+\DTMdefkey{sr-Latn-ME}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Latn-MEdowdaysep}{#1}}
+\DTMdefkey{sr-Latn-ME}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Latn-MEdaymonthsep}{#1}}
+\DTMdefkey{sr-Latn-ME}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Latn-MEmonthyearsep}{#1}}
+\DTMdefkey{sr-Latn-ME}{datetimesep}%
+    {\renewcommand*{\DTMsr-Latn-MEdatetimesep}{#1}}
+\DTMdefkey{sr-Latn-ME}{timezonesep}%
+    {\renewcommand*{\DTMsr-Latn-MEtimezonesep}{#1}}
+\DTMdefkey{sr-Latn-ME}{datesep}%
+    {\renewcommand*{\DTMsr-Latn-MEdatesep}{#1}}
+\DTMdefkey{sr-Latn-ME}{timesep}%
+    {\renewcommand*{\DTMsr-Latn-MEtimesep}{#1}}
+%    \end{macrocode}
+%
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMsrLatnMEweekdayname}
+% Define the weekday name, lowercase.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEweekdayname}%
+{\DTMserbianlatijweekdayname}
+%    \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\DTMsrLatnMEweekdayname}
+% Define the weekday name, capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEWeekdayname}%
+    {\DTMserbianlatijWeekdayname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Latn-ME}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrLatnMEweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMsrLatnMEWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrLatnMEweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMsrLatnMEWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-ME}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-ME}{monthi}{false}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-ME}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-ME}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMsrLatnMEdayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnMEdayordinal}[1]{%
+       \DTMifbool{sr-Latn-ME}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrLatnMEdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnMEyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnMEyearordinal}[1]{%
+       \number#1\DTMsrLatnMEdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMsrLatnMEnoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEnoimonthname}{\DTMserbianlatnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnMEnoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEnoiMonthname}{\DTMserbianlatnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnMEimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEimonthname}{\DTMserbianlatimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnMEiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnMEiMonthname}{\DTMserbianlatiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Define a boolean key that determines if the time zone mappings
+% should be used.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-ME}{mapzone}[true]{}
+%    \end{macrocode}
+% The default is to use mappings.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-ME}{mapzone}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the day of month should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-ME}{showdayofmonth}[true]{}
+%    \end{macrocode}
+% The default is to show the day of month.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-ME}{showdayofmonth}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the year should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-ME}{showyear}[true]{}
+%    \end{macrocode}
+% The default is to show the year.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-ME}{showyear}{true}
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Latn-ME}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnMEweekdayname{##4}%
+   	    \DTMsrLatnMEdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-ME}{showdayofmonth}
+      {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Latn-ME}{monthi}%
+      {\DTMsrLatnMEimonthname{##2}}%
+      {\DTMsrLatnMEnoimonthname{##2}}%
+    \DTMifbool{sr-Latn-ME}{showyear}%
+    {%
+      \DTMsrLatnMEmonthyearsep%
+      \DTMsrLatnMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnMEWeekdayname{##4}%
+   	    \DTMsrLatnMEdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-ME}{showdayofmonth}
+    {%
+      \DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep%
+      \DTMifbool{sr-Latn-ME}{monthi}%
+        {\DTMsrLatnMEimonthname{##2}}%
+        {\DTMsrLatnMEnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Latn-ME}{monthi}%
+        {\DTMsrLatnMEiMonthname{##2}}%
+        {\DTMsrLatnMEnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Latn-ME}{showyear}%
+    {%
+      \DTMsrLatnMEmonthyearsep%
+      \DTMsrLatnMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnMEtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnMEtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnMEzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-ME}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnMEtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+%    \end{macrocode}
+%
+%
+%\begin{macro}{\DTMsrLatnMEmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnMEmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "srLatnME-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Latn-ME}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-ME}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnMEdatesep}%
+ \or%
+   \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% Define numeric style.
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Latn-ME-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnMEweekdayname{##4}%
+   	    \DTMsrLatnMEdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-ME}{showdayofmonth}%
+    {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}%
+    {}%
+    \DTMsrLatnMEmonthordinal{##2}%
+    \DTMifbool{sr-Latn-ME}{showyear}%
+    {%
+      \DTMsrLatnMEmonthyearsep%
+      \DTMsrLatnMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnMEWeekdayname{##4}%
+   	    \DTMsrLatnMEdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-ME}{showdayofmonth}%
+    {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}%
+    {}%
+    \DTMsrLatnMEmonthordinal{##2}%
+    \DTMifbool{sr-Latn-ME}{showyear}%
+    {%
+      \DTMsrLatnMEmonthyearsep%
+      \DTMsrLatnMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnMEtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnMEtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnMEzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-ME}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnMEtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+%    \end{macrocode}
+%
+%\begin{macro}{\DTMsr-Latn-MEzonemaps}
+% The time zone mappings are set through this command, which can be
+% redefined if extra mappings are required or mappings need to be
+% removed.
+%    \begin{macrocode}
+\newcommand*{\DTMsr-Latn-MEzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+%    \end{macrocode}
+%\end{macro}
+
+% Switch style according to the \opt{useregional} setting.
+%    \begin{macrocode}
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Latn-ME}}%
+{\DTMsetstyle{sr-Latn-ME-numeric}}%
+%    \end{macrocode}
+%
+% Redefine \cs{dateserbian} (or \cs{date}\meta{dialect}) to prevent
+% \sty{babel} from resetting \cs{today}. (For this to work,
+% \sty{babel} must already have been loaded if it's required.)
+%\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
+%    \begin{macrocode}
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbian%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbian{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Latn-ME}}%
+      {\DTMsetstyle{sr-Latn-ME-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Latn-ME}}%
+    {\DTMsetstyle{sr-Latn-ME-numeric}}%
+  }%
+}%
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-sr-Latn-ME.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-sr-Latn-BA.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\subsection{Serbian \sty{sr-Latn-BA} Code
+%   (\texttt{datetime2-sr-Latn-BA.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{sr-Latn-BA}[2019/11/07 v2.0]
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
+%    \begin{macrocode}
+\RequireDateTimeModule{serbian-base}
+%    \end{macrocode}
+%
+%\subsubsection{Defining the \sty{sr-Latn-BA} style}
+%
+% Allow the user a way of configuring the "srLatnBA" and
+% "srLatnBA-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMsrLatnBAdowdaysep}
+% The separator between weekday and day.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAdowdaysep}{,\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\DTMsrLatnBAdaymonthsep}
+% The separator between the day and month for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnBAmonthyearsep}
+% The separator between the month and year for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAmonthyearsep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnBAdatetimesep}
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAdatetimesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnBAtimezonesep}
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAtimezonesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnBAdatesep}
+% The separator for the numeric date format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAdatesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnBAtimesep}
+% The separator for the numeric time format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAtimesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
+%    \begin{macrocode}
+\DTMdefkey{sr-Latn-BA}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Latn-BAdowdaysep}{#1}}
+\DTMdefkey{sr-Latn-BA}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Latn-BAdaymonthsep}{#1}}
+\DTMdefkey{sr-Latn-BA}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Latn-BAmonthyearsep}{#1}}
+\DTMdefkey{sr-Latn-BA}{datetimesep}%
+    {\renewcommand*{\DTMsr-Latn-BAdatetimesep}{#1}}
+\DTMdefkey{sr-Latn-BA}{timezonesep}%
+    {\renewcommand*{\DTMsr-Latn-BAtimezonesep}{#1}}
+\DTMdefkey{sr-Latn-BA}{datesep}%
+    {\renewcommand*{\DTMsr-Latn-BAdatesep}{#1}}
+\DTMdefkey{sr-Latn-BA}{timesep}%
+    {\renewcommand*{\DTMsr-Latn-BAtimesep}{#1}}
+%    \end{macrocode}
+%
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMsrLatnBAweekdayname}
+% Define the weekday name, lowercase.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAweekdayname}%
+{\DTMserbianlatijweekdayname}
+%    \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\DTMsrLatnBAweekdayname}
+% Define the weekday name, capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAWeekdayname}%
+    {\DTMserbianlatijWeekdayname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Latn-BA}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrLatnBAweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMsrLatnBAWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrLatnBAweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMsrLatnBAWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-BA}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-BA}{monthi}{false}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-BA}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-BA}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMsrLatnBAdayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnBAdayordinal}[1]{%
+       \DTMifbool{sr-Latn-BA}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrLatnBAdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnBAyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnBAyearordinal}[1]{%
+       \number#1\DTMsrLatnBAdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMsrLatnBAnoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAnoimonthname}{\DTMserbianlatnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnBAnoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAnoiMonthname}{\DTMserbianlatnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnBAimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAimonthname}{\DTMserbianlatimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrLatnBAiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrLatnBAiMonthname}{\DTMserbianlatiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Define a boolean key that determines if the time zone mappings
+% should be used.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-BA}{mapzone}[true]{}
+%    \end{macrocode}
+% The default is to use mappings.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-BA}{mapzone}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the day of month should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-BA}{showdayofmonth}[true]{}
+%    \end{macrocode}
+% The default is to show the day of month.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-BA}{showdayofmonth}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the year should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Latn-BA}{showyear}[true]{}
+%    \end{macrocode}
+% The default is to show the year.
+%    \begin{macrocode}
+\DTMsetbool{sr-Latn-BA}{showyear}{true}
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Latn-BA}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnBAweekdayname{##4}%
+   	    \DTMsrLatnBAdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-BA}{showdayofmonth}
+      {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Latn-BA}{monthi}%
+      {\DTMsrLatnBAimonthname{##2}}%
+      {\DTMsrLatnBAnoimonthname{##2}}%
+    \DTMifbool{sr-Latn-BA}{showyear}%
+    {%
+      \DTMsrLatnBAmonthyearsep%
+      \DTMsrLatnBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnBAWeekdayname{##4}%
+   	    \DTMsrLatnBAdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-BA}{showdayofmonth}
+    {%
+      \DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep%
+      \DTMifbool{sr-Latn-BA}{monthi}%
+        {\DTMsrLatnBAimonthname{##2}}%
+        {\DTMsrLatnBAnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Latn-BA}{monthi}%
+        {\DTMsrLatnBAiMonthname{##2}}%
+        {\DTMsrLatnBAnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Latn-BA}{showyear}%
+    {%
+      \DTMsrLatnBAmonthyearsep%
+      \DTMsrLatnBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnBAtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnBAtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnBAzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-BA}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnBAtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+%    \end{macrocode}
+%
+%
+%\begin{macro}{\DTMsrLatnBAmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrLatnBAmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "srLatnBA-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Latn-BA}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-BA}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnBAdatesep}%
+ \or%
+   \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% Define numeric style.
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Latn-BA-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnBAweekdayname{##4}%
+   	    \DTMsrLatnBAdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-BA}{showdayofmonth}%
+    {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}%
+    {}%
+    \DTMsrLatnBAmonthordinal{##2}%
+    \DTMifbool{sr-Latn-BA}{showyear}%
+    {%
+      \DTMsrLatnBAmonthyearsep%
+      \DTMsrLatnBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrLatnBAWeekdayname{##4}%
+   	    \DTMsrLatnBAdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Latn-BA}{showdayofmonth}%
+    {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}%
+    {}%
+    \DTMsrLatnBAmonthordinal{##2}%
+    \DTMifbool{sr-Latn-BA}{showyear}%
+    {%
+      \DTMsrLatnBAmonthyearsep%
+      \DTMsrLatnBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnBAtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnBAtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnBAzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-BA}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnBAtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+%    \end{macrocode}
+%
+%\begin{macro}{\DTMsr-Latn-BAzonemaps}
+% The time zone mappings are set through this command, which can be
+% redefined if extra mappings are required or mappings need to be
+% removed.
+%    \begin{macrocode}
+\newcommand*{\DTMsr-Latn-BAzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+%    \end{macrocode}
+%\end{macro}
+
+% Switch style according to the \opt{useregional} setting.
+%    \begin{macrocode}
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Latn-BA}}%
+{\DTMsetstyle{sr-Latn-BA-numeric}}%
+%    \end{macrocode}
+%
+% Redefine \cs{dateserbian} (or \cs{date}\meta{dialect}) to prevent
+% \sty{babel} from resetting \cs{today}. (For this to work,
+% \sty{babel} must already have been loaded if it's required.)
+%\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
+%    \begin{macrocode}
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbian%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbian{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Latn-BA}}%
+      {\DTMsetstyle{sr-Latn-BA-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Latn-BA}}%
+    {\DTMsetstyle{sr-Latn-BA-numeric}}%
+  }%
+}%
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-sr-Latn-BA.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-serbianc.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\subsection{Serbian \sty{serbianc} Code
+%   (\texttt{datetime2-serbianc.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{serbianc}[2019/11/07 v2.0]
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
+%    \begin{macrocode}
+\RequireDateTimeModule{serbian-base}
+%    \end{macrocode}
+%
+%\subsubsection{Defining the \sty{serbianc} style}
+%
+% Allow the user a way of configuring the "serbianc" and
+% "serbianc-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMserbiancdowdaysep}
+% The separator between weekday and day.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancdowdaysep}{,\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\DTMserbiancdaymonthsep}
+% The separator between the day and month for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancmonthyearsep}
+% The separator between the month and year for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancmonthyearsep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancdatetimesep}
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancdatetimesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianctimezonesep}
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMserbianctimezonesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancdatesep}
+% The separator for the numeric date format.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancdatesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianctimesep}
+% The separator for the numeric time format.
+%    \begin{macrocode}
+\newcommand*{\DTMserbianctimesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
+%    \begin{macrocode}
+\DTMdefkey{serbianc}{dowdaysep}%
+    {\renewcommand*{\DTMserbiancdowdaysep}{#1}}
+\DTMdefkey{serbianc}{daymonthsep}%
+    {\renewcommand*{\DTMserbiancdaymonthsep}{#1}}
+\DTMdefkey{serbianc}{monthyearsep}%
+    {\renewcommand*{\DTMserbiancmonthyearsep}{#1}}
+\DTMdefkey{serbianc}{datetimesep}%
+    {\renewcommand*{\DTMserbiancdatetimesep}{#1}}
+\DTMdefkey{serbianc}{timezonesep}%
+    {\renewcommand*{\DTMserbianctimezonesep}{#1}}
+\DTMdefkey{serbianc}{datesep}%
+    {\renewcommand*{\DTMserbiancdatesep}{#1}}
+\DTMdefkey{serbianc}{timesep}%
+    {\renewcommand*{\DTMserbianctimesep}{#1}}
+%    \end{macrocode}
+%
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMserbiancweekdayname}
+% Define the weekday name, lowercase.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancweekdayname}%
+{\DTMserbiancyrekweekdayname}
+%    \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\DTMserbiancweekdayname}
+% Define the weekday name, capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancWeekdayname}%
+    {\DTMserbiancyrekWeekdayname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
+%    \begin{macrocode}
+\DTMdefchoicekey{serbianc}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMserbiancweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMserbiancWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMserbiancweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMserbiancWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{serbianc}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{serbianc}{monthi}{false}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{serbianc}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{serbianc}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMserbiancdayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMserbiancdayordinal}[1]{%
+       \DTMifbool{serbianc}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMserbiancdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMserbiancyearordinal}[1]{%
+       \number#1\DTMserbiancdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMserbiancnoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancnoimonthname}{\DTMserbiancyrnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancnoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancnoiMonthname}{\DTMserbiancyrnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbiancimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMserbiancimonthname}{\DTMserbiancyrimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMserbianciMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMserbianciMonthname}{\DTMserbiancyriMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Define a boolean key that determines if the time zone mappings
+% should be used.
+%    \begin{macrocode}
+\DTMdefboolkey{serbianc}{mapzone}[true]{}
+%    \end{macrocode}
+% The default is to use mappings.
+%    \begin{macrocode}
+\DTMsetbool{serbianc}{mapzone}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the day of month should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{serbianc}{showdayofmonth}[true]{}
+%    \end{macrocode}
+% The default is to show the day of month.
+%    \begin{macrocode}
+\DTMsetbool{serbianc}{showdayofmonth}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the year should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{serbianc}{showyear}[true]{}
+%    \end{macrocode}
+% The default is to show the year.
+%    \begin{macrocode}
+\DTMsetbool{serbianc}{showyear}{true}
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%    \begin{macrocode}
+\DTMnewstyle%
+{serbianc}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMserbiancweekdayname{##4}%
+   	    \DTMserbiancdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{serbianc}{showdayofmonth}
+      {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}%
+      {}%
+    \DTMifbool{serbianc}{monthi}%
+      {\DTMserbiancimonthname{##2}}%
+      {\DTMserbiancnoimonthname{##2}}%
+    \DTMifbool{serbianc}{showyear}%
+    {%
+      \DTMserbiancmonthyearsep%
+      \DTMserbiancyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMserbiancWeekdayname{##4}%
+   	    \DTMserbiancdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{serbianc}{showdayofmonth}
+    {%
+      \DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep%
+      \DTMifbool{serbianc}{monthi}%
+        {\DTMserbiancimonthname{##2}}%
+        {\DTMserbiancnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{serbianc}{monthi}%
+        {\DTMserbianciMonthname{##2}}%
+        {\DTMserbiancnoiMonthname{##2}}%
+    }%
+    \DTMifbool{serbianc}{showyear}%
+    {%
+      \DTMserbiancmonthyearsep%
+      \DTMserbiancyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMserbianctimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMserbianctimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMserbianczonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{serbianc}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMserbianctimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiancdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMserbianctimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiancdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMserbianctimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+%    \end{macrocode}
+%
+%
+%\begin{macro}{\DTMserbiancmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMserbiancmonthordinal}[1]{%
+       \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "serbianc-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{serbianc}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMserbiancmonthordinal}[1]{%
+       \DTMifbool{serbianc}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMserbiancdatesep}%
+ \or%
+   \renewcommand*{\DTMserbiancmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMserbiancmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% Define numeric style.
+%    \begin{macrocode}
+\DTMnewstyle%
+{serbianc-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMserbiancweekdayname{##4}%
+   	    \DTMserbiancdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{serbianc}{showdayofmonth}%
+    {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}%
+    {}%
+    \DTMserbiancmonthordinal{##2}%
+    \DTMifbool{serbianc}{showyear}%
+    {%
+      \DTMserbiancmonthyearsep%
+      \DTMserbiancyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMserbiancWeekdayname{##4}%
+   	    \DTMserbiancdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{serbianc}{showdayofmonth}%
+    {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}%
+    {}%
+    \DTMserbiancmonthordinal{##2}%
+    \DTMifbool{serbianc}{showyear}%
+    {%
+      \DTMserbiancmonthyearsep%
+      \DTMserbiancyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMserbianctimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMserbianctimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMserbianczonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{serbianc}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMserbianctimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiancdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMserbianctimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+%    \end{macrocode}
+%
+%\begin{macro}{\DTMserbianczonemaps}
+% The time zone mappings are set through this command, which can be
+% redefined if extra mappings are required or mappings need to be
+% removed.
+%    \begin{macrocode}
+\newcommand*{\DTMserbianczonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+%    \end{macrocode}
+%\end{macro}
+
+% Switch style according to the \opt{useregional} setting.
+%    \begin{macrocode}
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{serbianc}}%
+{\DTMsetstyle{serbianc-numeric}}%
+%    \end{macrocode}
+%
+% Redefine \cs{dateserbianc} (or \cs{date}\meta{dialect}) to prevent
+% \sty{babel} from resetting \cs{today}. (For this to work,
+% \sty{babel} must already have been loaded if it's required.)
+%\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
+%    \begin{macrocode}
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{serbianc}}%
+      {\DTMsetstyle{serbianc-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{serbianc}}%
+    {\DTMsetstyle{serbianc-numeric}}%
+  }%
+}%
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-serbianc.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-sr-Cyrl.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\subsection{Serbian \sty{sr-Cyrl} Code
+%   (\texttt{datetime2-sr-Cyrl.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{sr-Cyrl}[2019/11/07 v2.0]
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
+%    \begin{macrocode}
+\RequireDateTimeModule{serbian-base}
+%    \end{macrocode}
+%
+%\subsubsection{Defining the \sty{sr-Cyrl} style}
+%
+% Allow the user a way of configuring the "srCyrl" and
+% "srCyrl-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMsrCyrldowdaysep}
+% The separator between weekday and day.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrldowdaysep}{,\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\DTMsrCyrldaymonthsep}
+% The separator between the day and month for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrldaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlmonthyearsep}
+% The separator between the month and year for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlmonthyearsep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrldatetimesep}
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrldatetimesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrltimezonesep}
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrltimezonesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrldatesep}
+% The separator for the numeric date format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrldatesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrltimesep}
+% The separator for the numeric time format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrltimesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
+%    \begin{macrocode}
+\DTMdefkey{sr-Cyrl}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Cyrldowdaysep}{#1}}
+\DTMdefkey{sr-Cyrl}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Cyrldaymonthsep}{#1}}
+\DTMdefkey{sr-Cyrl}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Cyrlmonthyearsep}{#1}}
+\DTMdefkey{sr-Cyrl}{datetimesep}%
+    {\renewcommand*{\DTMsr-Cyrldatetimesep}{#1}}
+\DTMdefkey{sr-Cyrl}{timezonesep}%
+    {\renewcommand*{\DTMsr-Cyrltimezonesep}{#1}}
+\DTMdefkey{sr-Cyrl}{datesep}%
+    {\renewcommand*{\DTMsr-Cyrldatesep}{#1}}
+\DTMdefkey{sr-Cyrl}{timesep}%
+    {\renewcommand*{\DTMsr-Cyrltimesep}{#1}}
+%    \end{macrocode}
+%
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMsrCyrlweekdayname}
+% Define the weekday name, lowercase.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlweekdayname}%
+{\DTMserbiancyrekweekdayname}
+%    \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\DTMsrCyrlweekdayname}
+% Define the weekday name, capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlWeekdayname}%
+    {\DTMserbiancyrekWeekdayname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Cyrl}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrCyrlweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMsrCyrlWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrCyrlweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMsrCyrlWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl}{monthi}{false}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMsrCyrldayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrldayordinal}[1]{%
+       \DTMifbool{sr-Cyrl}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrCyrldatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlyearordinal}[1]{%
+       \number#1\DTMsrCyrldatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMsrCyrlnoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlnoimonthname}{\DTMserbiancyrnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlnoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlnoiMonthname}{\DTMserbiancyrnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlimonthname}{\DTMserbiancyrimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrliMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrliMonthname}{\DTMserbiancyriMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Define a boolean key that determines if the time zone mappings
+% should be used.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl}{mapzone}[true]{}
+%    \end{macrocode}
+% The default is to use mappings.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl}{mapzone}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the day of month should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl}{showdayofmonth}[true]{}
+%    \end{macrocode}
+% The default is to show the day of month.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl}{showdayofmonth}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the year should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl}{showyear}[true]{}
+%    \end{macrocode}
+% The default is to show the year.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl}{showyear}{true}
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Cyrl}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlweekdayname{##4}%
+   	    \DTMsrCyrldowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl}{showdayofmonth}
+      {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}%
+      {}%
+    \DTMifbool{sr-Cyrl}{monthi}%
+      {\DTMsrCyrlimonthname{##2}}%
+      {\DTMsrCyrlnoimonthname{##2}}%
+    \DTMifbool{sr-Cyrl}{showyear}%
+    {%
+      \DTMsrCyrlmonthyearsep%
+      \DTMsrCyrlyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlWeekdayname{##4}%
+   	    \DTMsrCyrldowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl}{showdayofmonth}
+    {%
+      \DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep%
+      \DTMifbool{sr-Cyrl}{monthi}%
+        {\DTMsrCyrlimonthname{##2}}%
+        {\DTMsrCyrlnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Cyrl}{monthi}%
+        {\DTMsrCyrliMonthname{##2}}%
+        {\DTMsrCyrlnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Cyrl}{showyear}%
+    {%
+      \DTMsrCyrlmonthyearsep%
+      \DTMsrCyrlyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrltimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrltimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrltimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrldatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrltimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrldatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrltimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+%    \end{macrocode}
+%
+%
+%\begin{macro}{\DTMsrCyrlmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "srCyrl-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Cyrl}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrCyrlmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrldatesep}%
+ \or%
+   \renewcommand*{\DTMsrCyrlmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrCyrlmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% Define numeric style.
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Cyrl-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlweekdayname{##4}%
+   	    \DTMsrCyrldowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl}{showdayofmonth}%
+    {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}%
+    {}%
+    \DTMsrCyrlmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl}{showyear}%
+    {%
+      \DTMsrCyrlmonthyearsep%
+      \DTMsrCyrlyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlWeekdayname{##4}%
+   	    \DTMsrCyrldowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl}{showdayofmonth}%
+    {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}%
+    {}%
+    \DTMsrCyrlmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl}{showyear}%
+    {%
+      \DTMsrCyrlmonthyearsep%
+      \DTMsrCyrlyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrltimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrltimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrltimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrldatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrltimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+%    \end{macrocode}
+%
+%\begin{macro}{\DTMsr-Cyrlzonemaps}
+% The time zone mappings are set through this command, which can be
+% redefined if extra mappings are required or mappings need to be
+% removed.
+%    \begin{macrocode}
+\newcommand*{\DTMsr-Cyrlzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+%    \end{macrocode}
+%\end{macro}
+
+% Switch style according to the \opt{useregional} setting.
+%    \begin{macrocode}
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Cyrl}}%
+{\DTMsetstyle{sr-Cyrl-numeric}}%
+%    \end{macrocode}
+%
+% Redefine \cs{dateserbianc} (or \cs{date}\meta{dialect}) to prevent
+% \sty{babel} from resetting \cs{today}. (For this to work,
+% \sty{babel} must already have been loaded if it's required.)
+%\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
+%    \begin{macrocode}
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Cyrl}}%
+      {\DTMsetstyle{sr-Cyrl-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Cyrl}}%
+    {\DTMsetstyle{sr-Cyrl-numeric}}%
+  }%
+}%
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-sr-Cyrl.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-sr-Cyrl-RS.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\subsection{Serbian \sty{sr-Cyrl-RS} Code
+%   (\texttt{datetime2-sr-Cyrl-RS.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{sr-Cyrl-RS}[2019/11/07 v2.0]
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
+%    \begin{macrocode}
+\RequireDateTimeModule{serbian-base}
+%    \end{macrocode}
+%
+%\subsubsection{Defining the \sty{sr-Cyrl-RS} style}
+%
+% Allow the user a way of configuring the "srCyrlRS" and
+% "srCyrlRS-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMsrCyrlRSdowdaysep}
+% The separator between weekday and day.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSdowdaysep}{,\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\DTMsrCyrlRSdaymonthsep}
+% The separator between the day and month for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlRSmonthyearsep}
+% The separator between the month and year for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSmonthyearsep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlRSdatetimesep}
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSdatetimesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlRStimezonesep}
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRStimezonesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlRSdatesep}
+% The separator for the numeric date format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSdatesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlRStimesep}
+% The separator for the numeric time format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRStimesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
+%    \begin{macrocode}
+\DTMdefkey{sr-Cyrl-RS}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSdowdaysep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSdaymonthsep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSmonthyearsep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{datetimesep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSdatetimesep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{timezonesep}%
+    {\renewcommand*{\DTMsr-Cyrl-RStimezonesep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{datesep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSdatesep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{timesep}%
+    {\renewcommand*{\DTMsr-Cyrl-RStimesep}{#1}}
+%    \end{macrocode}
+%
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMsrCyrlRSweekdayname}
+% Define the weekday name, lowercase.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSweekdayname}%
+{\DTMserbiancyrijweekdayname}
+%    \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\DTMsrCyrlRSweekdayname}
+% Define the weekday name, capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSWeekdayname}%
+    {\DTMserbiancyrijWeekdayname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Cyrl-RS}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrCyrlRSweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMsrCyrlRSWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrCyrlRSweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMsrCyrlRSWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-RS}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-RS}{monthi}{false}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-RS}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-RS}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMsrCyrlRSdayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlRSdayordinal}[1]{%
+       \DTMifbool{sr-Cyrl-RS}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrCyrlRSdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlRSyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlRSyearordinal}[1]{%
+       \number#1\DTMsrCyrlRSdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMsrCyrlRSnoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSnoimonthname}{\DTMserbiancyrnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlRSnoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSnoiMonthname}{\DTMserbiancyrnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlRSimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSimonthname}{\DTMserbiancyrimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlRSiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlRSiMonthname}{\DTMserbiancyriMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Define a boolean key that determines if the time zone mappings
+% should be used.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-RS}{mapzone}[true]{}
+%    \end{macrocode}
+% The default is to use mappings.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-RS}{mapzone}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the day of month should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-RS}{showdayofmonth}[true]{}
+%    \end{macrocode}
+% The default is to show the day of month.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-RS}{showdayofmonth}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the year should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-RS}{showyear}[true]{}
+%    \end{macrocode}
+% The default is to show the year.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-RS}{showyear}{true}
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Cyrl-RS}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlRSweekdayname{##4}%
+   	    \DTMsrCyrlRSdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-RS}{showdayofmonth}
+      {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Cyrl-RS}{monthi}%
+      {\DTMsrCyrlRSimonthname{##2}}%
+      {\DTMsrCyrlRSnoimonthname{##2}}%
+    \DTMifbool{sr-Cyrl-RS}{showyear}%
+    {%
+      \DTMsrCyrlRSmonthyearsep%
+      \DTMsrCyrlRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlRSWeekdayname{##4}%
+   	    \DTMsrCyrlRSdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-RS}{showdayofmonth}
+    {%
+      \DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep%
+      \DTMifbool{sr-Cyrl-RS}{monthi}%
+        {\DTMsrCyrlRSimonthname{##2}}%
+        {\DTMsrCyrlRSnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Cyrl-RS}{monthi}%
+        {\DTMsrCyrlRSiMonthname{##2}}%
+        {\DTMsrCyrlRSnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Cyrl-RS}{showyear}%
+    {%
+      \DTMsrCyrlRSmonthyearsep%
+      \DTMsrCyrlRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlRStimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlRStimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlRSzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-RS}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlRStimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+%    \end{macrocode}
+%
+%
+%\begin{macro}{\DTMsrCyrlRSmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlRSmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "srCyrlRS-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Cyrl-RS}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-RS}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlRSdatesep}%
+ \or%
+   \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% Define numeric style.
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Cyrl-RS-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlRSweekdayname{##4}%
+   	    \DTMsrCyrlRSdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-RS}{showdayofmonth}%
+    {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}%
+    {}%
+    \DTMsrCyrlRSmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-RS}{showyear}%
+    {%
+      \DTMsrCyrlRSmonthyearsep%
+      \DTMsrCyrlRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlRSWeekdayname{##4}%
+   	    \DTMsrCyrlRSdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-RS}{showdayofmonth}%
+    {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}%
+    {}%
+    \DTMsrCyrlRSmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-RS}{showyear}%
+    {%
+      \DTMsrCyrlRSmonthyearsep%
+      \DTMsrCyrlRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlRStimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlRStimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlRSzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-RS}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlRStimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+%    \end{macrocode}
+%
+%\begin{macro}{\DTMsr-Cyrl-RSzonemaps}
+% The time zone mappings are set through this command, which can be
+% redefined if extra mappings are required or mappings need to be
+% removed.
+%    \begin{macrocode}
+\newcommand*{\DTMsr-Cyrl-RSzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+%    \end{macrocode}
+%\end{macro}
+
+% Switch style according to the \opt{useregional} setting.
+%    \begin{macrocode}
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Cyrl-RS}}%
+{\DTMsetstyle{sr-Cyrl-RS-numeric}}%
+%    \end{macrocode}
+%
+% Redefine \cs{dateserbianc} (or \cs{date}\meta{dialect}) to prevent
+% \sty{babel} from resetting \cs{today}. (For this to work,
+% \sty{babel} must already have been loaded if it's required.)
+%\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
+%    \begin{macrocode}
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Cyrl-RS}}%
+      {\DTMsetstyle{sr-Cyrl-RS-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Cyrl-RS}}%
+    {\DTMsetstyle{sr-Cyrl-RS-numeric}}%
+  }%
+}%
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-sr-Cyrl-RS.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-sr-Cyrl-ME.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\subsection{Serbian \sty{sr-Cyrl-ME} Code
+%   (\texttt{datetime2-sr-Cyrl-ME.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{sr-Cyrl-ME}[2019/11/07 v2.0]
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
+%    \begin{macrocode}
+\RequireDateTimeModule{serbian-base}
+%    \end{macrocode}
+%
+%\subsubsection{Defining the \sty{sr-Cyrl-ME} style}
+%
+% Allow the user a way of configuring the "srCyrlME" and
+% "srCyrlME-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMsrCyrlMEdowdaysep}
+% The separator between weekday and day.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEdowdaysep}{,\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\DTMsrCyrlMEdaymonthsep}
+% The separator between the day and month for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlMEmonthyearsep}
+% The separator between the month and year for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEmonthyearsep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlMEdatetimesep}
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEdatetimesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlMEtimezonesep}
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEtimezonesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlMEdatesep}
+% The separator for the numeric date format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEdatesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlMEtimesep}
+% The separator for the numeric time format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEtimesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
+%    \begin{macrocode}
+\DTMdefkey{sr-Cyrl-ME}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEdowdaysep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEdaymonthsep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEmonthyearsep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{datetimesep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEdatetimesep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{timezonesep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEtimezonesep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{datesep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEdatesep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{timesep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEtimesep}{#1}}
+%    \end{macrocode}
+%
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMsrCyrlMEweekdayname}
+% Define the weekday name, lowercase.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEweekdayname}%
+{\DTMserbiancyrijweekdayname}
+%    \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\DTMsrCyrlMEweekdayname}
+% Define the weekday name, capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEWeekdayname}%
+    {\DTMserbiancyrijWeekdayname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Cyrl-ME}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrCyrlMEweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMsrCyrlMEWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrCyrlMEweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMsrCyrlMEWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-ME}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-ME}{monthi}{false}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-ME}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-ME}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMsrCyrlMEdayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlMEdayordinal}[1]{%
+       \DTMifbool{sr-Cyrl-ME}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrCyrlMEdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlMEyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlMEyearordinal}[1]{%
+       \number#1\DTMsrCyrlMEdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMsrCyrlMEnoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEnoimonthname}{\DTMserbiancyrnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlMEnoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEnoiMonthname}{\DTMserbiancyrnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlMEimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEimonthname}{\DTMserbiancyrimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlMEiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlMEiMonthname}{\DTMserbiancyriMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Define a boolean key that determines if the time zone mappings
+% should be used.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-ME}{mapzone}[true]{}
+%    \end{macrocode}
+% The default is to use mappings.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-ME}{mapzone}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the day of month should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-ME}{showdayofmonth}[true]{}
+%    \end{macrocode}
+% The default is to show the day of month.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-ME}{showdayofmonth}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the year should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-ME}{showyear}[true]{}
+%    \end{macrocode}
+% The default is to show the year.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-ME}{showyear}{true}
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Cyrl-ME}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlMEweekdayname{##4}%
+   	    \DTMsrCyrlMEdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-ME}{showdayofmonth}
+      {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Cyrl-ME}{monthi}%
+      {\DTMsrCyrlMEimonthname{##2}}%
+      {\DTMsrCyrlMEnoimonthname{##2}}%
+    \DTMifbool{sr-Cyrl-ME}{showyear}%
+    {%
+      \DTMsrCyrlMEmonthyearsep%
+      \DTMsrCyrlMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlMEWeekdayname{##4}%
+   	    \DTMsrCyrlMEdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-ME}{showdayofmonth}
+    {%
+      \DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep%
+      \DTMifbool{sr-Cyrl-ME}{monthi}%
+        {\DTMsrCyrlMEimonthname{##2}}%
+        {\DTMsrCyrlMEnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Cyrl-ME}{monthi}%
+        {\DTMsrCyrlMEiMonthname{##2}}%
+        {\DTMsrCyrlMEnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Cyrl-ME}{showyear}%
+    {%
+      \DTMsrCyrlMEmonthyearsep%
+      \DTMsrCyrlMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlMEtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlMEtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlMEzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-ME}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlMEtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+%    \end{macrocode}
+%
+%
+%\begin{macro}{\DTMsrCyrlMEmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlMEmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "srCyrlME-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Cyrl-ME}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-ME}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlMEdatesep}%
+ \or%
+   \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% Define numeric style.
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Cyrl-ME-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlMEweekdayname{##4}%
+   	    \DTMsrCyrlMEdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-ME}{showdayofmonth}%
+    {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}%
+    {}%
+    \DTMsrCyrlMEmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-ME}{showyear}%
+    {%
+      \DTMsrCyrlMEmonthyearsep%
+      \DTMsrCyrlMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlMEWeekdayname{##4}%
+   	    \DTMsrCyrlMEdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-ME}{showdayofmonth}%
+    {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}%
+    {}%
+    \DTMsrCyrlMEmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-ME}{showyear}%
+    {%
+      \DTMsrCyrlMEmonthyearsep%
+      \DTMsrCyrlMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlMEtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlMEtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlMEzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-ME}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlMEtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+%    \end{macrocode}
+%
+%\begin{macro}{\DTMsr-Cyrl-MEzonemaps}
+% The time zone mappings are set through this command, which can be
+% redefined if extra mappings are required or mappings need to be
+% removed.
+%    \begin{macrocode}
+\newcommand*{\DTMsr-Cyrl-MEzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+%    \end{macrocode}
+%\end{macro}
+
+% Switch style according to the \opt{useregional} setting.
+%    \begin{macrocode}
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Cyrl-ME}}%
+{\DTMsetstyle{sr-Cyrl-ME-numeric}}%
+%    \end{macrocode}
+%
+% Redefine \cs{dateserbianc} (or \cs{date}\meta{dialect}) to prevent
+% \sty{babel} from resetting \cs{today}. (For this to work,
+% \sty{babel} must already have been loaded if it's required.)
+%\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
+%    \begin{macrocode}
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Cyrl-ME}}%
+      {\DTMsetstyle{sr-Cyrl-ME-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Cyrl-ME}}%
+    {\DTMsetstyle{sr-Cyrl-ME-numeric}}%
+  }%
+}%
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-sr-Cyrl-ME.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\iffalse
+%    \begin{macrocode}
+%<*datetime2-sr-Cyrl-BA.ldf>
+%    \end{macrocode}
+%\fi
+%
+%\subsection{Serbian \sty{sr-Cyrl-BA} Code
+%   (\texttt{datetime2-sr-Cyrl-BA.ldf})}
+%\changes{1.0}{2015-03-24}{Initial release}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions, all settings made available to regions so all changes can be
+%   region-specific.
+%}
+%    \begin{macrocode}
+\ProvidesDateTimeModule{sr-Cyrl-BA}[2019/11/07 v2.0]
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   All localization strings loaded from base module.
+%}
+%
+% Load base Serbian module.
+%    \begin{macrocode}
+\RequireDateTimeModule{serbian-base}
+%    \end{macrocode}
+%
+%\subsubsection{Defining the \sty{sr-Cyrl-BA} style}
+%
+% Allow the user a way of configuring the "srCyrlBA" and
+% "srCyrlBA-numeric" styles by providing macros for various format
+% elements.
+%
+% This doesn't use the package-wide separators such as \cs{dtm at datetimesep} in
+% case other date formats are also required.
+%
+%
+%\begin{macro}{\DTMsrCyrlBAdowdaysep}
+% The separator between weekday and day.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAdowdaysep}{,\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\DTMsrCyrlBAdaymonthsep}
+% The separator between the day and month for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlBAmonthyearsep}
+% The separator between the month and year for the text format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAmonthyearsep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlBAdatetimesep}
+% The separator between the date and time blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAdatetimesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlBAtimezonesep}
+% The separator between the time and zone blocks in the full format (either
+% text or numeric).
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAtimezonesep}{\space}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlBAdatesep}
+% The separator for the numeric date format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAdatesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlBAtimesep}
+% The separator for the numeric time format.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAtimesep}{.}
+%    \end{macrocode}
+%\end{macro}
+%
+%Provide keys that can be used in \cs{DTMlangsetup} to set these separators.
+%    \begin{macrocode}
+\DTMdefkey{sr-Cyrl-BA}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAdowdaysep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAdaymonthsep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAmonthyearsep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{datetimesep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAdatetimesep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{timezonesep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAtimezonesep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{datesep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAdatesep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{timesep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAtimesep}{#1}}
+%    \end{macrocode}
+%
+%\subsubsection{Switches and settings}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%\begin{macro}{\DTMsrCyrlBAweekdayname}
+% Define the weekday name, lowercase.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAweekdayname}%
+{\DTMserbiancyrijweekdayname}
+%    \end{macrocode}
+%\end{macro}
+
+%\begin{macro}{\DTMsrCyrlBAweekdayname}
+% Define the weekday name, capitalized.
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAWeekdayname}%
+    {\DTMserbiancyrijWeekdayname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Provide a way to switch between Ekavian and Ijekavian pronunciation.
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch between Ekavian and Ijekavian pronunciation.
+%}
+%
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Cyrl-BA}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrCyrlBAweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMsrCyrlBAWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrCyrlBAweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMsrCyrlBAWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a way to switch June, July alternate spellings.
+%}
+% Define a boolean key that can switch between (jun, jul) and (juni, juli)
+% month spellings.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-BA}{monthi}[true]{}
+%    \end{macrocode}
+% The default is without the "i" suffix.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-BA}{monthi}{false}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch for adding leading zeroes in day and month ordinals.
+%}
+% Define a boolean key that determines if the day and month ordinals should
+% have leading zeroes.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-BA}{leadingzero}[true]{}
+%    \end{macrocode}
+% The default is to omit the leading zero.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-BA}{leadingzero}{false}
+%    \end{macrocode}
+%
+%
+%
+%\begin{macro}{\DTMsrCyrlBAdayordinal}
+% Define the day ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlBAdayordinal}[1]{%
+       \DTMifbool{sr-Cyrl-BA}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrCyrlBAdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlBAyearordinal}
+% Define the year ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlBAyearordinal}[1]{%
+       \number#1\DTMsrCyrlBAdatesep}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Removed the option to switch between writing systems, since that is
+%   accomplished by using different regions or regionless styles ("serbian" and
+%   "serbianc" for example).
+%}
+%
+% Define the month names.
+%
+%\begin{macro}{\DTMsrCyrlBAnoimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAnoimonthname}{\DTMserbiancyrnoimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlBAnoiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAnoiMonthname}{\DTMserbiancyrnoiMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlBAimonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAimonthname}{\DTMserbiancyrimonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\DTMsrCyrlBAiMonthname}
+%    \begin{macrocode}
+\newcommand*{\DTMsrCyrlBAiMonthname}{\DTMserbiancyriMonthname}
+%    \end{macrocode}
+%\end{macro}
+%
+% Define a boolean key that determines if the time zone mappings
+% should be used.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-BA}{mapzone}[true]{}
+%    \end{macrocode}
+% The default is to use mappings.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-BA}{mapzone}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the day of month should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-BA}{showdayofmonth}[true]{}
+%    \end{macrocode}
+% The default is to show the day of month.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-BA}{showdayofmonth}{true}
+%    \end{macrocode}
+%
+% Define a boolean key that determines if the year should be
+% displayed.
+%    \begin{macrocode}
+\DTMdefboolkey{sr-Cyrl-BA}{showyear}[true]{}
+%    \end{macrocode}
+% The default is to show the year.
+%    \begin{macrocode}
+\DTMsetbool{sr-Cyrl-BA}{showyear}{true}
+%    \end{macrocode}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Cyrl-BA}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlBAweekdayname{##4}%
+   	    \DTMsrCyrlBAdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-BA}{showdayofmonth}
+      {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Cyrl-BA}{monthi}%
+      {\DTMsrCyrlBAimonthname{##2}}%
+      {\DTMsrCyrlBAnoimonthname{##2}}%
+    \DTMifbool{sr-Cyrl-BA}{showyear}%
+    {%
+      \DTMsrCyrlBAmonthyearsep%
+      \DTMsrCyrlBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlBAWeekdayname{##4}%
+   	    \DTMsrCyrlBAdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-BA}{showdayofmonth}
+    {%
+      \DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep%
+      \DTMifbool{sr-Cyrl-BA}{monthi}%
+        {\DTMsrCyrlBAimonthname{##2}}%
+        {\DTMsrCyrlBAnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Cyrl-BA}{monthi}%
+        {\DTMsrCyrlBAiMonthname{##2}}%
+        {\DTMsrCyrlBAnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Cyrl-BA}{showyear}%
+    {%
+      \DTMsrCyrlBAmonthyearsep%
+      \DTMsrCyrlBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlBAtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlBAtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlBAzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-BA}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlBAtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+%    \end{macrocode}
+%
+%
+%\begin{macro}{\DTMsrCyrlBAmonthordinal}
+% Define the month ordinal format to be used by this style.
+%    \begin{macrocode}
+   \newcommand*{\DTMsrCyrlBAmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+%    \end{macrocode}
+%\end{macro}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Added a switch between multiple numeric month ordinal formats used in
+%   Serbian.
+%}
+% Define a setting to switch between Arabic, uppercase Roman and lowercase
+% smallcaps Roman month format for the "srCyrlBA-numeric" style.
+%    \begin{macrocode}
+\DTMdefchoicekey{sr-Cyrl-BA}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-BA}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlBAdatesep}%
+ \or%
+   \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+%    \end{macrocode}
+%
+%\changes{2.0}{2019-11-07}{%
+%   Fixed the (previously entirely wrong) numeric date style.
+%}
+%\changes{2.0}{2019-11-07}{%
+%   Added weekday names.
+%}
+% Define numeric style.
+%    \begin{macrocode}
+\DTMnewstyle%
+{sr-Cyrl-BA-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlBAweekdayname{##4}%
+   	    \DTMsrCyrlBAdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-BA}{showdayofmonth}%
+    {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}%
+    {}%
+    \DTMsrCyrlBAmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-BA}{showyear}%
+    {%
+      \DTMsrCyrlBAmonthyearsep%
+      \DTMsrCyrlBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+   	\ifDTMshowdow%
+   	  \ifnum##4>-1
+   	    \DTMsrCyrlBAWeekdayname{##4}%
+   	    \DTMsrCyrlBAdowdaysep%
+   	  \fi
+   	\fi
+    \DTMifbool{sr-Cyrl-BA}{showdayofmonth}%
+    {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}%
+    {}%
+    \DTMsrCyrlBAmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-BA}{showyear}%
+    {%
+      \DTMsrCyrlBAmonthyearsep%
+      \DTMsrCyrlBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlBAtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlBAtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlBAzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-BA}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlBAtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+%    \end{macrocode}
+%
+%\begin{macro}{\DTMsr-Cyrl-BAzonemaps}
+% The time zone mappings are set through this command, which can be
+% redefined if extra mappings are required or mappings need to be
+% removed.
+%    \begin{macrocode}
+\newcommand*{\DTMsr-Cyrl-BAzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+%    \end{macrocode}
+%\end{macro}
+
+% Switch style according to the \opt{useregional} setting.
+%    \begin{macrocode}
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Cyrl-BA}}%
+{\DTMsetstyle{sr-Cyrl-BA-numeric}}%
+%    \end{macrocode}
+%
+% Redefine \cs{dateserbianc} (or \cs{date}\meta{dialect}) to prevent
+% \sty{babel} from resetting \cs{today}. (For this to work,
+% \sty{babel} must already have been loaded if it's required.)
+%\changes{1.1}{2019-09-14}{removed spurious space}
+%\changes{2.0}{2019-11-07}{%
+%   Added regions.
+%}
+%    \begin{macrocode}
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Cyrl-BA}}%
+      {\DTMsetstyle{sr-Cyrl-BA-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Cyrl-BA}}%
+    {\DTMsetstyle{sr-Cyrl-BA-numeric}}%
+  }%
+}%
+%    \end{macrocode}
+%
+%\iffalse
+%    \begin{macrocode}
+%</datetime2-sr-Cyrl-BA.ldf>
+%    \end{macrocode}
+%\fi
+%
+%
+%
+%\restoregeometry{}
 %\Finale
-\endinput
+\endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.ins	2019-11-08 21:40:13 UTC (rev 52694)
+++ trunk/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.ins	2019-11-08 21:40:42 UTC (rev 52695)
@@ -3,6 +3,7 @@
 \preamble
 
  datetime2-serbian.dtx
+ Copyright 2019 Andrej Radović
  Copyright 2019 Nicola Talbot
 
  This work may be distributed and/or modified under the
@@ -13,13 +14,27 @@
  and version 1.3 or later is part of all distributions of LaTeX
  version 2005/12/01 or later.
 
- This work has the LPPL maintenance status `inactive'.
+ This work has the LPPL maintenance status `maintained'.
 
+ The Current Maintainer of this work is Andrej Radović.
+
  This work consists of the files datetime2-serbian.dtx and
- datetime2-serbian.ins and the derived files
- datetime2-serbian-utf8.ldf, datetime2-serbian-ascii.ldf and
- datetime2-serbian.ldf.
+ datetime2-serbian.ins and the derived files are as follows:
+   datetime2-serbian-base.ldf
+   datetime2-serbian-base-utf8.ldf
+   datetime2-serbian-base-ascii.ldf
+   datetime2-serbian.ldf
+   datetime2-sr-Latn.ldf
+   datetime2-sr-Latn-RS.ldf
+   datetime2-sr-Latn-ME.ldf
+   datetime2-sr-Latn-BA.ldf
+   datetime2-serbianc.ldf
+   datetime2-sr-Cyrl.ldf
+   datetime2-sr-Cyrl-RS.ldf
+   datetime2-sr-Cyrl-ME.ldf
+   datetime2-sr-Cyrl-BA.ldf
 
+
 \endpreamble
 
 \askforoverwritefalse
@@ -27,11 +42,11 @@
 \generate
 {%
   \file
-  {datetime2-serbian-utf8.ldf}%
+  {datetime2-serbian.ldf}%
   {%
    \usepreamble\defaultpreamble
    \usepostamble\defaultpostamble
-   \from{datetime2-serbian.dtx}{datetime2-serbian-utf8.ldf,package}%
+   \from{datetime2-serbian.dtx}{datetime2-serbian.ldf,package}%
   }%
 }
 
@@ -38,11 +53,11 @@
 \generate
 {%
   \file
-  {datetime2-serbian-ascii.ldf}%
+  {datetime2-sr-Latn.ldf}%
   {%
    \usepreamble\defaultpreamble
    \usepostamble\defaultpostamble
-   \from{datetime2-serbian.dtx}{datetime2-serbian-ascii.ldf,package}%
+   \from{datetime2-serbian.dtx}{datetime2-sr-Latn.ldf,package}%
   }%
 }
 
@@ -49,13 +64,123 @@
 \generate
 {%
   \file
-  {datetime2-serbian.ldf}%
+  {datetime2-sr-Latn-RS.ldf}%
   {%
    \usepreamble\defaultpreamble
    \usepostamble\defaultpostamble
-   \from{datetime2-serbian.dtx}{datetime2-serbian.ldf,package}%
+   \from{datetime2-serbian.dtx}{datetime2-sr-Latn-RS.ldf,package}%
   }%
 }
 
+\generate
+{%
+  \file
+  {datetime2-sr-Latn-ME.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-sr-Latn-ME.ldf,package}%
+  }%
+}
+
+\generate
+{%
+  \file
+  {datetime2-sr-Latn-BA.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-sr-Latn-BA.ldf,package}%
+  }%
+}
+
+\generate
+{%
+  \file
+  {datetime2-serbianc.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-serbianc.ldf,package}%
+  }%
+}
+
+\generate
+{%
+  \file
+  {datetime2-sr-Cyrl.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-sr-Cyrl.ldf,package}%
+  }%
+}
+
+\generate
+{%
+  \file
+  {datetime2-sr-Cyrl-RS.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-sr-Cyrl-RS.ldf,package}%
+  }%
+}
+
+\generate
+{%
+  \file
+  {datetime2-sr-Cyrl-ME.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-sr-Cyrl-ME.ldf,package}%
+  }%
+}
+
+\generate
+{%
+  \file
+  {datetime2-sr-Cyrl-BA.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-sr-Cyrl-BA.ldf,package}%
+  }%
+}
+
+
+\generate
+{%
+  \file
+  {datetime2-serbian-base.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-serbian-base.ldf,package}%
+  }%
+}
+
+\generate
+{%
+  \file
+  {datetime2-serbian-base-utf8.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-serbian-base-utf8.ldf,package}%
+  }%
+}
+
+\generate
+{%
+  \file
+  {datetime2-serbian-base-ascii.ldf}%
+  {%
+   \usepreamble\defaultpreamble
+   \usepostamble\defaultpostamble
+   \from{datetime2-serbian.dtx}{datetime2-serbian-base-ascii.ldf,package}%
+  }%
+}
+
 \endbatchfile
-

Deleted: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-ascii.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-ascii.ldf	2019-11-08 21:40:13 UTC (rev 52694)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-ascii.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -1,174 +0,0 @@
-%%
-%% This is file `datetime2-serbian-ascii.ldf',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% datetime2-serbian.dtx  (with options: `datetime2-serbian-ascii.ldf,package')
-%% 
-%%  datetime2-serbian.dtx
-%%  Copyright 2019 Nicola Talbot
-%% 
-%%  This work may be distributed and/or modified under the
-%%  conditions of the LaTeX Project Public License, either version 1.3
-%%  of this license of (at your option) any later version.
-%%  The latest version of this license is in
-%%    http://www.latex-project.org/lppl.txt
-%%  and version 1.3 or later is part of all distributions of LaTeX
-%%  version 2005/12/01 or later.
-%% 
-%%  This work has the LPPL maintenance status `inactive'.
-%% 
-%%  This work consists of the files datetime2-serbian.dtx and
-%%  datetime2-serbian.ins and the derived files
-%%  datetime2-serbian-utf8.ldf, datetime2-serbian-ascii.ldf and
-%%  datetime2-serbian.ldf.
-%% 
-%% \CharacterTable
-%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%%   Digits        \0\1\2\3\4\5\6\7\8\9
-%%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%%   Dollar        \$     Percent       \%     Ampersand     \&
-%%   Acute accent  \'     Left paren    \(     Right paren   \)
-%%   Asterisk      \*     Plus          \+     Comma         \,
-%%   Minus         \-     Point         \.     Solidus       \/
-%%   Colon         \:     Semicolon     \;     Less than     \<
-%%   Equals        \=     Greater than  \>     Question mark \?
-%%   Commercial at \@     Left bracket  \[     Backslash     \\
-%%   Right bracket \]     Circumflex    \^     Underscore    \_
-%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%%   Right brace   \}     Tilde         \~}
-\ProvidesDateTimeModule{serbian-ascii}[2019/09/14 v1.0]
-\newcommand*{\DTMserbianordinal}[1]{%
-  \number#1.%
-}
-\newcommand*{\DTMserbiancyrmonthname}[1]{%
-  \ifcase#1
-  \or
-   \protect\cyrje\protect\cyra\protect\cyrn\protect\cyru\protect\cyra
-     \protect\cyrr
-  \or
-   \protect\cyrf\protect\cyrie\protect\cyrb\protect\cyrr\protect\cyru
-     \protect\cyrr
-  \or
-   \protect\cyrm\protect\cyra\protect\cyrr\protect\cyrt
-  \or
-   \protect\cyra\protect\cyrp\protect\cyrr\protect\cyri\protect\cyrl
-  \or
-   \protect\cyrm\protect\cyra\protect\cyrje
-  \or
-   \protect\cyrje\protect\cyru\protect\cyrn
-  \or
-   \protect\cyrje\protect\cyru\protect\cyrl
-  \or
-   \protect\cyra\protect\cyrv\protect\cyrg\protect\cyru\protect\cyrs
-     \protect\cyrt
-  \or
-   \protect\cyrs\protect\cyre\protect\cyrp\protect\cyrt\protect\cyre
-     \protect\cyrm\protect\cyrb\protect\cyra\protect\cyrr
-  \or
-   \protect\cyro\protect\cyrk\protect\cyrt\protect\cyro\protect\cyrb
-     \protect\cyra\protect\cyrr
-  \or
-   \protect\cyrn\protect\cyro\protect\cyrv\protect\cyre\protect\cyrm
-     \protect\cyrb\protect\cyra\protect\cyrr
-  \or
-   \protect\cyrd\protect\cyre\protect\cyrc\protect\cyre\protect\cyrm
-    \protect\cyrb\protect\cyra\protect\cyrr
-  \fi
-}
-\newcommand*{\DTMserbiancyrMonthname}[1]{%
-  \ifcase#1
-  \or
-   \protect\CYRJE\protect\cyra\protect\cyrn\protect\cyru\protect\cyra
-     \protect\cyrr
-  \or
-   \protect\CYRF\protect\cyrie\protect\cyrb\protect\cyrr\protect\cyru
-     \protect\cyrr
-  \or
-   \protect\CYRM\protect\cyra\protect\cyrr\protect\cyrt
-  \or
-   \protect\CYRA\protect\cyrp\protect\cyrr\protect\cyri\protect\cyrl
-  \or
-   \protect\CYRM\protect\cyra\protect\cyrje
-  \or
-   \protect\CYRJE\protect\cyru\protect\cyrn
-  \or
-   \protect\CYRJE\protect\cyru\protect\cyrl
-  \or
-   \protect\CYRA\protect\cyrv\protect\cyrg\protect\cyru\protect\cyrs
-     \protect\cyrt
-  \or
-   \protect\CYRS\protect\cyre\protect\cyrp\protect\cyrt\protect\cyre
-     \protect\cyrm\protect\cyrb\protect\cyra\protect\cyrr
-  \or
-   \protect\CYRO\protect\cyrk\protect\cyrt\protect\cyro\protect\cyrb
-     \protect\cyra\protect\cyrr
-  \or
-   \protect\CYRN\protect\cyro\protect\cyrv\protect\cyre\protect\cyrm
-     \protect\cyrb\protect\cyra\protect\cyrr
-  \or
-   \protect\CYRD\protect\cyre\protect\cyrc\protect\cyre\protect\cyrm
-    \protect\cyrb\protect\cyra\protect\cyrr
-  \fi
-}
-\newcommand*{\DTMserbianlatinmonthname}[1]{%
-  \ifcase#1
-  \or
-  januar%
-  \or
-  februar%
-  \or
-  mart%
-  \or
-  april%
-  \or
-  maj%
-  \or
-  juni%
-  \or
-  juli%
-  \or
-  avgust%
-  \or
-  septembar%
-  \or
-  oktobar%
-  \or
-  novembar%
-  \or
-  decembar%
-  \fi
-}
-\newcommand*{\DTMserbianlatinMonthname}[1]{%
-  \ifcase#1
-  \or
-  Januar%
-  \or
-  Februar%
-  \or
-  Mart%
-  \or
-  April%
-  \or
-  Maj%
-  \or
-  Juni%
-  \or
-  Juli%
-  \or
-  Avgust%
-  \or
-  Septembar%
-  \or
-  Oktobar%
-  \or
-  Novembar%
-  \or
-  Decembar%
-  \fi
-}
-\endinput
-%%
-%% End of file `datetime2-serbian-ascii.ldf'.

Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-ascii.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-ascii.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-ascii.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,345 @@
+%%
+%% This is file `datetime2-serbian-base-ascii.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-serbian-base-ascii.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{serbian-base-ascii}[2019/11/07 v2.0]
+%%\subsubsection{Latin month names}
+\newcommand*{\DTMserbianlatnoimonthname}[1]{%
+  \ifcase#1
+  \or%
+    januar%
+  \or%
+    februar%
+  \or%
+    mart%
+  \or%
+    april%
+  \or%
+    maj%
+  \or%
+    jun%
+  \or%
+    jul%
+  \or%
+    avgust%
+  \or%
+    septembar%
+  \or%
+    oktobar%
+  \or%
+    novembar%
+  \or%
+    decembar%
+  \fi
+}
+\newcommand*{\DTMserbianlatnoiMonthname}[1]{%
+  \ifcase#1
+  \or%
+    Januar%
+  \or%
+    Februar%
+  \or%
+    Mart%
+  \or%
+    April%
+  \or%
+    Maj%
+  \or%
+    Jun%
+  \or%
+    Jul%
+  \or%
+    Avgust%
+  \or%
+    Septembar%
+  \or%
+    Oktobar%
+  \or%
+    Novembar%
+  \or%
+    Decembar%
+  \fi
+}
+\newcommand*{\DTMserbianlatimonthname}[1]{%
+  \ifnum#1=6%
+    juni%
+  \else\ifnum\#1=7%
+      juli%
+    \else
+      \DTMserbianlatnoimonthname%
+    \fi\fi
+}
+\newcommand*{\DTMserbianlatiMonthname}[1]{%
+  \ifnum#1=6%
+    Juni%
+  \else\ifnum\#1=7%
+  Juli%
+    \else
+      \DTMserbianlatnoimonthname%
+    \fi\fi
+}
+\newcommand*{\DTMserbianlatekweekdayname}[1]{%
+  \ifcase#1
+    ponedeljak%
+  \or%
+    utorak%
+  \or%
+    sreda%
+  \or%
+    \v cetvrtak%
+  \or%
+    petak%
+  \or%
+    subota%
+  \or%
+    nedelja%
+  \fi%
+}
+\newcommand*{\DTMserbianlatekWeekdayname}[1]{%
+  \ifcase#1
+    Ponedeljak%
+  \or%
+    Utorak%
+  \or%
+    Sreda%
+  \or%
+    \v Cetvrtak%
+  \or%
+    Petak%
+  \or%
+    Subota%
+  \or%
+    Nedelja%
+  \fi%
+}
+\newcommand*{\DTMserbianlatijweekdayname}[1]{%
+  \ifcase#1
+    ponedjeljak%
+  \or%
+    utorak%
+  \or%
+    srijeda%
+  \or%
+    \v cetvrtak%
+  \or%
+    petak%
+  \or%
+    subota%
+  \or%
+    nedjelja%
+  \fi%
+}
+\newcommand*{\DTMserbianlatijWeekdayname}[1]{%
+  \ifcase#1
+    Ponedjeljak%
+  \or%
+    Utorak%
+  \or%
+    Srijeda%
+  \or%
+    \v Cetvrtak%
+  \or%
+    Petak%
+  \or%
+    Subota%
+  \or%
+    Nedjelja%
+  \fi%
+}
+\newcommand*{\DTMserbiancyrnoimonthname}[1]{%
+  \ifcase#1
+  \or%
+    \cyrje\cyra\cyrn\cyru\cyra\cyrr%
+  \or%
+    \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr%
+  \or%
+    \cyrm\cyra\cyrr\cyrt%
+  \or%
+    \cyra\cyrp\cyrr\cyri\cyrl%
+  \or%
+    \cyrm\cyra\cyrje%
+  \or%
+    \cyrje\cyru\cyrn%
+  \or%
+    \cyrje\cyru\cyrl%
+  \or%
+    \cyra\cyrv\cyrg\cyru\cyrs\cyrt%
+  \or%
+    \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyra\cyrr%
+  \or%
+    \cyro\cyrk\cyrt\cyro\cyrb\cyra\cyrr%
+  \or%
+    \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyra\cyrr%
+  \or%
+    \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyra\cyrr%
+  \fi
+}
+\newcommand*{\DTMserbiancyrnoiMonthname}[1]{%
+  \ifcase#1
+  \or%
+    \CYRJE\cyra\cyrn\cyru\cyra\cyrr%
+  \or%
+    \CYRF\cyre\cyrb\cyrr\cyru\cyra\cyrr%
+  \or%
+    \CYRM\cyra\cyrr\cyrt%
+  \or%
+    \CYRA\cyrp\cyrr\cyri\cyrl%
+  \or%
+    \CYRM\cyra\cyrje%
+  \or%
+    \CYRJE\cyru\cyrn%
+  \or%
+    \CYRJE\cyru\cyrl%
+  \or%
+    \CYRA\cyrv\cyrg\cyru\cyrs\cyrt%
+  \or%
+    \CYRS\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyra\cyrr%
+  \or%
+    \CYRO\cyrk\cyrt\cyro\cyrb\cyra\cyrr%
+  \or%
+    \CYRN\cyro\cyrv\cyre\cyrm\cyrb\cyra\cyrr%
+  \or%
+    \CYRD\cyre\cyrc\cyre\cyrm\cyrb\cyra\cyrr%
+  \fi
+}
+\newcommand*{\DTMserbiancyrimonthname}[1]{%
+  \ifnum#1=6%
+    \cyrje\cyru\cyrn\cyri%
+  \else\ifnum\#1=7%
+      \cyrje\cyru\cyrl\cyri%
+    \else
+      \DTMserbiancyrnoimonthname%
+    \fi\fi
+}
+\newcommand*{\DTMserbiancyriMonthname}[1]{%
+  \ifnum#1=6%
+    \CYRJE\cyru\cyrn\cyri%
+  \else\ifnum\#1=7%
+  \CYRJE\cyru\cyrl\cyri%
+    \else
+      \DTMserbiancyrnoimonthname%
+    \fi\fi
+}
+\newcommand*{\DTMserbiancyrekweekdayname}[1]{%
+  \ifcase#1
+    \cyrp\cyro\cyrn\cyre\cyrd\cyre\cyrlje\cyra\cyrk%
+  \or%
+    \cyru\cyrt\cyro\cyrr\cyra\cyrk%
+  \or%
+    \cyrs\cyrr\cyre\cyrd\cyra%
+  \or%
+    \cyrch\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk%
+  \or%
+    \cyrp\cyre\cyrt\cyra\cyrk%
+  \or%
+    \cyrs\cyru\cyrb\cyro\cyrt\cyra%
+  \or%
+    \cyrn\cyre\cyrd\cyre\cyrlje\cyra%
+  \fi%
+}
+\newcommand*{\DTMserbiancyrekWeekdayname}[1]{%
+  \ifcase#1
+    \CYRP\cyro\cyrn\cyre\cyrd\cyre\cyrlje\cyra\cyrk%
+  \or%
+    \CYRU\cyrt\cyro\cyrr\cyra\cyrk%
+  \or%
+    \CYRS\cyrr\cyre\cyrd\cyra%
+  \or%
+    \CYRCH\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk%
+  \or%
+    \CYRP\cyre\cyrt\cyra\cyrk%
+  \or%
+    \CYRS\cyru\cyrb\cyro\cyrt\cyra%
+  \or%
+    \CYRN\cyre\cyrd\cyre\cyrlje\cyra%
+  \fi%
+}
+\newcommand*{\DTMserbiancyrijweekdayname}[1]{%
+  \ifcase#1
+    \cyrp\cyro\cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra\cyrk%
+  \or%
+    \cyru\cyrt\cyro\cyrr\cyra\cyrk%
+  \or%
+    \cyrs\cyrr\cyri\cyrje\cyre\cyrd\cyra%
+  \or%
+    \cyrch\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk%
+  \or%
+    \cyrp\cyre\cyrt\cyra\cyrk%
+  \or%
+    \cyrs\cyru\cyrb\cyro\cyrt\cyra%
+  \or%
+    \cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra%
+  \fi%
+}
+\newcommand*{\DTMserbiancyrijWeekdayname}[1]{%
+  \ifcase#1
+    \CYRP\cyro\cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra\cyrk%
+  \or%
+    \CYRU\cyrt\cyro\cyrr\cyra\cyrk%
+  \or%
+    \CYRS\cyrr\cyri\cyrje\cyre\cyrd\cyra%
+  \or%
+    \CYRCH\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk%
+  \or%
+    \CYRP\cyre\cyrt\cyra\cyrk%
+  \or%
+    \CYRS\cyru\cyrb\cyro\cyrt\cyra%
+  \or%
+    \CYRN\cyre\cyrd\cyrje\cyre\cyrlje\cyra%
+  \fi%
+}
+\endinput
+%%
+%% End of file `datetime2-serbian-base-ascii.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-ascii.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-utf8.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-utf8.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-utf8.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,344 @@
+%%
+%% This is file `datetime2-serbian-base-utf8.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-serbian-base-utf8.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{serbian-base-utf8}[2019/11/07 v2.0]
+\newcommand*{\DTMserbianlatnoimonthname}[1]{%
+  \ifcase#1
+  \or%
+    januar%
+  \or%
+    februar%
+  \or%
+    mart%
+  \or%
+    april%
+  \or%
+    maj%
+  \or%
+    jun%
+  \or%
+    jul%
+  \or%
+    avgust%
+  \or%
+    septembar%
+  \or%
+    oktobar%
+  \or%
+    novembar%
+  \or%
+    decembar%
+  \fi
+}
+\newcommand*{\DTMserbianlatnoiMonthname}[1]{%
+  \ifcase#1
+  \or%
+    Januar%
+  \or%
+    Februar%
+  \or%
+    Mart%
+  \or%
+    April%
+  \or%
+    Maj%
+  \or%
+    Jun%
+  \or%
+    Jul%
+  \or%
+    Avgust%
+  \or%
+    Septembar%
+  \or%
+    Oktobar%
+  \or%
+    Novembar%
+  \or%
+    Decembar%
+  \fi
+}
+\newcommand*{\DTMserbianlatimonthname}[1]{%
+  \ifnum#1=6%
+    juni%
+  \else\ifnum\#1=7%
+      juli%
+    \else
+      \DTMserbianlatnoimonthname%
+    \fi\fi
+}
+\newcommand*{\DTMserbianlatiMonthname}[1]{%
+  \ifnum#1=6%
+    Juni%
+  \else\ifnum\#1=7%
+  Juli%
+    \else
+      \DTMserbianlatnoimonthname%
+    \fi\fi
+}
+\newcommand*{\DTMserbianlatekweekdayname}[1]{%
+  \ifcase#1
+    ponedeljak%
+  \or%
+    utorak%
+  \or%
+    sreda%
+  \or%
+    četvrtak%
+  \or%
+    petak%
+  \or%
+    subota%
+  \or%
+    nedelja%
+  \fi%
+}
+\newcommand*{\DTMserbianlatekWeekdayname}[1]{%
+  \ifcase#1
+    Ponedeljak%
+  \or%
+    Utorak%
+  \or%
+    Sreda%
+  \or%
+    Četvrtak%
+  \or%
+    Petak%
+  \or%
+    Subota%
+  \or%
+    Nedelja%
+  \fi%
+}
+\newcommand*{\DTMserbianlatijweekdayname}[1]{%
+  \ifcase#1
+    ponedjeljak%
+  \or%
+    utorak%
+  \or%
+    srijeda%
+  \or%
+    četvrtak%
+  \or%
+    petak%
+  \or%
+    subota%
+  \or%
+    nedjelja%
+  \fi%
+}
+\newcommand*{\DTMserbianlatijWeekdayname}[1]{%
+  \ifcase#1
+    Ponedjeljak%
+  \or%
+    Utorak%
+  \or%
+    Srijeda%
+  \or%
+    Četvrtak%
+  \or%
+    Petak%
+  \or%
+    Subota%
+  \or%
+    Nedjelja%
+  \fi%
+}
+\newcommand*{\DTMserbiancyrnoimonthname}[1]{%
+  \ifcase#1
+  \or%
+    јануар%
+  \or%
+    фебруар%
+  \or%
+    март%
+  \or%
+    април%
+  \or%
+    мај%
+  \or%
+    јун%
+  \or%
+    јул%
+  \or%
+    август%
+  \or%
+    септембар%
+  \or%
+    октобар%
+  \or%
+    новембар%
+  \or%
+    децембар%
+  \fi
+}
+\newcommand*{\DTMserbiancyrnoiMonthname}[1]{%
+  \ifcase#1
+  \or%
+    Јануар%
+  \or%
+    Фебруар%
+  \or%
+    Март%
+  \or%
+    Април%
+  \or%
+    Мај%
+  \or%
+    Јун%
+  \or%
+    Јул%
+  \or%
+    Август%
+  \or%
+    Септембар%
+  \or%
+    Октобар%
+  \or%
+    Новембар%
+  \or%
+    Децембар%
+  \fi
+}
+\newcommand*{\DTMserbiancyrimonthname}[1]{%
+  \ifnum#1=6%
+    јуни%
+  \else\ifnum\#1=7%
+      јули%
+    \else
+      \DTMserbiancyrnoimonthname%
+    \fi\fi
+}
+\newcommand*{\DTMserbiancyriMonthname}[1]{%
+  \ifnum#1=6%
+    Јуни%
+  \else\ifnum\#1=7%
+  Јули%
+    \else
+      \DTMserbiancyrnoimonthname%
+    \fi\fi
+}
+\newcommand*{\DTMserbiancyrekweekdayname}[1]{%
+  \ifcase#1
+    понедељак%
+  \or%
+    уторак%
+  \or%
+    среда%
+  \or%
+    четвртак%
+  \or%
+    петак%
+  \or%
+    субота%
+  \or%
+    недеља%
+  \fi%
+}
+\newcommand*{\DTMserbiancyrekWeekdayname}[1]{%
+  \ifcase#1
+    Понедељак%
+  \or%
+    Уторак%
+  \or%
+    Среда%
+  \or%
+    Четвртак%
+  \or%
+    Петак%
+  \or%
+    Субота%
+  \or%
+    Недеља%
+  \fi%
+}
+\newcommand*{\DTMserbiancyrijweekdayname}[1]{%
+  \ifcase#1
+    понедјељак%
+  \or%
+    уторак%
+  \or%
+    сриједа%
+  \or%
+    четвртак%
+  \or%
+    петак%
+  \or%
+    субота%
+  \or%
+    недјеља%
+  \fi%
+}
+\newcommand*{\DTMserbiancyrijWeekdayname}[1]{%
+  \ifcase#1
+    Понедјељак%
+  \or%
+    Уторак%
+  \or%
+    Сриједа%
+  \or%
+    Четвртак%
+  \or%
+    Петак%
+  \or%
+    Субота%
+  \or%
+    Недјеља%
+  \fi%
+}
+\endinput
+%%
+%% End of file `datetime2-serbian-base-utf8.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-utf8.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,126 @@
+%%
+%% This is file `datetime2-serbian-base.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-serbian-base.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{serbian-base}[2019/11/07 v2.0]
+\newcommand*{\DTMserbianordinalROMAN}[1]{%
+  \ifcase#1
+  \or%
+    I%
+  \or%
+    II%
+  \or%
+    III%
+  \or%
+    IV%
+  \or%
+    V%
+  \or%
+    VI%
+  \or%
+    VII%
+  \or%
+    VIII%
+  \or%
+    IX%
+  \or%
+    X%
+  \or%
+    XI%
+  \or%
+    XII%
+  \fi
+}
+\newcommand*{\DTMserbianordinalroman}[1]{%
+  \ifcase#1
+  \or%
+    i%
+  \or%
+    ii%
+  \or%
+    iii%
+  \or%
+    iv%
+  \or%
+    v%
+  \or%
+    vi%
+  \or%
+    vii%
+  \or%
+    viii%
+  \or%
+    ix%
+  \or%
+    x%
+  \or%
+    xi%
+  \or%
+    xii%
+  \fi
+}
+\RequirePackage{ifxetex,ifluatex}
+\ifxetex%
+  \RequireDateTimeModule{serbian-base-utf8}
+\else
+  \ifluatex%
+    \RequireDateTimeModule{serbian-base-utf8}
+  \else
+    \RequireDateTimeModule{serbian-base-ascii}
+  \fi
+\fi
+\endinput
+%%
+%% End of file `datetime2-serbian-base.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-utf8.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-utf8.ldf	2019-11-08 21:40:13 UTC (rev 52694)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-utf8.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -1,160 +0,0 @@
-%%
-%% This is file `datetime2-serbian-utf8.ldf',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% datetime2-serbian.dtx  (with options: `datetime2-serbian-utf8.ldf,package')
-%% 
-%%  datetime2-serbian.dtx
-%%  Copyright 2019 Nicola Talbot
-%% 
-%%  This work may be distributed and/or modified under the
-%%  conditions of the LaTeX Project Public License, either version 1.3
-%%  of this license of (at your option) any later version.
-%%  The latest version of this license is in
-%%    http://www.latex-project.org/lppl.txt
-%%  and version 1.3 or later is part of all distributions of LaTeX
-%%  version 2005/12/01 or later.
-%% 
-%%  This work has the LPPL maintenance status `inactive'.
-%% 
-%%  This work consists of the files datetime2-serbian.dtx and
-%%  datetime2-serbian.ins and the derived files
-%%  datetime2-serbian-utf8.ldf, datetime2-serbian-ascii.ldf and
-%%  datetime2-serbian.ldf.
-%% 
-%% \CharacterTable
-%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%%   Digits        \0\1\2\3\4\5\6\7\8\9
-%%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%%   Dollar        \$     Percent       \%     Ampersand     \&
-%%   Acute accent  \'     Left paren    \(     Right paren   \)
-%%   Asterisk      \*     Plus          \+     Comma         \,
-%%   Minus         \-     Point         \.     Solidus       \/
-%%   Colon         \:     Semicolon     \;     Less than     \<
-%%   Equals        \=     Greater than  \>     Question mark \?
-%%   Commercial at \@     Left bracket  \[     Backslash     \\
-%%   Right bracket \]     Circumflex    \^     Underscore    \_
-%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%%   Right brace   \}     Tilde         \~}
-\ProvidesDateTimeModule{serbian-utf8}[2019/09/14 v1.0]
-\newcommand*{\DTMserbianordinal}[1]{%
-  \number#1.%
-}
-\newcommand*{\DTMserbiancyrmonthname}[1]{%
-  \ifcase#1
-  \or
-  јануар%
-  \or
-  фебруар%
-  \or
-  март%
-  \or
-  април%
-  \or
-  мај%
-  \or
-  јун%
-  \or
-  јул%
-  \or
-  август%
-  \or
-  септембар%
-  \or
-  октобар%
-  \or
-  новембар%
-  \or
-  децембар%
-  \fi
-}
-\newcommand*{\DTMserbiancyrMonthname}[1]{%
-  \ifcase#1
-  \or
-  Јануар%
-  \or
-  Фебруар%
-  \or
-  Март%
-  \or
-  Април%
-  \or
-  Мај%
-  \or
-  Јун%
-  \or
-  Јул%
-  \or
-  Август%
-  \or
-  Септембар%
-  \or
-  Октобар%
-  \or
-  Новембар%
-  \or
-  Децембар%
-  \fi
-}
-\newcommand*{\DTMserbianlatinmonthname}[1]{%
-  \ifcase#1
-  \or
-  januar%
-  \or
-  februar%
-  \or
-  mart%
-  \or
-  april%
-  \or
-  maj%
-  \or
-  juni%
-  \or
-  juli%
-  \or
-  avgust%
-  \or
-  septembar%
-  \or
-  oktobar%
-  \or
-  novembar%
-  \or
-  decembar%
-  \fi
-}
-\newcommand*{\DTMserbianlatinMonthname}[1]{%
-  \ifcase#1
-  \or
-  Januar%
-  \or
-  Februar%
-  \or
-  Mart%
-  \or
-  April%
-  \or
-  Maj%
-  \or
-  Juni%
-  \or
-  Juli%
-  \or
-  Avgust%
-  \or
-  Septembar%
-  \or
-  Oktobar%
-  \or
-  Novembar%
-  \or
-  Decembar%
-  \fi
-}
-\endinput
-%%
-%% End of file `datetime2-serbian-utf8.ldf'.

Modified: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian.ldf	2019-11-08 21:40:13 UTC (rev 52694)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -7,6 +7,7 @@
 %% datetime2-serbian.dtx  (with options: `datetime2-serbian.ldf,package')
 %% 
 %%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
 %%  Copyright 2019 Nicola Talbot
 %% 
 %%  This work may be distributed and/or modified under the
@@ -17,13 +18,27 @@
 %%  and version 1.3 or later is part of all distributions of LaTeX
 %%  version 2005/12/01 or later.
 %% 
-%%  This work has the LPPL maintenance status `inactive'.
+%%  This work has the LPPL maintenance status `maintained'.
 %% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
 %%  This work consists of the files datetime2-serbian.dtx and
-%%  datetime2-serbian.ins and the derived files
-%%  datetime2-serbian-utf8.ldf, datetime2-serbian-ascii.ldf and
-%%  datetime2-serbian.ldf.
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
 %% 
+%% 
 %% \CharacterTable
 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
 %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -39,19 +54,11 @@
 %%   Right bracket \]     Circumflex    \^     Underscore    \_
 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %%   Right brace   \}     Tilde         \~}
-\ProvidesDateTimeModule{serbian}[2019/09/14 v1.0]
-\RequirePackage{ifxetex,ifluatex}
-\ifxetex
- \RequireDateTimeModule{serbian-utf8}
-\else
- \ifluatex
-   \RequireDateTimeModule{serbian-utf8}
- \else
-   \RequireDateTimeModule{serbian-ascii}
- \fi
-\fi
+\ProvidesDateTimeModule{serbian}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMserbiandowdaysep}{,\space}
 \newcommand*{\DTMserbiandaymonthsep}{%
- \DTMtexorpdfstring{\protect~}{\space}%
+  \DTMtexorpdfstring{\protect~}{\space}%
 }
 \newcommand*{\DTMserbianmonthyearsep}{\space}
 \newcommand*{\DTMserbiandatetimesep}{\space}
@@ -58,23 +65,53 @@
 \newcommand*{\DTMserbiantimezonesep}{\space}
 \newcommand*{\DTMserbiandatesep}{.}
 \newcommand*{\DTMserbiantimesep}{.}
-\DTMdefkey{serbian}{daymonthsep}{\renewcommand*{\DTMserbiandaymonthsep}{#1}}
-\DTMdefkey{serbian}{monthyearsep}{\renewcommand*{\DTMserbianmonthyearsep}{#1}}
-\DTMdefkey{serbian}{datetimesep}{\renewcommand*{\DTMserbiandatetimesep}{#1}}
-\DTMdefkey{serbian}{timezonesep}{\renewcommand*{\DTMserbiantimezonesep}{#1}}
-\DTMdefkey{serbian}{datesep}{\renewcommand*{\DTMserbiandatesep}{#1}}
-\DTMdefkey{serbian}{timesep}{\renewcommand*{\DTMserbiantimesep}{#1}}
-\newcommand*{\DTMserbianmonthname}{\DTMserbiancyrmonthname}
-\newcommand*{\DTMserbianMonthname}{\DTMserbiancyrMonthname}
-\DTMdefchoicekey{serbian}{alphabet}[\val\nr]{cyrillic,latin}{%
- \ifcase\nr\relax
-  \renewcommand*{\DTMserbianmonthname}{\DTMserbiancyrmonthname}%
-  \renewcommand*{\DTMserbianMonthname}{\DTMserbiancyrMonthname}%
- \or
-  \renewcommand*{\DTMserbianmonthname}{\DTMserbianlatinmonthname}%
-  \renewcommand*{\DTMserbianMonthname}{\DTMserbianlatinMonthname}%
- \fi
+\DTMdefkey{serbian}{dowdaysep}%
+    {\renewcommand*{\DTMserbiandowdaysep}{#1}}
+\DTMdefkey{serbian}{daymonthsep}%
+    {\renewcommand*{\DTMserbiandaymonthsep}{#1}}
+\DTMdefkey{serbian}{monthyearsep}%
+    {\renewcommand*{\DTMserbianmonthyearsep}{#1}}
+\DTMdefkey{serbian}{datetimesep}%
+    {\renewcommand*{\DTMserbiandatetimesep}{#1}}
+\DTMdefkey{serbian}{timezonesep}%
+    {\renewcommand*{\DTMserbiantimezonesep}{#1}}
+\DTMdefkey{serbian}{datesep}%
+    {\renewcommand*{\DTMserbiandatesep}{#1}}
+\DTMdefkey{serbian}{timesep}%
+    {\renewcommand*{\DTMserbiantimesep}{#1}}
+\newcommand*{\DTMserbianweekdayname}%
+{\DTMserbianlatekweekdayname}
+
+\newcommand*{\DTMserbianWeekdayname}%
+    {\DTMserbianlatekWeekdayname}
+\DTMdefchoicekey{serbian}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMserbianweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMserbianWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMserbianweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMserbianWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
 }
+\DTMdefboolkey{serbian}{monthi}[true]{}
+\DTMsetbool{serbian}{monthi}{false}
+\DTMdefboolkey{serbian}{leadingzero}[true]{}
+\DTMsetbool{serbian}{leadingzero}{false}
+   \newcommand*{\DTMserbiandayordinal}[1]{%
+       \DTMifbool{serbian}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMserbiandatesep}%
+   \newcommand*{\DTMserbianyearordinal}[1]{%
+       \number#1\DTMserbiandatesep}%
+\newcommand*{\DTMserbiannoimonthname}{\DTMserbianlatnoimonthname}
+\newcommand*{\DTMserbiannoiMonthname}{\DTMserbianlatnoiMonthname}
+\newcommand*{\DTMserbianimonthname}{\DTMserbianlatimonthname}
+\newcommand*{\DTMserbianiMonthname}{\DTMserbianlatiMonthname}
 \DTMdefboolkey{serbian}{mapzone}[true]{}
 \DTMsetbool{serbian}{mapzone}{true}
 \DTMdefboolkey{serbian}{showdayofmonth}[true]{}
@@ -81,147 +118,209 @@
 \DTMsetbool{serbian}{showdayofmonth}{true}
 \DTMdefboolkey{serbian}{showyear}[true]{}
 \DTMsetbool{serbian}{showyear}{true}
-\DTMnewstyle
- {serbian}% label
- {% date style
-   \renewcommand*\DTMdisplaydate[4]{%
-     \DTMifbool{serbian}{showdayofmonth}
-     {\DTMserbianordinal{##3}\DTMserbiandaymonthsep}%
-     {}%
-     \DTMserbianmonthname{##2}%
-     \DTMifbool{serbian}{showyear}%
-     {%
-       \DTMserbianmonthyearsep
-       \number##1
-     }%
-     {}%
-   }%
-   \renewcommand*\DTMDisplaydate[4]{%
-     \DTMifbool{serbian}{showdayofmonth}
-     {%
-       \DTMserbianordinal{##3}\DTMserbiandaymonthsep
-       \DTMserbianmonthname{##2}%
-     }%
-     {%
-       \DTMserbianMonthname{##2}%
-     }%
-     \DTMifbool{serbian}{showyear}%
-     {%
-       \DTMserbianmonthyearsep
-       \number##1
-     }%
-     {}%
-   }%
- }%
- {% time style (use default)
-   \DTMsettimestyle{default}%
- }%
- {% zone style
-   \DTMresetzones
-   \DTMserbianzonemaps
-   \renewcommand*{\DTMdisplayzone}[2]{%
-     \DTMifbool{serbian}{mapzone}%
-     {\DTMusezonemapordefault{##1}{##2}}%
-     {%
-       \ifnum##1<0 \else+\fi\DTMtwodigits{##1}%
-       \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi
-     }%
-   }%
- }%
- {% full style
-   \renewcommand*{\DTMdisplay}[9]{%
-    \ifDTMshowdate
-     \DTMdisplaydate{##1}{##2}{##3}{##4}%
-     \DTMserbiandatetimesep
+\DTMnewstyle%
+{serbian}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMserbianweekdayname{##4}%
+        \DTMserbiandowdaysep%
+      \fi
     \fi
+    \DTMifbool{serbian}{showdayofmonth}
+      {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}%
+      {}%
+    \DTMifbool{serbian}{monthi}%
+      {\DTMserbianimonthname{##2}}%
+      {\DTMserbiannoimonthname{##2}}%
+    \DTMifbool{serbian}{showyear}%
+    {%
+      \DTMserbianmonthyearsep%
+      \DTMserbianyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMserbianWeekdayname{##4}%
+        \DTMserbiandowdaysep%
+      \fi
+    \fi
+    \DTMifbool{serbian}{showdayofmonth}
+    {%
+      \DTMserbiandayordinal{##3}\DTMserbiandaymonthsep%
+      \DTMifbool{serbian}{monthi}%
+        {\DTMserbianimonthname{##2}}%
+        {\DTMserbiannoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{serbian}{monthi}%
+        {\DTMserbianiMonthname{##2}}%
+        {\DTMserbiannoiMonthname{##2}}%
+    }%
+    \DTMifbool{serbian}{showyear}%
+    {%
+      \DTMserbianmonthyearsep%
+      \DTMserbianyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMserbiantimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMserbianzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{serbian}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiandatetimesep%
+    \fi
     \DTMdisplaytime{##5}{##6}{##7}%
-    \ifDTMshowzone
-     \DTMserbiantimezonesep
-     \DTMdisplayzone{##8}{##9}%
+    \ifDTMshowzone%
+      \DTMserbiantimezonesep%
+      \DTMdisplayzone{##8}{##9}%
     \fi
-   }%
-   \renewcommand*{\DTMDisplay}[9]{%
-    \ifDTMshowdate
-     \DTMDisplaydate{##1}{##2}{##3}{##4}%
-     \DTMserbiandatetimesep
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiandatetimesep%
     \fi
     \DTMdisplaytime{##5}{##6}{##7}%
-    \ifDTMshowzone
-     \DTMserbiantimezonesep
-     \DTMdisplayzone{##8}{##9}%
+    \ifDTMshowzone%
+      \DTMserbiantimezonesep%
+      \DTMdisplayzone{##8}{##9}%
     \fi
-   }%
- }%
-\DTMnewstyle
- {serbian-numeric}% label
- {% date style
-    \renewcommand*\DTMdisplaydate[4]{%
-      \DTMifbool{serbian}{showdayofmonth}%
-      {%
-        \number##3 % space intended
-        \DTMserbiandatesep
-      }%
-      {}%
-      \number##2 % space intended
-      \DTMifbool{serbian}{showyear}%
-      {%
-        \DTMserbiandatesep
-        \number##1 % space intended
-      }%
-      {}%
+  }%
+}%
+   \newcommand*{\DTMserbianmonthordinal}[1]{%
+       \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{serbian}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMserbianmonthordinal}[1]{%
+       \DTMifbool{serbian}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMserbiandatesep}%
+ \or%
+   \renewcommand*{\DTMserbianmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMserbianmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{serbian-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMserbianweekdayname{##4}%
+        \DTMserbiandowdaysep%
+      \fi
+    \fi
+    \DTMifbool{serbian}{showdayofmonth}%
+    {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}%
+    {}%
+    \DTMserbianmonthordinal{##2}%
+    \DTMifbool{serbian}{showyear}%
+    {%
+      \DTMserbianmonthyearsep%
+      \DTMserbianyearordinal{##1}%
     }%
-    \renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}%
- }%
- {% time style
-    \renewcommand*\DTMdisplaytime[3]{%
-      \number##1
-      \DTMserbiantimesep\DTMtwodigits{##2}%
-      \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMserbianWeekdayname{##4}%
+        \DTMserbiandowdaysep%
+      \fi
+    \fi
+    \DTMifbool{serbian}{showdayofmonth}%
+    {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}%
+    {}%
+    \DTMserbianmonthordinal{##2}%
+    \DTMifbool{serbian}{showyear}%
+    {%
+      \DTMserbianmonthyearsep%
+      \DTMserbianyearordinal{##1}%
     }%
- }%
- {% zone style
-   \DTMresetzones
-   \DTMserbianzonemaps
-   \renewcommand*{\DTMdisplayzone}[2]{%
-     \DTMifbool{serbian}{mapzone}%
-     {\DTMusezonemapordefault{##1}{##2}}%
-     {%
-       \ifnum##1<0 \else+\fi\DTMtwodigits{##1}%
-       \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi
-     }%
-   }%
- }%
- {% full style
-   \renewcommand*{\DTMdisplay}[9]{%
-    \ifDTMshowdate
-     \DTMdisplaydate{##1}{##2}{##3}{##4}%
-     \DTMserbiandatetimesep
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMserbiantimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMserbianzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{serbian}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiandatetimesep%
     \fi
     \DTMdisplaytime{##5}{##6}{##7}%
-    \ifDTMshowzone
-     \DTMserbiantimezonesep
-     \DTMdisplayzone{##8}{##9}%
+    \ifDTMshowzone%
+      \DTMserbiantimezonesep%
+      \DTMdisplayzone{##8}{##9}%
     \fi
-   }%
-   \renewcommand*{\DTMDisplay}{\DTMdisplay}%
- }
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
 \newcommand*{\DTMserbianzonemaps}{%
   \DTMdefzonemap{01}{00}{CET}%
   \DTMdefzonemap{02}{00}{CEST}%
 }
 
-\DTMifcaseregional
+\DTMifcaseregional%
 {}% do nothing
-{\DTMsetstyle{serbian}}
-{\DTMsetstyle{serbian-numeric}}
+{\DTMsetstyle{serbian}}%
+{\DTMsetstyle{serbian-numeric}}%
 \ifcsundef{date\CurrentTrackedDialect}
 {%
-  \ifundef\dateserbian
+  \ifundef\dateserbian%
   {% do nothing
   }%
   {%
     \def\dateserbian{%
-      \DTMifcaseregional
+      \DTMifcaseregional%
       {}% do nothing
       {\DTMsetstyle{serbian}}%
       {\DTMsetstyle{serbian-numeric}}%
@@ -230,7 +329,7 @@
 }%
 {%
   \csdef{date\CurrentTrackedDialect}{%
-    \DTMifcaseregional
+    \DTMifcaseregional%
     {}% do nothing
     {\DTMsetstyle{serbian}}%
     {\DTMsetstyle{serbian-numeric}}%

Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbianc.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbianc.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbianc.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,340 @@
+%%
+%% This is file `datetime2-serbianc.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-serbianc.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{serbianc}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMserbiancdowdaysep}{,\space}
+\newcommand*{\DTMserbiancdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+\newcommand*{\DTMserbiancmonthyearsep}{\space}
+\newcommand*{\DTMserbiancdatetimesep}{\space}
+\newcommand*{\DTMserbianctimezonesep}{\space}
+\newcommand*{\DTMserbiancdatesep}{.}
+\newcommand*{\DTMserbianctimesep}{.}
+\DTMdefkey{serbianc}{dowdaysep}%
+    {\renewcommand*{\DTMserbiancdowdaysep}{#1}}
+\DTMdefkey{serbianc}{daymonthsep}%
+    {\renewcommand*{\DTMserbiancdaymonthsep}{#1}}
+\DTMdefkey{serbianc}{monthyearsep}%
+    {\renewcommand*{\DTMserbiancmonthyearsep}{#1}}
+\DTMdefkey{serbianc}{datetimesep}%
+    {\renewcommand*{\DTMserbiancdatetimesep}{#1}}
+\DTMdefkey{serbianc}{timezonesep}%
+    {\renewcommand*{\DTMserbianctimezonesep}{#1}}
+\DTMdefkey{serbianc}{datesep}%
+    {\renewcommand*{\DTMserbiancdatesep}{#1}}
+\DTMdefkey{serbianc}{timesep}%
+    {\renewcommand*{\DTMserbianctimesep}{#1}}
+\newcommand*{\DTMserbiancweekdayname}%
+{\DTMserbiancyrekweekdayname}
+
+\newcommand*{\DTMserbiancWeekdayname}%
+    {\DTMserbiancyrekWeekdayname}
+\DTMdefchoicekey{serbianc}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMserbiancweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMserbiancWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMserbiancweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMserbiancWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+\DTMdefboolkey{serbianc}{monthi}[true]{}
+\DTMsetbool{serbianc}{monthi}{false}
+\DTMdefboolkey{serbianc}{leadingzero}[true]{}
+\DTMsetbool{serbianc}{leadingzero}{false}
+   \newcommand*{\DTMserbiancdayordinal}[1]{%
+       \DTMifbool{serbianc}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMserbiancdatesep}%
+   \newcommand*{\DTMserbiancyearordinal}[1]{%
+       \number#1\DTMserbiancdatesep}%
+\newcommand*{\DTMserbiancnoimonthname}{\DTMserbiancyrnoimonthname}
+\newcommand*{\DTMserbiancnoiMonthname}{\DTMserbiancyrnoiMonthname}
+\newcommand*{\DTMserbiancimonthname}{\DTMserbiancyrimonthname}
+\newcommand*{\DTMserbianciMonthname}{\DTMserbiancyriMonthname}
+\DTMdefboolkey{serbianc}{mapzone}[true]{}
+\DTMsetbool{serbianc}{mapzone}{true}
+\DTMdefboolkey{serbianc}{showdayofmonth}[true]{}
+\DTMsetbool{serbianc}{showdayofmonth}{true}
+\DTMdefboolkey{serbianc}{showyear}[true]{}
+\DTMsetbool{serbianc}{showyear}{true}
+\DTMnewstyle%
+{serbianc}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMserbiancweekdayname{##4}%
+        \DTMserbiancdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{serbianc}{showdayofmonth}
+      {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}%
+      {}%
+    \DTMifbool{serbianc}{monthi}%
+      {\DTMserbiancimonthname{##2}}%
+      {\DTMserbiancnoimonthname{##2}}%
+    \DTMifbool{serbianc}{showyear}%
+    {%
+      \DTMserbiancmonthyearsep%
+      \DTMserbiancyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMserbiancWeekdayname{##4}%
+        \DTMserbiancdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{serbianc}{showdayofmonth}
+    {%
+      \DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep%
+      \DTMifbool{serbianc}{monthi}%
+        {\DTMserbiancimonthname{##2}}%
+        {\DTMserbiancnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{serbianc}{monthi}%
+        {\DTMserbianciMonthname{##2}}%
+        {\DTMserbiancnoiMonthname{##2}}%
+    }%
+    \DTMifbool{serbianc}{showyear}%
+    {%
+      \DTMserbiancmonthyearsep%
+      \DTMserbiancyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMserbianctimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMserbianctimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMserbianczonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{serbianc}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMserbianctimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiancdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMserbianctimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiancdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMserbianctimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+   \newcommand*{\DTMserbiancmonthordinal}[1]{%
+       \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{serbianc}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMserbiancmonthordinal}[1]{%
+       \DTMifbool{serbianc}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMserbiancdatesep}%
+ \or%
+   \renewcommand*{\DTMserbiancmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMserbiancmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{serbianc-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMserbiancweekdayname{##4}%
+        \DTMserbiancdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{serbianc}{showdayofmonth}%
+    {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}%
+    {}%
+    \DTMserbiancmonthordinal{##2}%
+    \DTMifbool{serbianc}{showyear}%
+    {%
+      \DTMserbiancmonthyearsep%
+      \DTMserbiancyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMserbiancWeekdayname{##4}%
+        \DTMserbiancdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{serbianc}{showdayofmonth}%
+    {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}%
+    {}%
+    \DTMserbiancmonthordinal{##2}%
+    \DTMifbool{serbianc}{showyear}%
+    {%
+      \DTMserbiancmonthyearsep%
+      \DTMserbiancyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMserbianctimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMserbianctimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMserbianczonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{serbianc}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMserbianctimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMserbiancdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMserbianctimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+\newcommand*{\DTMserbianczonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{serbianc}}%
+{\DTMsetstyle{serbianc-numeric}}%
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{serbianc}}%
+      {\DTMsetstyle{serbianc-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{serbianc}}%
+    {\DTMsetstyle{serbianc-numeric}}%
+  }%
+}%
+\endinput
+%%
+%% End of file `datetime2-serbianc.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbianc.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-BA.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-BA.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-BA.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,340 @@
+%%
+%% This is file `datetime2-sr-Cyrl-BA.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-sr-Cyrl-BA.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{sr-Cyrl-BA}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMsrCyrlBAdowdaysep}{,\space}
+\newcommand*{\DTMsrCyrlBAdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+\newcommand*{\DTMsrCyrlBAmonthyearsep}{\space}
+\newcommand*{\DTMsrCyrlBAdatetimesep}{\space}
+\newcommand*{\DTMsrCyrlBAtimezonesep}{\space}
+\newcommand*{\DTMsrCyrlBAdatesep}{.}
+\newcommand*{\DTMsrCyrlBAtimesep}{.}
+\DTMdefkey{sr-Cyrl-BA}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAdowdaysep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAdaymonthsep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAmonthyearsep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{datetimesep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAdatetimesep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{timezonesep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAtimezonesep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{datesep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAdatesep}{#1}}
+\DTMdefkey{sr-Cyrl-BA}{timesep}%
+    {\renewcommand*{\DTMsr-Cyrl-BAtimesep}{#1}}
+\newcommand*{\DTMsrCyrlBAweekdayname}%
+{\DTMserbiancyrijweekdayname}
+
+\newcommand*{\DTMsrCyrlBAWeekdayname}%
+    {\DTMserbiancyrijWeekdayname}
+\DTMdefchoicekey{sr-Cyrl-BA}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrCyrlBAweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMsrCyrlBAWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrCyrlBAweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMsrCyrlBAWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+\DTMdefboolkey{sr-Cyrl-BA}{monthi}[true]{}
+\DTMsetbool{sr-Cyrl-BA}{monthi}{false}
+\DTMdefboolkey{sr-Cyrl-BA}{leadingzero}[true]{}
+\DTMsetbool{sr-Cyrl-BA}{leadingzero}{false}
+   \newcommand*{\DTMsrCyrlBAdayordinal}[1]{%
+       \DTMifbool{sr-Cyrl-BA}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrCyrlBAdatesep}%
+   \newcommand*{\DTMsrCyrlBAyearordinal}[1]{%
+       \number#1\DTMsrCyrlBAdatesep}%
+\newcommand*{\DTMsrCyrlBAnoimonthname}{\DTMserbiancyrnoimonthname}
+\newcommand*{\DTMsrCyrlBAnoiMonthname}{\DTMserbiancyrnoiMonthname}
+\newcommand*{\DTMsrCyrlBAimonthname}{\DTMserbiancyrimonthname}
+\newcommand*{\DTMsrCyrlBAiMonthname}{\DTMserbiancyriMonthname}
+\DTMdefboolkey{sr-Cyrl-BA}{mapzone}[true]{}
+\DTMsetbool{sr-Cyrl-BA}{mapzone}{true}
+\DTMdefboolkey{sr-Cyrl-BA}{showdayofmonth}[true]{}
+\DTMsetbool{sr-Cyrl-BA}{showdayofmonth}{true}
+\DTMdefboolkey{sr-Cyrl-BA}{showyear}[true]{}
+\DTMsetbool{sr-Cyrl-BA}{showyear}{true}
+\DTMnewstyle%
+{sr-Cyrl-BA}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlBAweekdayname{##4}%
+        \DTMsrCyrlBAdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-BA}{showdayofmonth}
+      {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Cyrl-BA}{monthi}%
+      {\DTMsrCyrlBAimonthname{##2}}%
+      {\DTMsrCyrlBAnoimonthname{##2}}%
+    \DTMifbool{sr-Cyrl-BA}{showyear}%
+    {%
+      \DTMsrCyrlBAmonthyearsep%
+      \DTMsrCyrlBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlBAWeekdayname{##4}%
+        \DTMsrCyrlBAdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-BA}{showdayofmonth}
+    {%
+      \DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep%
+      \DTMifbool{sr-Cyrl-BA}{monthi}%
+        {\DTMsrCyrlBAimonthname{##2}}%
+        {\DTMsrCyrlBAnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Cyrl-BA}{monthi}%
+        {\DTMsrCyrlBAiMonthname{##2}}%
+        {\DTMsrCyrlBAnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Cyrl-BA}{showyear}%
+    {%
+      \DTMsrCyrlBAmonthyearsep%
+      \DTMsrCyrlBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlBAtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlBAtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlBAzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-BA}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlBAtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+   \newcommand*{\DTMsrCyrlBAmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{sr-Cyrl-BA}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-BA}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlBAdatesep}%
+ \or%
+   \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{sr-Cyrl-BA-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlBAweekdayname{##4}%
+        \DTMsrCyrlBAdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-BA}{showdayofmonth}%
+    {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}%
+    {}%
+    \DTMsrCyrlBAmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-BA}{showyear}%
+    {%
+      \DTMsrCyrlBAmonthyearsep%
+      \DTMsrCyrlBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlBAWeekdayname{##4}%
+        \DTMsrCyrlBAdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-BA}{showdayofmonth}%
+    {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}%
+    {}%
+    \DTMsrCyrlBAmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-BA}{showyear}%
+    {%
+      \DTMsrCyrlBAmonthyearsep%
+      \DTMsrCyrlBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlBAtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlBAtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlBAzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-BA}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlBAtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+\newcommand*{\DTMsr-Cyrl-BAzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Cyrl-BA}}%
+{\DTMsetstyle{sr-Cyrl-BA-numeric}}%
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Cyrl-BA}}%
+      {\DTMsetstyle{sr-Cyrl-BA-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Cyrl-BA}}%
+    {\DTMsetstyle{sr-Cyrl-BA-numeric}}%
+  }%
+}%
+\endinput
+%%
+%% End of file `datetime2-sr-Cyrl-BA.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-BA.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-ME.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-ME.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-ME.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,340 @@
+%%
+%% This is file `datetime2-sr-Cyrl-ME.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-sr-Cyrl-ME.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{sr-Cyrl-ME}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMsrCyrlMEdowdaysep}{,\space}
+\newcommand*{\DTMsrCyrlMEdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+\newcommand*{\DTMsrCyrlMEmonthyearsep}{\space}
+\newcommand*{\DTMsrCyrlMEdatetimesep}{\space}
+\newcommand*{\DTMsrCyrlMEtimezonesep}{\space}
+\newcommand*{\DTMsrCyrlMEdatesep}{.}
+\newcommand*{\DTMsrCyrlMEtimesep}{.}
+\DTMdefkey{sr-Cyrl-ME}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEdowdaysep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEdaymonthsep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEmonthyearsep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{datetimesep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEdatetimesep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{timezonesep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEtimezonesep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{datesep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEdatesep}{#1}}
+\DTMdefkey{sr-Cyrl-ME}{timesep}%
+    {\renewcommand*{\DTMsr-Cyrl-MEtimesep}{#1}}
+\newcommand*{\DTMsrCyrlMEweekdayname}%
+{\DTMserbiancyrijweekdayname}
+
+\newcommand*{\DTMsrCyrlMEWeekdayname}%
+    {\DTMserbiancyrijWeekdayname}
+\DTMdefchoicekey{sr-Cyrl-ME}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrCyrlMEweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMsrCyrlMEWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrCyrlMEweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMsrCyrlMEWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+\DTMdefboolkey{sr-Cyrl-ME}{monthi}[true]{}
+\DTMsetbool{sr-Cyrl-ME}{monthi}{false}
+\DTMdefboolkey{sr-Cyrl-ME}{leadingzero}[true]{}
+\DTMsetbool{sr-Cyrl-ME}{leadingzero}{false}
+   \newcommand*{\DTMsrCyrlMEdayordinal}[1]{%
+       \DTMifbool{sr-Cyrl-ME}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrCyrlMEdatesep}%
+   \newcommand*{\DTMsrCyrlMEyearordinal}[1]{%
+       \number#1\DTMsrCyrlMEdatesep}%
+\newcommand*{\DTMsrCyrlMEnoimonthname}{\DTMserbiancyrnoimonthname}
+\newcommand*{\DTMsrCyrlMEnoiMonthname}{\DTMserbiancyrnoiMonthname}
+\newcommand*{\DTMsrCyrlMEimonthname}{\DTMserbiancyrimonthname}
+\newcommand*{\DTMsrCyrlMEiMonthname}{\DTMserbiancyriMonthname}
+\DTMdefboolkey{sr-Cyrl-ME}{mapzone}[true]{}
+\DTMsetbool{sr-Cyrl-ME}{mapzone}{true}
+\DTMdefboolkey{sr-Cyrl-ME}{showdayofmonth}[true]{}
+\DTMsetbool{sr-Cyrl-ME}{showdayofmonth}{true}
+\DTMdefboolkey{sr-Cyrl-ME}{showyear}[true]{}
+\DTMsetbool{sr-Cyrl-ME}{showyear}{true}
+\DTMnewstyle%
+{sr-Cyrl-ME}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlMEweekdayname{##4}%
+        \DTMsrCyrlMEdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-ME}{showdayofmonth}
+      {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Cyrl-ME}{monthi}%
+      {\DTMsrCyrlMEimonthname{##2}}%
+      {\DTMsrCyrlMEnoimonthname{##2}}%
+    \DTMifbool{sr-Cyrl-ME}{showyear}%
+    {%
+      \DTMsrCyrlMEmonthyearsep%
+      \DTMsrCyrlMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlMEWeekdayname{##4}%
+        \DTMsrCyrlMEdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-ME}{showdayofmonth}
+    {%
+      \DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep%
+      \DTMifbool{sr-Cyrl-ME}{monthi}%
+        {\DTMsrCyrlMEimonthname{##2}}%
+        {\DTMsrCyrlMEnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Cyrl-ME}{monthi}%
+        {\DTMsrCyrlMEiMonthname{##2}}%
+        {\DTMsrCyrlMEnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Cyrl-ME}{showyear}%
+    {%
+      \DTMsrCyrlMEmonthyearsep%
+      \DTMsrCyrlMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlMEtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlMEtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlMEzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-ME}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlMEtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+   \newcommand*{\DTMsrCyrlMEmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{sr-Cyrl-ME}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-ME}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlMEdatesep}%
+ \or%
+   \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{sr-Cyrl-ME-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlMEweekdayname{##4}%
+        \DTMsrCyrlMEdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-ME}{showdayofmonth}%
+    {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}%
+    {}%
+    \DTMsrCyrlMEmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-ME}{showyear}%
+    {%
+      \DTMsrCyrlMEmonthyearsep%
+      \DTMsrCyrlMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlMEWeekdayname{##4}%
+        \DTMsrCyrlMEdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-ME}{showdayofmonth}%
+    {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}%
+    {}%
+    \DTMsrCyrlMEmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-ME}{showyear}%
+    {%
+      \DTMsrCyrlMEmonthyearsep%
+      \DTMsrCyrlMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlMEtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlMEtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlMEzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-ME}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlMEtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+\newcommand*{\DTMsr-Cyrl-MEzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Cyrl-ME}}%
+{\DTMsetstyle{sr-Cyrl-ME-numeric}}%
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Cyrl-ME}}%
+      {\DTMsetstyle{sr-Cyrl-ME-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Cyrl-ME}}%
+    {\DTMsetstyle{sr-Cyrl-ME-numeric}}%
+  }%
+}%
+\endinput
+%%
+%% End of file `datetime2-sr-Cyrl-ME.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-ME.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-RS.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-RS.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-RS.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,340 @@
+%%
+%% This is file `datetime2-sr-Cyrl-RS.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-sr-Cyrl-RS.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{sr-Cyrl-RS}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMsrCyrlRSdowdaysep}{,\space}
+\newcommand*{\DTMsrCyrlRSdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+\newcommand*{\DTMsrCyrlRSmonthyearsep}{\space}
+\newcommand*{\DTMsrCyrlRSdatetimesep}{\space}
+\newcommand*{\DTMsrCyrlRStimezonesep}{\space}
+\newcommand*{\DTMsrCyrlRSdatesep}{.}
+\newcommand*{\DTMsrCyrlRStimesep}{.}
+\DTMdefkey{sr-Cyrl-RS}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSdowdaysep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSdaymonthsep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSmonthyearsep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{datetimesep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSdatetimesep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{timezonesep}%
+    {\renewcommand*{\DTMsr-Cyrl-RStimezonesep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{datesep}%
+    {\renewcommand*{\DTMsr-Cyrl-RSdatesep}{#1}}
+\DTMdefkey{sr-Cyrl-RS}{timesep}%
+    {\renewcommand*{\DTMsr-Cyrl-RStimesep}{#1}}
+\newcommand*{\DTMsrCyrlRSweekdayname}%
+{\DTMserbiancyrijweekdayname}
+
+\newcommand*{\DTMsrCyrlRSWeekdayname}%
+    {\DTMserbiancyrijWeekdayname}
+\DTMdefchoicekey{sr-Cyrl-RS}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrCyrlRSweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMsrCyrlRSWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrCyrlRSweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMsrCyrlRSWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+\DTMdefboolkey{sr-Cyrl-RS}{monthi}[true]{}
+\DTMsetbool{sr-Cyrl-RS}{monthi}{false}
+\DTMdefboolkey{sr-Cyrl-RS}{leadingzero}[true]{}
+\DTMsetbool{sr-Cyrl-RS}{leadingzero}{false}
+   \newcommand*{\DTMsrCyrlRSdayordinal}[1]{%
+       \DTMifbool{sr-Cyrl-RS}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrCyrlRSdatesep}%
+   \newcommand*{\DTMsrCyrlRSyearordinal}[1]{%
+       \number#1\DTMsrCyrlRSdatesep}%
+\newcommand*{\DTMsrCyrlRSnoimonthname}{\DTMserbiancyrnoimonthname}
+\newcommand*{\DTMsrCyrlRSnoiMonthname}{\DTMserbiancyrnoiMonthname}
+\newcommand*{\DTMsrCyrlRSimonthname}{\DTMserbiancyrimonthname}
+\newcommand*{\DTMsrCyrlRSiMonthname}{\DTMserbiancyriMonthname}
+\DTMdefboolkey{sr-Cyrl-RS}{mapzone}[true]{}
+\DTMsetbool{sr-Cyrl-RS}{mapzone}{true}
+\DTMdefboolkey{sr-Cyrl-RS}{showdayofmonth}[true]{}
+\DTMsetbool{sr-Cyrl-RS}{showdayofmonth}{true}
+\DTMdefboolkey{sr-Cyrl-RS}{showyear}[true]{}
+\DTMsetbool{sr-Cyrl-RS}{showyear}{true}
+\DTMnewstyle%
+{sr-Cyrl-RS}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlRSweekdayname{##4}%
+        \DTMsrCyrlRSdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-RS}{showdayofmonth}
+      {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Cyrl-RS}{monthi}%
+      {\DTMsrCyrlRSimonthname{##2}}%
+      {\DTMsrCyrlRSnoimonthname{##2}}%
+    \DTMifbool{sr-Cyrl-RS}{showyear}%
+    {%
+      \DTMsrCyrlRSmonthyearsep%
+      \DTMsrCyrlRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlRSWeekdayname{##4}%
+        \DTMsrCyrlRSdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-RS}{showdayofmonth}
+    {%
+      \DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep%
+      \DTMifbool{sr-Cyrl-RS}{monthi}%
+        {\DTMsrCyrlRSimonthname{##2}}%
+        {\DTMsrCyrlRSnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Cyrl-RS}{monthi}%
+        {\DTMsrCyrlRSiMonthname{##2}}%
+        {\DTMsrCyrlRSnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Cyrl-RS}{showyear}%
+    {%
+      \DTMsrCyrlRSmonthyearsep%
+      \DTMsrCyrlRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlRStimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlRStimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlRSzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-RS}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlRStimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+   \newcommand*{\DTMsrCyrlRSmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{sr-Cyrl-RS}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl-RS}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlRSdatesep}%
+ \or%
+   \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{sr-Cyrl-RS-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlRSweekdayname{##4}%
+        \DTMsrCyrlRSdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-RS}{showdayofmonth}%
+    {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}%
+    {}%
+    \DTMsrCyrlRSmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-RS}{showyear}%
+    {%
+      \DTMsrCyrlRSmonthyearsep%
+      \DTMsrCyrlRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlRSWeekdayname{##4}%
+        \DTMsrCyrlRSdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl-RS}{showdayofmonth}%
+    {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}%
+    {}%
+    \DTMsrCyrlRSmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl-RS}{showyear}%
+    {%
+      \DTMsrCyrlRSmonthyearsep%
+      \DTMsrCyrlRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrlRStimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrlRStimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlRSzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl-RS}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrlRStimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrlRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrlRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+\newcommand*{\DTMsr-Cyrl-RSzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Cyrl-RS}}%
+{\DTMsetstyle{sr-Cyrl-RS-numeric}}%
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Cyrl-RS}}%
+      {\DTMsetstyle{sr-Cyrl-RS-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Cyrl-RS}}%
+    {\DTMsetstyle{sr-Cyrl-RS-numeric}}%
+  }%
+}%
+\endinput
+%%
+%% End of file `datetime2-sr-Cyrl-RS.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-RS.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,340 @@
+%%
+%% This is file `datetime2-sr-Cyrl.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-sr-Cyrl.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{sr-Cyrl}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMsrCyrldowdaysep}{,\space}
+\newcommand*{\DTMsrCyrldaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+\newcommand*{\DTMsrCyrlmonthyearsep}{\space}
+\newcommand*{\DTMsrCyrldatetimesep}{\space}
+\newcommand*{\DTMsrCyrltimezonesep}{\space}
+\newcommand*{\DTMsrCyrldatesep}{.}
+\newcommand*{\DTMsrCyrltimesep}{.}
+\DTMdefkey{sr-Cyrl}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Cyrldowdaysep}{#1}}
+\DTMdefkey{sr-Cyrl}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Cyrldaymonthsep}{#1}}
+\DTMdefkey{sr-Cyrl}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Cyrlmonthyearsep}{#1}}
+\DTMdefkey{sr-Cyrl}{datetimesep}%
+    {\renewcommand*{\DTMsr-Cyrldatetimesep}{#1}}
+\DTMdefkey{sr-Cyrl}{timezonesep}%
+    {\renewcommand*{\DTMsr-Cyrltimezonesep}{#1}}
+\DTMdefkey{sr-Cyrl}{datesep}%
+    {\renewcommand*{\DTMsr-Cyrldatesep}{#1}}
+\DTMdefkey{sr-Cyrl}{timesep}%
+    {\renewcommand*{\DTMsr-Cyrltimesep}{#1}}
+\newcommand*{\DTMsrCyrlweekdayname}%
+{\DTMserbiancyrekweekdayname}
+
+\newcommand*{\DTMsrCyrlWeekdayname}%
+    {\DTMserbiancyrekWeekdayname}
+\DTMdefchoicekey{sr-Cyrl}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrCyrlweekdayname}%
+        {\DTMserbiancyrekweekdayname}%
+    \renewcommand*{\DTMsrCyrlWeekdayname}%
+        {\DTMserbiancyrekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrCyrlweekdayname}%
+        {\DTMserbiancyrijweekdayname}%
+    \renewcommand*{\DTMsrCyrlWeekdayname}
+        {\DTMserbiancyrijWeekdayname}%
+  \fi
+}
+\DTMdefboolkey{sr-Cyrl}{monthi}[true]{}
+\DTMsetbool{sr-Cyrl}{monthi}{false}
+\DTMdefboolkey{sr-Cyrl}{leadingzero}[true]{}
+\DTMsetbool{sr-Cyrl}{leadingzero}{false}
+   \newcommand*{\DTMsrCyrldayordinal}[1]{%
+       \DTMifbool{sr-Cyrl}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrCyrldatesep}%
+   \newcommand*{\DTMsrCyrlyearordinal}[1]{%
+       \number#1\DTMsrCyrldatesep}%
+\newcommand*{\DTMsrCyrlnoimonthname}{\DTMserbiancyrnoimonthname}
+\newcommand*{\DTMsrCyrlnoiMonthname}{\DTMserbiancyrnoiMonthname}
+\newcommand*{\DTMsrCyrlimonthname}{\DTMserbiancyrimonthname}
+\newcommand*{\DTMsrCyrliMonthname}{\DTMserbiancyriMonthname}
+\DTMdefboolkey{sr-Cyrl}{mapzone}[true]{}
+\DTMsetbool{sr-Cyrl}{mapzone}{true}
+\DTMdefboolkey{sr-Cyrl}{showdayofmonth}[true]{}
+\DTMsetbool{sr-Cyrl}{showdayofmonth}{true}
+\DTMdefboolkey{sr-Cyrl}{showyear}[true]{}
+\DTMsetbool{sr-Cyrl}{showyear}{true}
+\DTMnewstyle%
+{sr-Cyrl}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlweekdayname{##4}%
+        \DTMsrCyrldowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl}{showdayofmonth}
+      {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}%
+      {}%
+    \DTMifbool{sr-Cyrl}{monthi}%
+      {\DTMsrCyrlimonthname{##2}}%
+      {\DTMsrCyrlnoimonthname{##2}}%
+    \DTMifbool{sr-Cyrl}{showyear}%
+    {%
+      \DTMsrCyrlmonthyearsep%
+      \DTMsrCyrlyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlWeekdayname{##4}%
+        \DTMsrCyrldowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl}{showdayofmonth}
+    {%
+      \DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep%
+      \DTMifbool{sr-Cyrl}{monthi}%
+        {\DTMsrCyrlimonthname{##2}}%
+        {\DTMsrCyrlnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Cyrl}{monthi}%
+        {\DTMsrCyrliMonthname{##2}}%
+        {\DTMsrCyrlnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Cyrl}{showyear}%
+    {%
+      \DTMsrCyrlmonthyearsep%
+      \DTMsrCyrlyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrltimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrltimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrltimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrldatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrltimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrldatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrltimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+   \newcommand*{\DTMsrCyrlmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{sr-Cyrl}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrCyrlmonthordinal}[1]{%
+       \DTMifbool{sr-Cyrl}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrldatesep}%
+ \or%
+   \renewcommand*{\DTMsrCyrlmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrCyrlmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{sr-Cyrl-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlweekdayname{##4}%
+        \DTMsrCyrldowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl}{showdayofmonth}%
+    {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}%
+    {}%
+    \DTMsrCyrlmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl}{showyear}%
+    {%
+      \DTMsrCyrlmonthyearsep%
+      \DTMsrCyrlyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrCyrlWeekdayname{##4}%
+        \DTMsrCyrldowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Cyrl}{showdayofmonth}%
+    {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}%
+    {}%
+    \DTMsrCyrlmonthordinal{##2}%
+    \DTMifbool{sr-Cyrl}{showyear}%
+    {%
+      \DTMsrCyrlmonthyearsep%
+      \DTMsrCyrlyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrCyrltimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrCyrltimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrCyrlzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Cyrl}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrCyrltimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrCyrldatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrCyrltimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+\newcommand*{\DTMsr-Cyrlzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Cyrl}}%
+{\DTMsetstyle{sr-Cyrl-numeric}}%
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbianc%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbianc{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Cyrl}}%
+      {\DTMsetstyle{sr-Cyrl-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Cyrl}}%
+    {\DTMsetstyle{sr-Cyrl-numeric}}%
+  }%
+}%
+\endinput
+%%
+%% End of file `datetime2-sr-Cyrl.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-BA.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-BA.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-BA.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,340 @@
+%%
+%% This is file `datetime2-sr-Latn-BA.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-sr-Latn-BA.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{sr-Latn-BA}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMsrLatnBAdowdaysep}{,\space}
+\newcommand*{\DTMsrLatnBAdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+\newcommand*{\DTMsrLatnBAmonthyearsep}{\space}
+\newcommand*{\DTMsrLatnBAdatetimesep}{\space}
+\newcommand*{\DTMsrLatnBAtimezonesep}{\space}
+\newcommand*{\DTMsrLatnBAdatesep}{.}
+\newcommand*{\DTMsrLatnBAtimesep}{.}
+\DTMdefkey{sr-Latn-BA}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Latn-BAdowdaysep}{#1}}
+\DTMdefkey{sr-Latn-BA}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Latn-BAdaymonthsep}{#1}}
+\DTMdefkey{sr-Latn-BA}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Latn-BAmonthyearsep}{#1}}
+\DTMdefkey{sr-Latn-BA}{datetimesep}%
+    {\renewcommand*{\DTMsr-Latn-BAdatetimesep}{#1}}
+\DTMdefkey{sr-Latn-BA}{timezonesep}%
+    {\renewcommand*{\DTMsr-Latn-BAtimezonesep}{#1}}
+\DTMdefkey{sr-Latn-BA}{datesep}%
+    {\renewcommand*{\DTMsr-Latn-BAdatesep}{#1}}
+\DTMdefkey{sr-Latn-BA}{timesep}%
+    {\renewcommand*{\DTMsr-Latn-BAtimesep}{#1}}
+\newcommand*{\DTMsrLatnBAweekdayname}%
+{\DTMserbianlatijweekdayname}
+
+\newcommand*{\DTMsrLatnBAWeekdayname}%
+    {\DTMserbianlatijWeekdayname}
+\DTMdefchoicekey{sr-Latn-BA}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrLatnBAweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMsrLatnBAWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrLatnBAweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMsrLatnBAWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
+}
+\DTMdefboolkey{sr-Latn-BA}{monthi}[true]{}
+\DTMsetbool{sr-Latn-BA}{monthi}{false}
+\DTMdefboolkey{sr-Latn-BA}{leadingzero}[true]{}
+\DTMsetbool{sr-Latn-BA}{leadingzero}{false}
+   \newcommand*{\DTMsrLatnBAdayordinal}[1]{%
+       \DTMifbool{sr-Latn-BA}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrLatnBAdatesep}%
+   \newcommand*{\DTMsrLatnBAyearordinal}[1]{%
+       \number#1\DTMsrLatnBAdatesep}%
+\newcommand*{\DTMsrLatnBAnoimonthname}{\DTMserbianlatnoimonthname}
+\newcommand*{\DTMsrLatnBAnoiMonthname}{\DTMserbianlatnoiMonthname}
+\newcommand*{\DTMsrLatnBAimonthname}{\DTMserbianlatimonthname}
+\newcommand*{\DTMsrLatnBAiMonthname}{\DTMserbianlatiMonthname}
+\DTMdefboolkey{sr-Latn-BA}{mapzone}[true]{}
+\DTMsetbool{sr-Latn-BA}{mapzone}{true}
+\DTMdefboolkey{sr-Latn-BA}{showdayofmonth}[true]{}
+\DTMsetbool{sr-Latn-BA}{showdayofmonth}{true}
+\DTMdefboolkey{sr-Latn-BA}{showyear}[true]{}
+\DTMsetbool{sr-Latn-BA}{showyear}{true}
+\DTMnewstyle%
+{sr-Latn-BA}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnBAweekdayname{##4}%
+        \DTMsrLatnBAdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-BA}{showdayofmonth}
+      {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Latn-BA}{monthi}%
+      {\DTMsrLatnBAimonthname{##2}}%
+      {\DTMsrLatnBAnoimonthname{##2}}%
+    \DTMifbool{sr-Latn-BA}{showyear}%
+    {%
+      \DTMsrLatnBAmonthyearsep%
+      \DTMsrLatnBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnBAWeekdayname{##4}%
+        \DTMsrLatnBAdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-BA}{showdayofmonth}
+    {%
+      \DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep%
+      \DTMifbool{sr-Latn-BA}{monthi}%
+        {\DTMsrLatnBAimonthname{##2}}%
+        {\DTMsrLatnBAnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Latn-BA}{monthi}%
+        {\DTMsrLatnBAiMonthname{##2}}%
+        {\DTMsrLatnBAnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Latn-BA}{showyear}%
+    {%
+      \DTMsrLatnBAmonthyearsep%
+      \DTMsrLatnBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnBAtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnBAtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnBAzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-BA}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnBAtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+   \newcommand*{\DTMsrLatnBAmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{sr-Latn-BA}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-BA}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnBAdatesep}%
+ \or%
+   \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{sr-Latn-BA-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnBAweekdayname{##4}%
+        \DTMsrLatnBAdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-BA}{showdayofmonth}%
+    {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}%
+    {}%
+    \DTMsrLatnBAmonthordinal{##2}%
+    \DTMifbool{sr-Latn-BA}{showyear}%
+    {%
+      \DTMsrLatnBAmonthyearsep%
+      \DTMsrLatnBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnBAWeekdayname{##4}%
+        \DTMsrLatnBAdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-BA}{showdayofmonth}%
+    {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}%
+    {}%
+    \DTMsrLatnBAmonthordinal{##2}%
+    \DTMifbool{sr-Latn-BA}{showyear}%
+    {%
+      \DTMsrLatnBAmonthyearsep%
+      \DTMsrLatnBAyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnBAtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnBAtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnBAzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-BA}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnBAtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnBAdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnBAtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+\newcommand*{\DTMsr-Latn-BAzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Latn-BA}}%
+{\DTMsetstyle{sr-Latn-BA-numeric}}%
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbian%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbian{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Latn-BA}}%
+      {\DTMsetstyle{sr-Latn-BA-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Latn-BA}}%
+    {\DTMsetstyle{sr-Latn-BA-numeric}}%
+  }%
+}%
+\endinput
+%%
+%% End of file `datetime2-sr-Latn-BA.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-BA.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-ME.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-ME.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-ME.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,340 @@
+%%
+%% This is file `datetime2-sr-Latn-ME.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-sr-Latn-ME.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{sr-Latn-ME}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMsrLatnMEdowdaysep}{,\space}
+\newcommand*{\DTMsrLatnMEdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+\newcommand*{\DTMsrLatnMEmonthyearsep}{\space}
+\newcommand*{\DTMsrLatnMEdatetimesep}{\space}
+\newcommand*{\DTMsrLatnMEtimezonesep}{\space}
+\newcommand*{\DTMsrLatnMEdatesep}{.}
+\newcommand*{\DTMsrLatnMEtimesep}{.}
+\DTMdefkey{sr-Latn-ME}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Latn-MEdowdaysep}{#1}}
+\DTMdefkey{sr-Latn-ME}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Latn-MEdaymonthsep}{#1}}
+\DTMdefkey{sr-Latn-ME}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Latn-MEmonthyearsep}{#1}}
+\DTMdefkey{sr-Latn-ME}{datetimesep}%
+    {\renewcommand*{\DTMsr-Latn-MEdatetimesep}{#1}}
+\DTMdefkey{sr-Latn-ME}{timezonesep}%
+    {\renewcommand*{\DTMsr-Latn-MEtimezonesep}{#1}}
+\DTMdefkey{sr-Latn-ME}{datesep}%
+    {\renewcommand*{\DTMsr-Latn-MEdatesep}{#1}}
+\DTMdefkey{sr-Latn-ME}{timesep}%
+    {\renewcommand*{\DTMsr-Latn-MEtimesep}{#1}}
+\newcommand*{\DTMsrLatnMEweekdayname}%
+{\DTMserbianlatijweekdayname}
+
+\newcommand*{\DTMsrLatnMEWeekdayname}%
+    {\DTMserbianlatijWeekdayname}
+\DTMdefchoicekey{sr-Latn-ME}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrLatnMEweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMsrLatnMEWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrLatnMEweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMsrLatnMEWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
+}
+\DTMdefboolkey{sr-Latn-ME}{monthi}[true]{}
+\DTMsetbool{sr-Latn-ME}{monthi}{false}
+\DTMdefboolkey{sr-Latn-ME}{leadingzero}[true]{}
+\DTMsetbool{sr-Latn-ME}{leadingzero}{false}
+   \newcommand*{\DTMsrLatnMEdayordinal}[1]{%
+       \DTMifbool{sr-Latn-ME}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrLatnMEdatesep}%
+   \newcommand*{\DTMsrLatnMEyearordinal}[1]{%
+       \number#1\DTMsrLatnMEdatesep}%
+\newcommand*{\DTMsrLatnMEnoimonthname}{\DTMserbianlatnoimonthname}
+\newcommand*{\DTMsrLatnMEnoiMonthname}{\DTMserbianlatnoiMonthname}
+\newcommand*{\DTMsrLatnMEimonthname}{\DTMserbianlatimonthname}
+\newcommand*{\DTMsrLatnMEiMonthname}{\DTMserbianlatiMonthname}
+\DTMdefboolkey{sr-Latn-ME}{mapzone}[true]{}
+\DTMsetbool{sr-Latn-ME}{mapzone}{true}
+\DTMdefboolkey{sr-Latn-ME}{showdayofmonth}[true]{}
+\DTMsetbool{sr-Latn-ME}{showdayofmonth}{true}
+\DTMdefboolkey{sr-Latn-ME}{showyear}[true]{}
+\DTMsetbool{sr-Latn-ME}{showyear}{true}
+\DTMnewstyle%
+{sr-Latn-ME}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnMEweekdayname{##4}%
+        \DTMsrLatnMEdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-ME}{showdayofmonth}
+      {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Latn-ME}{monthi}%
+      {\DTMsrLatnMEimonthname{##2}}%
+      {\DTMsrLatnMEnoimonthname{##2}}%
+    \DTMifbool{sr-Latn-ME}{showyear}%
+    {%
+      \DTMsrLatnMEmonthyearsep%
+      \DTMsrLatnMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnMEWeekdayname{##4}%
+        \DTMsrLatnMEdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-ME}{showdayofmonth}
+    {%
+      \DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep%
+      \DTMifbool{sr-Latn-ME}{monthi}%
+        {\DTMsrLatnMEimonthname{##2}}%
+        {\DTMsrLatnMEnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Latn-ME}{monthi}%
+        {\DTMsrLatnMEiMonthname{##2}}%
+        {\DTMsrLatnMEnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Latn-ME}{showyear}%
+    {%
+      \DTMsrLatnMEmonthyearsep%
+      \DTMsrLatnMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnMEtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnMEtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnMEzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-ME}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnMEtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+   \newcommand*{\DTMsrLatnMEmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{sr-Latn-ME}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-ME}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnMEdatesep}%
+ \or%
+   \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{sr-Latn-ME-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnMEweekdayname{##4}%
+        \DTMsrLatnMEdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-ME}{showdayofmonth}%
+    {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}%
+    {}%
+    \DTMsrLatnMEmonthordinal{##2}%
+    \DTMifbool{sr-Latn-ME}{showyear}%
+    {%
+      \DTMsrLatnMEmonthyearsep%
+      \DTMsrLatnMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnMEWeekdayname{##4}%
+        \DTMsrLatnMEdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-ME}{showdayofmonth}%
+    {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}%
+    {}%
+    \DTMsrLatnMEmonthordinal{##2}%
+    \DTMifbool{sr-Latn-ME}{showyear}%
+    {%
+      \DTMsrLatnMEmonthyearsep%
+      \DTMsrLatnMEyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnMEtimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnMEtimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnMEzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-ME}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnMEtimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnMEdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnMEtimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+\newcommand*{\DTMsr-Latn-MEzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Latn-ME}}%
+{\DTMsetstyle{sr-Latn-ME-numeric}}%
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbian%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbian{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Latn-ME}}%
+      {\DTMsetstyle{sr-Latn-ME-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Latn-ME}}%
+    {\DTMsetstyle{sr-Latn-ME-numeric}}%
+  }%
+}%
+\endinput
+%%
+%% End of file `datetime2-sr-Latn-ME.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-ME.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-RS.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-RS.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-RS.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,340 @@
+%%
+%% This is file `datetime2-sr-Latn-RS.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-sr-Latn-RS.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{sr-Latn-RS}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMsrLatnRSdowdaysep}{,\space}
+\newcommand*{\DTMsrLatnRSdaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+\newcommand*{\DTMsrLatnRSmonthyearsep}{\space}
+\newcommand*{\DTMsrLatnRSdatetimesep}{\space}
+\newcommand*{\DTMsrLatnRStimezonesep}{\space}
+\newcommand*{\DTMsrLatnRSdatesep}{.}
+\newcommand*{\DTMsrLatnRStimesep}{.}
+\DTMdefkey{sr-Latn-RS}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Latn-RSdowdaysep}{#1}}
+\DTMdefkey{sr-Latn-RS}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Latn-RSdaymonthsep}{#1}}
+\DTMdefkey{sr-Latn-RS}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Latn-RSmonthyearsep}{#1}}
+\DTMdefkey{sr-Latn-RS}{datetimesep}%
+    {\renewcommand*{\DTMsr-Latn-RSdatetimesep}{#1}}
+\DTMdefkey{sr-Latn-RS}{timezonesep}%
+    {\renewcommand*{\DTMsr-Latn-RStimezonesep}{#1}}
+\DTMdefkey{sr-Latn-RS}{datesep}%
+    {\renewcommand*{\DTMsr-Latn-RSdatesep}{#1}}
+\DTMdefkey{sr-Latn-RS}{timesep}%
+    {\renewcommand*{\DTMsr-Latn-RStimesep}{#1}}
+\newcommand*{\DTMsrLatnRSweekdayname}%
+{\DTMserbianlatekweekdayname}
+
+\newcommand*{\DTMsrLatnRSWeekdayname}%
+    {\DTMserbianlatekWeekdayname}
+\DTMdefchoicekey{sr-Latn-RS}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrLatnRSweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMsrLatnRSWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrLatnRSweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMsrLatnRSWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
+}
+\DTMdefboolkey{sr-Latn-RS}{monthi}[true]{}
+\DTMsetbool{sr-Latn-RS}{monthi}{false}
+\DTMdefboolkey{sr-Latn-RS}{leadingzero}[true]{}
+\DTMsetbool{sr-Latn-RS}{leadingzero}{false}
+   \newcommand*{\DTMsrLatnRSdayordinal}[1]{%
+       \DTMifbool{sr-Latn-RS}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrLatnRSdatesep}%
+   \newcommand*{\DTMsrLatnRSyearordinal}[1]{%
+       \number#1\DTMsrLatnRSdatesep}%
+\newcommand*{\DTMsrLatnRSnoimonthname}{\DTMserbianlatnoimonthname}
+\newcommand*{\DTMsrLatnRSnoiMonthname}{\DTMserbianlatnoiMonthname}
+\newcommand*{\DTMsrLatnRSimonthname}{\DTMserbianlatimonthname}
+\newcommand*{\DTMsrLatnRSiMonthname}{\DTMserbianlatiMonthname}
+\DTMdefboolkey{sr-Latn-RS}{mapzone}[true]{}
+\DTMsetbool{sr-Latn-RS}{mapzone}{true}
+\DTMdefboolkey{sr-Latn-RS}{showdayofmonth}[true]{}
+\DTMsetbool{sr-Latn-RS}{showdayofmonth}{true}
+\DTMdefboolkey{sr-Latn-RS}{showyear}[true]{}
+\DTMsetbool{sr-Latn-RS}{showyear}{true}
+\DTMnewstyle%
+{sr-Latn-RS}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnRSweekdayname{##4}%
+        \DTMsrLatnRSdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-RS}{showdayofmonth}
+      {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}%
+      {}%
+    \DTMifbool{sr-Latn-RS}{monthi}%
+      {\DTMsrLatnRSimonthname{##2}}%
+      {\DTMsrLatnRSnoimonthname{##2}}%
+    \DTMifbool{sr-Latn-RS}{showyear}%
+    {%
+      \DTMsrLatnRSmonthyearsep%
+      \DTMsrLatnRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnRSWeekdayname{##4}%
+        \DTMsrLatnRSdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-RS}{showdayofmonth}
+    {%
+      \DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep%
+      \DTMifbool{sr-Latn-RS}{monthi}%
+        {\DTMsrLatnRSimonthname{##2}}%
+        {\DTMsrLatnRSnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Latn-RS}{monthi}%
+        {\DTMsrLatnRSiMonthname{##2}}%
+        {\DTMsrLatnRSnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Latn-RS}{showyear}%
+    {%
+      \DTMsrLatnRSmonthyearsep%
+      \DTMsrLatnRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnRStimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnRStimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnRSzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-RS}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnRStimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+   \newcommand*{\DTMsrLatnRSmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{sr-Latn-RS}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{%
+       \DTMifbool{sr-Latn-RS}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnRSdatesep}%
+ \or%
+   \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{sr-Latn-RS-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnRSweekdayname{##4}%
+        \DTMsrLatnRSdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-RS}{showdayofmonth}%
+    {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}%
+    {}%
+    \DTMsrLatnRSmonthordinal{##2}%
+    \DTMifbool{sr-Latn-RS}{showyear}%
+    {%
+      \DTMsrLatnRSmonthyearsep%
+      \DTMsrLatnRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnRSWeekdayname{##4}%
+        \DTMsrLatnRSdowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn-RS}{showdayofmonth}%
+    {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}%
+    {}%
+    \DTMsrLatnRSmonthordinal{##2}%
+    \DTMifbool{sr-Latn-RS}{showyear}%
+    {%
+      \DTMsrLatnRSmonthyearsep%
+      \DTMsrLatnRSyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatnRStimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatnRStimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnRSzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn-RS}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatnRStimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatnRSdatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatnRStimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+\newcommand*{\DTMsr-Latn-RSzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Latn-RS}}%
+{\DTMsetstyle{sr-Latn-RS-numeric}}%
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbian%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbian{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Latn-RS}}%
+      {\DTMsetstyle{sr-Latn-RS-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Latn-RS}}%
+    {\DTMsetstyle{sr-Latn-RS-numeric}}%
+  }%
+}%
+\endinput
+%%
+%% End of file `datetime2-sr-Latn-RS.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-RS.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn.ldf	2019-11-08 21:40:42 UTC (rev 52695)
@@ -0,0 +1,340 @@
+%%
+%% This is file `datetime2-sr-Latn.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% datetime2-serbian.dtx  (with options: `datetime2-sr-Latn.ldf,package')
+%% 
+%%  datetime2-serbian.dtx
+%%  Copyright 2019 Andrej Radović
+%%  Copyright 2019 Nicola Talbot
+%% 
+%%  This work may be distributed and/or modified under the
+%%  conditions of the LaTeX Project Public License, either version 1.3
+%%  of this license of (at your option) any later version.
+%%  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%%  and version 1.3 or later is part of all distributions of LaTeX
+%%  version 2005/12/01 or later.
+%% 
+%%  This work has the LPPL maintenance status `maintained'.
+%% 
+%%  The Current Maintainer of this work is Andrej Radović.
+%% 
+%%  This work consists of the files datetime2-serbian.dtx and
+%%  datetime2-serbian.ins and the derived files are as follows:
+%%    datetime2-serbian-base.ldf
+%%    datetime2-serbian-base-utf8.ldf
+%%    datetime2-serbian-base-ascii.ldf
+%%    datetime2-serbian.ldf
+%%    datetime2-sr-Latn.ldf
+%%    datetime2-sr-Latn-RS.ldf
+%%    datetime2-sr-Latn-ME.ldf
+%%    datetime2-sr-Latn-BA.ldf
+%%    datetime2-serbianc.ldf
+%%    datetime2-sr-Cyrl.ldf
+%%    datetime2-sr-Cyrl-RS.ldf
+%%    datetime2-sr-Cyrl-ME.ldf
+%%    datetime2-sr-Cyrl-BA.ldf
+%% 
+%% 
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+\ProvidesDateTimeModule{sr-Latn}[2019/11/07 v2.0]
+\RequireDateTimeModule{serbian-base}
+\newcommand*{\DTMsrLatndowdaysep}{,\space}
+\newcommand*{\DTMsrLatndaymonthsep}{%
+  \DTMtexorpdfstring{\protect~}{\space}%
+}
+\newcommand*{\DTMsrLatnmonthyearsep}{\space}
+\newcommand*{\DTMsrLatndatetimesep}{\space}
+\newcommand*{\DTMsrLatntimezonesep}{\space}
+\newcommand*{\DTMsrLatndatesep}{.}
+\newcommand*{\DTMsrLatntimesep}{.}
+\DTMdefkey{sr-Latn}{dowdaysep}%
+    {\renewcommand*{\DTMsr-Latndowdaysep}{#1}}
+\DTMdefkey{sr-Latn}{daymonthsep}%
+    {\renewcommand*{\DTMsr-Latndaymonthsep}{#1}}
+\DTMdefkey{sr-Latn}{monthyearsep}%
+    {\renewcommand*{\DTMsr-Latnmonthyearsep}{#1}}
+\DTMdefkey{sr-Latn}{datetimesep}%
+    {\renewcommand*{\DTMsr-Latndatetimesep}{#1}}
+\DTMdefkey{sr-Latn}{timezonesep}%
+    {\renewcommand*{\DTMsr-Latntimezonesep}{#1}}
+\DTMdefkey{sr-Latn}{datesep}%
+    {\renewcommand*{\DTMsr-Latndatesep}{#1}}
+\DTMdefkey{sr-Latn}{timesep}%
+    {\renewcommand*{\DTMsr-Latntimesep}{#1}}
+\newcommand*{\DTMsrLatnweekdayname}%
+{\DTMserbianlatekweekdayname}
+
+\newcommand*{\DTMsrLatnWeekdayname}%
+    {\DTMserbianlatekWeekdayname}
+\DTMdefchoicekey{sr-Latn}%
+    {pronunciation}[\@dtm at val\@dtm at nr]{ekavian,ijekavian}{%
+  \ifcase\@dtm at nr\relax
+    \renewcommand*{\DTMsrLatnweekdayname}%
+        {\DTMserbianlatekweekdayname}%
+    \renewcommand*{\DTMsrLatnWeekdayname}%
+        {\DTMserbianlatekWeekdayname}%
+  \or%
+    \renewcommand*{\DTMsrLatnweekdayname}%
+        {\DTMserbianlatijweekdayname}%
+    \renewcommand*{\DTMsrLatnWeekdayname}
+        {\DTMserbianlatijWeekdayname}%
+  \fi
+}
+\DTMdefboolkey{sr-Latn}{monthi}[true]{}
+\DTMsetbool{sr-Latn}{monthi}{false}
+\DTMdefboolkey{sr-Latn}{leadingzero}[true]{}
+\DTMsetbool{sr-Latn}{leadingzero}{false}
+   \newcommand*{\DTMsrLatndayordinal}[1]{%
+       \DTMifbool{sr-Latn}{leadingzero}%
+       {\DTMtwodigits{#1}}%
+       {\number#1}\DTMsrLatndatesep}%
+   \newcommand*{\DTMsrLatnyearordinal}[1]{%
+       \number#1\DTMsrLatndatesep}%
+\newcommand*{\DTMsrLatnnoimonthname}{\DTMserbianlatnoimonthname}
+\newcommand*{\DTMsrLatnnoiMonthname}{\DTMserbianlatnoiMonthname}
+\newcommand*{\DTMsrLatnimonthname}{\DTMserbianlatimonthname}
+\newcommand*{\DTMsrLatniMonthname}{\DTMserbianlatiMonthname}
+\DTMdefboolkey{sr-Latn}{mapzone}[true]{}
+\DTMsetbool{sr-Latn}{mapzone}{true}
+\DTMdefboolkey{sr-Latn}{showdayofmonth}[true]{}
+\DTMsetbool{sr-Latn}{showdayofmonth}{true}
+\DTMdefboolkey{sr-Latn}{showyear}[true]{}
+\DTMsetbool{sr-Latn}{showyear}{true}
+\DTMnewstyle%
+{sr-Latn}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnweekdayname{##4}%
+        \DTMsrLatndowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn}{showdayofmonth}
+      {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}%
+      {}%
+    \DTMifbool{sr-Latn}{monthi}%
+      {\DTMsrLatnimonthname{##2}}%
+      {\DTMsrLatnnoimonthname{##2}}%
+    \DTMifbool{sr-Latn}{showyear}%
+    {%
+      \DTMsrLatnmonthyearsep%
+      \DTMsrLatnyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnWeekdayname{##4}%
+        \DTMsrLatndowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn}{showdayofmonth}
+    {%
+      \DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep%
+      \DTMifbool{sr-Latn}{monthi}%
+        {\DTMsrLatnimonthname{##2}}%
+        {\DTMsrLatnnoimonthname{##2}}%
+    }%
+    {%
+      \DTMifbool{sr-Latn}{monthi}%
+        {\DTMsrLatniMonthname{##2}}%
+        {\DTMsrLatnnoiMonthname{##2}}%
+    }%
+    \DTMifbool{sr-Latn}{showyear}%
+    {%
+      \DTMsrLatnmonthyearsep%
+      \DTMsrLatnyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatntimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatntimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatntimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatndatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatntimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMDisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatndatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatntimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+}%
+   \newcommand*{\DTMsrLatnmonthordinal}[1]{%
+       \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}%
+\DTMdefchoicekey{sr-Latn}{monthord}%
+[\@dtm at val\@dtm at nr]{arabic,roman,romanlsc}{%
+ \ifcase\@dtm at nr\relax
+   \renewcommand*{\DTMsrLatnmonthordinal}[1]{%
+       \DTMifbool{sr-Latn}{leadingzero}%
+         {\DTMtwodigits{##1}}{\number##1}\DTMsrLatndatesep}%
+ \or%
+   \renewcommand*{\DTMsrLatnmonthordinal}[1]{%
+    \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}%
+    {serbianordinalROMAN{##1}}}%
+ \or%
+   \renewcommand*{\DTMsrLatnmonthordinal}[1]{%
+    \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}%
+    {serbianordinalROMAN{##1}}}%
+ \fi
+}
+\DTMnewstyle%
+{sr-Latn-numeric}% label
+{% date style
+  \renewcommand*\DTMdisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnweekdayname{##4}%
+        \DTMsrLatndowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn}{showdayofmonth}%
+    {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}%
+    {}%
+    \DTMsrLatnmonthordinal{##2}%
+    \DTMifbool{sr-Latn}{showyear}%
+    {%
+      \DTMsrLatnmonthyearsep%
+      \DTMsrLatnyearordinal{##1}%
+    }%
+    {}%
+  }%
+  \renewcommand*\DTMDisplaydate[4]{%
+    \ifDTMshowdow%
+      \ifnum##4>-1
+        \DTMsrLatnWeekdayname{##4}%
+        \DTMsrLatndowdaysep%
+      \fi
+    \fi
+    \DTMifbool{sr-Latn}{showdayofmonth}%
+    {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}%
+    {}%
+    \DTMsrLatnmonthordinal{##2}%
+    \DTMifbool{sr-Latn}{showyear}%
+    {%
+      \DTMsrLatnmonthyearsep%
+      \DTMsrLatnyearordinal{##1}%
+    }%
+    {}%
+  }%
+}%
+{% time style
+  \renewcommand*\DTMdisplaytime[3]{%
+    \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{##1}}{\number##1}%
+    \DTMsrLatntimesep\DTMtwodigits{##2}%
+    \ifDTMshowseconds\DTMsrLatntimesep\DTMtwodigits{##3}\fi
+  }%
+}%
+{% zone style
+  \DTMresetzones%
+  \DTMsrLatnzonemaps%
+  \renewcommand*{\DTMdisplayzone}[2]{%
+    \DTMifbool{sr-Latn}{mapzone}%
+    {\DTMusezonemapordefault{##1}{##2}}%
+    {%
+      \ifnum##1<0
+      \else+\fi\DTMtwodigits{##1}%
+      \ifDTMshowzoneminutes\DTMsrLatntimesep\DTMtwodigits{##2}\fi
+    }%
+  }%
+}%
+{% full style
+  \renewcommand*{\DTMdisplay}[9]{%
+    \ifDTMshowdate%
+      \DTMdisplaydate{##1}{##2}{##3}{##4}%
+      \DTMsrLatndatetimesep%
+    \fi
+    \DTMdisplaytime{##5}{##6}{##7}%
+    \ifDTMshowzone%
+      \DTMsrLatntimezonesep%
+      \DTMdisplayzone{##8}{##9}%
+    \fi
+  }%
+  \renewcommand*{\DTMDisplay}{\DTMdisplay}%
+}
+\newcommand*{\DTMsr-Latnzonemaps}{%
+  \DTMdefzonemap{01}{00}{CET}%
+  \DTMdefzonemap{02}{00}{CEST}%
+}
+
+\DTMifcaseregional%
+{}% do nothing
+{\DTMsetstyle{sr-Latn}}%
+{\DTMsetstyle{sr-Latn-numeric}}%
+\ifcsundef{date\CurrentTrackedDialect}
+{%
+  \ifundef\dateserbian%
+  {% do nothing
+  }%
+  {%
+    \def\dateserbian{%
+      \DTMifcaseregional%
+      {}% do nothing
+      {\DTMsetstyle{sr-Latn}}%
+      {\DTMsetstyle{sr-Latn-numeric}}%
+    }%
+  }%
+}%
+{%
+  \csdef{date\CurrentTrackedDialect}{%
+    \DTMifcaseregional%
+    {}% do nothing
+    {\DTMsetstyle{sr-Latn}}%
+    {\DTMsetstyle{sr-Latn-numeric}}%
+  }%
+}%
+\endinput
+%%
+%% End of file `datetime2-sr-Latn.ldf'.


Property changes on: trunk/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property


More information about the tex-live-commits mailing list