% \CheckSum{2229}
% \iffalse meta-comment
% ======================================================================
% scrkernel-language.dtx
% Copyright (c) Markus Kohm, 2002-2019
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3c of the license.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX 
% version 2005/12/01 or later and of this work.
%
% This work has the LPPL maintenance status "author-maintained".
%
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrkernel-language.dtx
% Copyright (c) Markus Kohm, 2002-2019
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
% Die neuste Version dieser Lizenz ist
%   http://www.latex-project.org/lppl.txt
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
% Version 2005/12/01 oder spaeter und dieses Werks.
%
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
% (allein durch den Autor verwaltet).
%
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
% 
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
% \fi
%
% \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         \~}
%
% \iffalse
%%% From File: $Id: scrkernel-language.dtx 3265 2019-10-13 17:58:25Z kohm $
%<option>%%%            (run: option)
%<body>%%%            (run: body)
%<*dtx>
% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
  \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
  \filedate$Date: 2019-10-13 19:58:25 +0200 (Sun, 13 Oct 2019) $
  \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
  \filerevision$Revision: 3265 $
  \edef\reserved@a{%
    \noexpand\endgroup
    \noexpand\ProvidesFile{scrkernel-language.dtx}
                          [\filedate\space\filerevision\space
                          KOMA-Script (language)]%
  }%
\reserved@a
% \iffalse
\documentclass[parskip=half-]{scrdoc}
\usepackage[english,ngerman]{babel}
\CodelineIndex
\RecordChanges
\GetFileInfo{scrkernel-language.dtx}
\title{\KOMAScript{} \partname\ \texttt{\filename}%
  \footnote{Dies ist Version \fileversion\ von Datei
    \texttt{\filename}.}}
\date{\filedate}
\author{Markus Kohm}

\begin{document}
  \maketitle
  \tableofcontents
  \DocInput{\filename}
\end{document}
%</dtx>
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v2.95}{2002/07/01}{%
%   erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
%
% \section{Sprachabhängigkeiten}
%
% Aus verschiedenen Gründen ist es nicht so einfach, neue,
% sprachabhängige Begriffe zu definieren oder vorhandene
% umzudefinieren. Mit \KOMAScript{} geht das etwas einfacher.
%
%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \iffalse
%<*option>
% \fi
%
% \subsection{Option}
% Für Briefe gibt es die Möglichkeit, zwischen symbolischem und numerischem
% Datum umzuschalten.
%
% \iffalse
%<*letter>
% \fi
%
% \begin{option}{numericaldate}
% \changes{v2.8q}{2001/10/07}{Neue Option (an Stelle von
%     \texttt{scrdate} und \texttt{orgdate})}%^^A
% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}%^^A
% \changes{v3.17}{2015/03/10}{Speicherung des aktuellen Werts}%^^A
% Es kann zwischen dem Originaldatum, das beispielsweise von
% \texttt{german.sty} definiert wird, und dem \texttt{scrlttr2}-Datum
% gewählt werden. Natürlich gibt es diese Optionen nur bei Briefen.
% \begin{macro}{\if@orgdate}
% \begin{macro}{\@orgdatetrue}
% \begin{macro}{\@orgdatefalse}
% Die Einstellung wird in einem Schalter gespeichert.
%    \begin{macrocode}
\newif\if@orgdate\@orgdatetrue
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% Dummerweise besitzt der alte Schalter genau die gegenteilige
% Bedeutung der Option, deshalb muss der Schalter zweimal invertiert
% werden.
%    \begin{macrocode}
\KOMA@key{numericaldate}[true]{%
  \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
  \KOMA@set@ifkey{numericaldate}{@orgdate}{#1}%
  \KOMA@kav@replacebool{.%
%<class>    \KOMAClassFileName
%<package&letter>    scrletter.\scr@pkgextension
  }{numericaldate}{@orgdate}%
  \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
}
\KOMA@kav@add{.%
%<class>  \KOMAClassFileName
%<package&letter>  scrletter.\scr@pkgextension
}{orgdate}{true}
%    \end{macrocode}
% \begin{option}{scrdate}
% \changes{v3.01a}{2008/11/21}{deprecated}%^^A
% \begin{option}{orgdate}
% \changes{v3.01a}{2008/11/21}{deprecated}%^^A
%    \begin{macrocode}
\KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true}
\KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false}
%    \end{macrocode}
% \end{option}
% \end{option}
% \end{option}
%
% \iffalse
%</letter>
% \fi
%
%
% \iffalse
%</option>
%<*body>
% \fi
%
% \subsection{Definitionen für sprachabhängige Bezeichner}
%
% Dieser Teil ist so grundlegend, dass er ab Version~3.00 in das Paket
% \textsf{scrbase} ausgelagert wird.
%
% \iffalse
%<*package&base>
% \fi
%
% \begin{macro}{\defcaptionname}
% \changes{3.12}{2013/07/29}{neu}%^^A
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
%     ersetzt}%^^A
% Für eine Reihe von Sprachen (durch Komma separierte Liste in \#1)
% wird ein Makro (\#2) auf einen bestimmten Inhalt (\#3) definiert. Die
% Sternversion verwendet dabei zwingend \cs{extras\meta{Sprache}}, während
% die Normalversion \cs{captions\meta{Sprache}} verwendet, außer wenn der
% Begriff  bereits in \cs{extras\meta{Sprache}} definiert ist. Falls der
% Befehl in der Dokumentpräambel aufgerufen wird, wird er verzögert.
%    \begin{macrocode}
\newcommand*{\defcaptionname}{%
  \kernel@ifstar\scr@def@scaptionname\scr@def@captionname
}
%    \end{macrocode}
% \begin{macro}{\scr@def@scaptionname}
% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
% Die Sternvariante von \cs{defcaptionname}. Die Argumente sind dieselben.
%    \begin{macrocode}
\newcommand*{\scr@def@scaptionname}[3]{%
%    \end{macrocode}
% Als erstes findet die Verzögerung bis \cs{begin{document}} statt.
%    \begin{macrocode}
  \if@atdocument
    \expandafter\@firstofone
  \else
    \scr@ifactivelanguageisoneof{#1}{\def#2{#3}}{}%
    \expandafter\AtBeginDocument
  \fi
  {%
%    \end{macrocode}
% Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1
% ab und \dots
% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
%    \begin{macrocode}
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \@for\scr@reserved@a:=\scr@reserved@a\do{%
%    \end{macrocode}
% \dots\ fügen dabei \cs{extras\meta{Sprache}} die Definition \#3 für \#2
% hinzu.
%    \begin{macrocode}
        \scr@trim@spaces\scr@reserved@a
        \ifx\scr@reserved@a\@empty
          \PackageWarning{scrbase}{empty language at \string\defcaptionname}%
        \else
          \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax
            \expandafter\expandafter\expandafter\gdef
          \else
            \expandafter\expandafter\expandafter\g@addto@macro
          \fi
          \csname extras\scr@reserved@a\endcsname{%
            \def#2{#3}%
          }%
%    \end{macrocode}
% Wenn etwas hinzugefügt wurde, muss außerdem \cs{reserved@b} so umdefiniert
% werden, dass dies ggf. auch unmittelbar Geltung bekommt.
%    \begin{macrocode}
          \scr@def@activateactivelanguageaftergroup{#2}{#3}%
        \fi
      }%
    \reserved@b
  }%
}
%    \end{macrocode}
% \begin{macro}{\scr@def@activateactivelanguageaftergroup}
% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
%   Dokumentpräambel}%^^A
% Wenn die Sprache in \cs{reserved@a} die aktuelle Sprache \cs{languagename}
% ist oder die Sprachnummer zur Sprache \cs{reserved@a} die aktuelle
% Sprachnummer \cs{language} ist, dann wird \cs{reserved@b} so umdefiniert,
% dass es die aktuelle Gruppe beendet und \#1 als \#2 definiert.
%    \begin{macrocode}
\newcommand*{\scr@def@activateactivelanguageaftergroup}[2]{%
  \@onelevel@sanitize\languagename
  \@tempswafalse
%<trace>  \typeout{compare `\languagename' and `\scr@reserved@a'}%
  \ifx\languagename\scr@reserved@a
    \@tempswatrue
  \else
%    \end{macrocode}
% \changes{v3.20}{2016/01/05}{Sonderbehandlung für \textsf{polyglossia}}%^^A
% Bei Verwendung von \textsf{polyglossia} gibt es die Besonderheit, dass alle
% Deutschen Sprachen als \texttt{german} definiert sind. Die Unterscheidung
% zwischen Deutsch, Österreichisch und Schweizerisch geschieht über zwei
% boolsche Schalter. Für die Unterscheidung alte oder neue Rechtschreibung
% existiert ein weiterer Schalter. Mit ein paar trickreichen Vergleichen kann
% man das zusätzlich behandeln. Natürlich muss es so gemacht werden, dass es
% mit babel trotzdem noch funktioniert.
%    \begin{macrocode}
    \edef\scr@reserved@b{\detokenize{german}}%
    \ifx\languagename\scr@reserved@b
      \edef\scr@reserved@b{%
        \expandafter\ifx\csname if@german@oldspelling\expandafter\endcsname
        \csname iffalse\endcsname n\fi
        \expandafter\ifx\csname if@austrian@locale\expandafter\endcsname
        \csname iftrue\endcsname austrian\else
          \expandafter\ifx\csname if@swiss@locale\expandafter\endcsname
          \csname iftrue\endcsname swiss\else german\fi\fi
      }%
%<trace>      \typeout{compare also `\scr@reserved@a' and `\scr@reserved@b'}%
      \@onelevel@sanitize\scr@reserved@b
      \ifx\scr@reserved@a\scr@reserved@b \@tempswatrue\fi
    \fi
    \if@tempswa\else
      \ifcsname l@\scr@reserved@a\endcsname
        \expandafter\ifnum\csname l@\scr@reserved@a\endcsname=\language
          \@tempswatrue
        \fi
      \fi
    \fi
  \fi
  \if@tempswa
    \def\reserved@b{\endgroup
      \PackageInfo{scrbase}{activating \languagename\space \string#1}%
      \def#1{#2}%
    }%
  \fi
} 
%    \end{macrocode}
% \begin{macro}{\scr@ifactivelanguageisoneof}
% \changes{v3.27}{2019/07/10}{neu (intern)}
% Ist die aktuelle Sprache eine aus der Liste im ersten Argument, so wird das
% zweite Argument ausgeführt, sonst das ersten.
%    \begin{macrocode}
\newcommand*{\scr@ifactivelanguageisoneof}[1]{%
  \begingroup
    \@tempswafalse
    \@onelevel@sanitize\languagename
    \edef\reserved@a{#1}%
    \@for \reserved@a:=\reserved@a\do{%
      \scr@trim@spaces\reserved@a
      \@onelevel@sanitize\reserved@a
      \ifx\languagename\reserved@a
        \@tempswatrue
      \else
        \edef\reserved@b{\detokenize{german}}%
        \ifx\languagename\reserved@b
          \edef\reserved@b{%
            \expandafter\ifx\csname if@german@oldspelling\expandafter\endcsname
            \csname iffalse\endcsname n\fi
            \expandafter\ifx \csname if@austrian@locale\expandafter\endcsname
            \csname iftrue\endcsname austrian\else
              \expandafter\ifx\csname if@swiss@locale\expandafter\endcsname
              \csname iftrue\endcsname swiss\else german\fi\fi
          }%
          \@onelevel@sanitize\reserved@b
          \ifx\reserved@a\reserved@b \@tempswatrue\fi
        \fi
        \if@tempswa\else
          \ifcsname l@\reserved@a\endcsname
            \expandafter\ifnum \csname l@\reserved@a\endcsname=\language
              \@tempswatrue
            \fi
          \fi
        \fi
      \fi  
    }%
    \if@tempswa
      \aftergroup\@firstoftwo
    \else
      \aftergroup\@secondoftwo
    \fi
  \endgroup
}
%    \end{macrocode}
% \end{macro}%^^A \scr@ifactivelanguageisoneof
% \end{macro}%^^A \scr@def@activateactivelanguageaftergroup
% \end{macro}%^^A \scr@def@scaptionname
% \begin{macro}{\scr@def@captionname}
% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
%   Dokumentpräambel}%^^A
% Die Normalvariante von \cs{defcaptionname}, mit denselben Argumenten.
%    \begin{macrocode}
\newcommand*{\scr@def@captionname}[3]{%
%    \end{macrocode}
% Als erstes findet die Verzögerung bis \cs{begin{document}} statt.
%    \begin{macrocode}
  \if@atdocument
    \expandafter\@firstofone
  \else
    \scr@ifactivelanguageisoneof{#1}{\def#2{#3}}{}%
    \expandafter\AtBeginDocument
  \fi
  {%
%    \end{macrocode}
% Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1
% ab und \dots
% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
%    \begin{macrocode}
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \@for\scr@reserved@a:=\scr@reserved@a\do{%
        \scr@trim@spaces\scr@reserved@a
        \ifx\scr@reserved@a\@empty
          \PackageWarning{scrbase}{empty language at \string\defcaptionname}%
        \else
%    \end{macrocode}
% \dots\ testen dabei, ob \#2 bereits in \cs{extras\meta{Sprache}} definiert
% ist.
%    \begin{macrocode}
          \@tempswafalse
          \begingroup
            \@tempswafalse
            \ifcsname extras\scr@reserved@a\endcsname
              \let#2\relax
%    \end{macrocode}
% \selectlanguage{english}%^^A
% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
% \selectlanguage{ngerman}%^^A
%    \begin{macrocode}
              \expandafter\providecommand\expandafter*%
              \csname abx@extras@\scr@reserved@a\endcsname{}%
              \csname extras\scr@reserved@a\endcsname
              \ifx #2\relax \else \aftergroup\@tempswatrue \fi
            \fi
          \endgroup
%    \end{macrocode}
% Wenn \#2 bereits in \cs{extras\meta{Sprache}} definiert ist, \dots
%    \begin{macrocode}
          \if@tempswa
%    \end{macrocode}
% \dots\ dann definieren wir es genau hier neu,
%    \begin{macrocode}
            \expandafter\g@addto@macro\csname extras\scr@reserved@a\endcsname{%
              \def#2{#3}%
            }%
          \else
%    \end{macrocode}
% \dots\ anderenfalls definieren wir es in \cs{captions\meta{Sprache}} neu.
%    \begin{macrocode}
           \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax
              \expandafter\expandafter\expandafter\gdef
            \else
              \expandafter\expandafter\expandafter\g@addto@macro
            \fi
            \csname captions\scr@reserved@a\endcsname{%
              \def#2{#3}%
            }%
          \fi
%    \end{macrocode}
% Wenn etwas hinzugefügt wurde, muss außerdem \cs{reserved@b} so umdefiniert
% werden, dass dies ggf. auch unmittelbar Geltung bekommt.
%    \begin{macrocode}
          \scr@def@activateactivelanguageaftergroup{#2}{#3}%
        \fi
      }%
    \reserved@b
  }%
}
%    \end{macrocode}
% \end{macro}%^^A \scr@def@captionname
% \end{macro}%^^A \defcaptionname
%
% \changes{v3.20}{2016/01/05}{Neue Sonderbehandlung für
%   \texttt{polyglossia}}%^^A
% Bei Verwendung von \textsf{polyglossia} haben wir nun bei den Sprachen
% \texttt{austrian}, \texttt{swiss}, \texttt{ngerman}, \texttt{naustrian} und
% \texttt{nswiss} das Problem, dass diese dort alle in \cs{captionsgerman}
% vermischt sind. Es werden also beim Umschalten eventuell gar nicht die
% richtigen Befehle ausgeführt. Das lässt sich beispielsweise beheben, indem
% in \cs{init@extra@german} dafür gesorgt wid, dass eben diese doch noch
% ausgeführt werden:
%    \begin{macrocode}
\AfterPackage*{polyglossia}{%
  \scr@ifundefinedorrelax{init@extras@german}{%
    \AfterFile{gloss-german.ldf}%
  }{%
    \@firstofone
  }%
  {%
    \providecommand*\captionsngerman{}%
    \providecommand*\captionsaustrian{}%
    \providecommand*\captionsnaustrian{}%
    \providecommand*\captionsswiss{}%
    \providecommand*\captionsnswiss{}%
    \csgappto{init@extras@german}{%
      \if@austrian@locale
        \csuse{captions\if@german@oldspelling\else n\fi austrian}%
      \else
        \if@swiss@locale
          \csuse{captions\if@german@oldspelling\else n\fi swiss}%
        \else
          \if@german@oldspelling\else \csuse{captionsngerman}\fi
        \fi
      \fi
    }%
  }%
}
%    \end{macrocode}
% Ich bin mir natürlich bewusst, dass dieser Code auch nur wieder ein Hack
% ist. Ideal ist das so nicht. Aber sehr viel sauberer geht es mit
% \textsf{polyglossia} unter Beibehaltung der Kompatibilität auch nicht mehr.
%
% \begin{macro}{\providecaptionname}
% \changes{v2.8q}{2001/11/08}{neu}%^^A
% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte
%     ist, wird die Anderung sofort aktiviert.}%^^A
% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert
%     auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}%^^A
% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}%^^A
% \changes{v3.01b}{2008/12/07}{missing make undefined}%^^A
% \changes{v3.02c}{2009/02/17}{undefined test improved}%^^A
% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von
%    \cs{defcaptionname}}%^^A
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
%     ersetzt}%^^A
% Wie \cs{defcaptionname}, allerdings wird nur definiert, wenn die Sprache \#1
% bereits existiert, aber der Begriff \#2 nicht existiert. Unter dieser
% Einschränkung verwendet die Sternvariante \cs{extras\meta{Sprache}}, während
% die Normalvariante \cs{captions\meta{Sprache}} verwendet.
%    \begin{macrocode}
\newcommand*{\providecaptionname}{%
  \kernel@ifstar\scr@provide@scaptionname\scr@provide@captionname
}
%    \end{macrocode}
% \begin{macro}{\scr@provide@scaptionname}
% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
%   Dokumentpräambel}%^^A
%    \begin{macrocode}
\newcommand*{\scr@provide@scaptionname}[3]{%
  \if@atdocument
    \expandafter\@firstofone
  \else
    \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}%
    \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \@for\scr@reserved@a:=\scr@reserved@a\do{%
        \scr@trim@spaces\scr@reserved@a
        \ifx\scr@reserved@a\@empty
          \PackageWarning{scrbase}{empty language at
            \string\providecaptionname}%
        \else
%    \end{macrocode}
% Im Unterschied zu \cs{defcaptionname} wird hier nur etwas zu
% \cs{extras\meta{Sprache}} hinzugefügt, wenn das bereits definiert ist,
% aber \#2 selbst noch nicht definiert ist.
%    \begin{macrocode}
          \begingroup
            \let#2\relax
%    \end{macrocode}
% \selectlanguage{english}%^^A
% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
% \selectlanguage{ngerman}%^^A
%    \begin{macrocode}
            \expandafter\providecommand\expandafter*%
            \csname abx@extras@\scr@reserved@a\endcsname{}%
            \csname extras\scr@reserved@a\endcsname
            \csname captions\scr@reserved@a\endcsname
            \ifx #2\relax \aftergroup\@firstofone
            \else
%<*trace>
              \PackageInfo{scrbase}{letting \scr@reserved@a\space
                \expandafter\string#2\MessageBreak
                unchanged}%
%</trace>
              \aftergroup\@gobble
            \fi
          \endgroup
          {%
            \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax
%<*trace>
              \PackageInfo{scrbase}{letting 
                \expandafter\string\csname extras\scr@reserved@a\endcsname\space
                unused}%
%</trace>
              \expandafter\expandafter\expandafter\@gobbletwo
            \else
              \expandafter\expandafter\expandafter\g@addto@macro
            \fi
            \csname extras\scr@reserved@a\endcsname{%
              \def#2{#3}%
            }%
            \scr@def@activateactivelanguageaftergroup{#2}{#3}%
          }%
        \fi
      }%
    \reserved@b
  }%
}
%    \end{macrocode}
% \end{macro}%^^A \scr@provide@scaptionname
% \begin{macro}{\scr@provide@captionname}
% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
%   Dokumentpräambel}%^^A
% Die Normalvariante von \cs{providecaptionname}, mit denselben Argumenten.
%    \begin{macrocode}
\newcommand*{\scr@provide@captionname}[3]{%
  \if@atdocument
    \expandafter\@firstofone
  \else
    \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}%
    \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \@for\scr@reserved@a:=\scr@reserved@a\do{%
        \scr@trim@spaces\scr@reserved@a
        \ifx\scr@reserved@a\@empty
          \PackageWarning{scrbase}{empty language at
            \string\providecaptionname}%
        \else
%    \end{macrocode}
% Im Unterschied zu \cs{defcaptionname} wird hier nur etwas zu
% \cs{captions\meta{Sprache}} hinzugefügt, wenn das bereits definiert ist,
% aber \#2 selbst weder in \cs{extras\meta{Sprache}} noch in
% \cs{captions\meta{Sprache}} definiert ist.
%    \begin{macrocode}
          \begingroup
            \let#2\relax
%    \end{macrocode}
% \selectlanguage{english}%^^A
% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
% \selectlanguage{ngerman}%^^A
%    \begin{macrocode}
            \expandafter\providecommand\expandafter*%
            \csname abx@extras@\scr@reserved@a\endcsname{}%
            \csname captions\scr@reserved@a\endcsname
            \csname extras\scr@reserved@a\endcsname
            \ifx #2\relax \aftergroup\@firstofone
            \else
%<*trace>
              \PackageInfo{scrbase}{letting \scr@reserved@a 
                \expandafter\string#2\MessageBreak
                unchanged}%
%</trace>
              \aftergroup\@gobble
            \fi
          \endgroup
          {%
            \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax
%<*trace>
              \PackageInfo{scrbase}{letting 
                \expandafter\string\csname extras\scr@reserved@a\endcsname\space 
                unused}%
%</trace> 
              \expandafter\expandafter\expandafter\@gobbletwo
            \else
              \expandafter\expandafter\expandafter\g@addto@macro
            \fi
            \csname captions\scr@reserved@a\endcsname{%
              \def#2{#3}%
            }%
            \scr@def@activateactivelanguageaftergroup{#2}{#3}%
          }%
        \fi
      }%
    \reserved@b
  }%
}
%    \end{macrocode}
% \end{macro}%^^A \scr@provide@captionname
% \end{macro}%^^A \providecaptionname
%
% \begin{macro}{\newcaptionname}
% \changes{v2.8q}{2001/11/08}{neu}%^^A
% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte
%     ist, wird die Anderung sofort aktiviert.}%^^A
% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert
%     auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}%^^A
% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}%^^A
% \changes{v3.01b}{2008/12/07}{missing make undefined}%^^A
% \changes{v3.02c}{2009/02/17}{undefined test improved}%^^A
% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von
%    \cs{defcaptionname}}%^^A
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
%     ersetzt}%^^A
% Wie \cs{defcaptionname} mit folgender Änderung: Existiert die
% Sprache und der Begriff, so wird ein Fehler ausgegeben. Existiert die
% Sprache aber nicht der Begriff, so wird er definiert. Existiert die Sprache
% nicht, so wird sie definiert. Unter dieser Prämisse verwendet die
% Sternversion \cs{extras\meta{Sprache}}, während die Normalversion
% \cs{captions\meta{Sprache}} verwendet.
%    \begin{macrocode}
\newcommand*{\newcaptionname}{%
  \kernel@ifstar\scr@new@scaptionname\scr@new@captionname
}
%    \end{macrocode}
% \begin{macro}{\scr@new@scaptionname}
% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
%   Dokumentpräambel}%^^A
% Die Sternvariante von \cs{newcaptionname}. Die Argumente sind dieselben.
%    \begin{macrocode}
\newcommand*{\scr@new@scaptionname}[3]{%
  \if@atdocument
    \expandafter\@firstofone
  \else
    \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}%
    \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \@for\scr@reserved@a:=\scr@reserved@a\do{%
        \scr@trim@spaces\scr@reserved@a
        \ifx\scr@reserved@a\@empty
          \PackageWarning{scrbase}{empty language at \string\newcaptionname}%
        \else
%    \end{macrocode}
% Im Unterschied zu \cs{defcaptionname} darf der Begriff noch nicht definiert
% sein.
%    \begin{macrocode}
          \begingroup
            \let#2\relax
%    \end{macrocode}
% \selectlanguage{english}%^^A
% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
% \selectlanguage{ngerman}%^^A
%    \begin{macrocode}
            \expandafter\providecommand\expandafter*%
            \csname abx@extras@\scr@reserved@a\endcsname{}%
            \csname captions\scr@reserved@a\endcsname
            \csname extras\scr@reserved@a\endcsname
            \ifx #2\relax
            \else
              \PackageError{scrbase}{%
                `\string#2' already defined\MessageBreak
                for language `\scr@reserved@a'%
              }{%
                You've told me to define `\string#2' for language
                `\scr@reserved@a',\MessageBreak
                but is has already been defined.\MessageBreak
                Nevertheless, if you'll continue it will be redefined.%
              }%
            \fi
          \endgroup
          \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax
            \expandafter\expandafter\expandafter\gdef
          \else
            \expandafter\expandafter\expandafter\g@addto@macro
          \fi
          \csname extras\scr@reserved@a\endcsname{%
            \def#2{#3}%
          }%
          \scr@def@activateactivelanguageaftergroup{#2}{#3}%
        \fi
      }%
    \reserved@b
  }%
}
%    \end{macrocode}
% \end{macro}%^^A \scr@new@scaptionname
% \begin{macro}{\scr@new@captionname}
% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
%   Dokumentpräambel}%^^A
% Die Normalvariante von \cs{newcaptionname}, mit denselben Argumenten.
%    \begin{macrocode}
\newcommand*{\scr@new@captionname}[3]{%
  \if@atdocument
    \expandafter\@firstofone
  \else
    \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}%
    \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \@for\scr@reserved@a:=\scr@reserved@a\do{%
        \scr@trim@spaces\scr@reserved@a
        \ifx\scr@reserved@a\@empty
          \PackageWarning{scrbase}{empty language at \string\newcaptionname}%
        \else
%    \end{macrocode}
% Im Unterschied zu \cs{defcaptionname} darf der Begriff noch nicht definiert
% sein.
%    \begin{macrocode}
          \begingroup
            \let#2\relax
%    \end{macrocode}
% \selectlanguage{english}%^^A
% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
% \selectlanguage{ngerman}%^^A
%    \begin{macrocode}
            \expandafter\providecommand\expandafter*%
            \csname abx@extras@\scr@reserved@a\endcsname{}%
            \csname captions\scr@reserved@a\endcsname
            \csname extras\scr@reserved@a\endcsname
            \ifx #2\relax
            \else
              \PackageError{scrbase}{%
                `\string#2' already defined\MessageBreak
                for language `\scr@reserved@a'%
              }{%
                You've told me to define `\string#2' for language
                `\scr@reserved@a',\MessageBreak
                but is has already been defined.\MessageBreak
                Nevertheless, if you'll continue it will be redefined.%
              }%
            \fi
          \endgroup
          \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax
            \expandafter\expandafter\expandafter\gdef
          \else
            \expandafter\expandafter\expandafter\g@addto@macro
          \fi
          \csname captions\scr@reserved@a\endcsname{%
            \def#2{#3}%
          }%
          \scr@def@activateactivelanguageaftergroup{#2}{#3}%
        \fi
      }%
    \reserved@b
  }%
}
%    \end{macrocode}
% \end{macro}%^^A \scr@new@captionname
% \end{macro}%^^A \newcaptionname
%
% \begin{macro}{\renewcaptionname}
% \changes{v2.8q}{2001/11/08}{neu}%^^A
% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte
%     ist, wird die Anderung sofort aktiviert.}%^^A
% \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert
%     auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}%^^A
% \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}%^^A
% \changes{v3.01b}{2008/12/07}{missing make undefined}%^^A
% \changes{v3.02c}{2009/02/17}{undefined test improved}%^^A
% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von
%    \cs{defcaptionname}}%^^A
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
%     ersetzt}%^^A
% Wie \cs{defcaptionname} mit folgender Änderung: Existiert die
% Sprache nicht, so ist dies ein Fehler. Existiert die Sprache nicht aber der
% Begriff, so ist dies ebenfalls ein Fehler. Existieren Sprache und Begriff,
% so wird dieser umdefiniert. Unter dieser Voraussetzung ändert die
% Sternvariante immer \cs{extras\meta{Sprache}}, während die Normalvariante
% \cs{captions\meta{Sprache}} ändert, falls der Begriff nicht i
% \cs{extras\meta{Sprache}} definiert war, und sonst \cs{extras\meta{Sprache}}.
%    \begin{macrocode}
\newcommand*{\renewcaptionname}{%
  \kernel@ifstar\scr@renew@scaptionname\scr@renew@captionname
}
%    \end{macrocode}
% \begin{macro}{\scr@renew@scaptionname}
% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
%   Dokumentpräambel}%^^A
% \changes{v3.27a}{2019/10/13}{unmittelbare Aktivierung nur für bereits
%   definierte Begriffe}%^^A
% Die Sternvariante von \cs{renewcaptionname}. Die Argumente sind dieselben.
%    \begin{macrocode}
\newcommand*{\scr@renew@scaptionname}[3]{%
  \if@atdocument
    \expandafter\@firstofone
  \else
    \scr@ifactivelanguageisoneof{#1}{\ifdefined#2\renewcommand*{#2}{#3}\fi}{}%
    \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \@for\scr@reserved@a:=\scr@reserved@a\do{%
        \scr@trim@spaces\scr@reserved@a
        \ifx\scr@reserved@a\@empty
          \PackageWarning{scrbase}{empty language at \string\renewcaptionname}%
        \else
%    \end{macrocode}
% Im Unterschied zu \cs{defcaptionname} muss der Begriff bereits definiert
% sein.
%    \begin{macrocode}
          \begingroup
            \let#2\relax
%    \end{macrocode}
% \selectlanguage{english}%^^A
% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
% \selectlanguage{ngerman}%^^A
%    \begin{macrocode}
            \expandafter\providecommand\expandafter*%
            \csname abx@extras@\scr@reserved@a\endcsname{}%
            \csname captions\scr@reserved@a\endcsname
            \csname extras\scr@reserved@a\endcsname
            \ifx #2\relax
              \PackageError{scrbase}{%
                `\string#2' not defined at language `\scr@reserved@a'%
              }{%
                You've told me to redefine `\string#2' at language
                `\scr@reserved@a',\MessageBreak
                but is hasn't been defined before.\MessageBreak
                Nevertheless, if you'll continue I'll define it at
                `\expandafter\string\csname extras\scr@reserved@a\endcsname'%
              }%
            \fi
          \endgroup
          \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax
            \expandafter\expandafter\expandafter\gdef
          \else
            \expandafter\expandafter\expandafter\g@addto@macro
          \fi
          \csname extras\scr@reserved@a\endcsname{%
            \def#2{#3}%
          }%
          \scr@def@activateactivelanguageaftergroup{#2}{#3}%
        \fi
      }%
    \reserved@b
  }%
}
%    \end{macrocode}
% \end{macro}%^^A \scr@renew@scaptionname
% \begin{macro}{\scr@renew@captionname}
% \changes{v3.12}{2013/07/30}{neu (intern)}%^^A
% \changes{v3.26}{2018/08/29}{diverse \cs{expandafter} eingespart}%^^A
% \changes{v3.27}{2019/07/10}{unmittelbare Aktivierung auch in der
%   Dokumentpräambel}%^^A
% \changes{v3.27a}{2019/10/13}{unmittelbare Aktivierung nur für bereits
%   definierte Begriffe}%^^A
% Die Normalvariante von \cs{renewcaptionname}, mit denselben Argumenten.
%    \begin{macrocode}
\newcommand*{\scr@renew@captionname}[3]{%
  \if@atdocument
    \expandafter\@firstofone
  \else
    \scr@ifactivelanguageisoneof{#1}{\ifdefined#2\renewcommand*{#2}{#3}\fi}{}%
    \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \@for\scr@reserved@a:=\scr@reserved@a\do{%
        \scr@trim@spaces\scr@reserved@a
        \ifx\scr@reserved@a\@empty
          \PackageWarning{scrbase}{empty language at \string\renewcaptionname}%
        \else
%    \end{macrocode}
% Im Unterschied zu \cs{defcaptionname} muss der Begriff bereits definiert
% sein.
%    \begin{macrocode}
          \begingroup
            \let#2\relax
%    \end{macrocode}
% \selectlanguage{english}%^^A
% \changes{v3.27}{2019/05/27}{\textsf{biblatex} workaround}%^^A
% Unfortunately, \textsf{biblatex} adds \cs{abx@extras@\meta{language}} to
% \cs{extras\meta{language}} if only \meta{language} is an redundant language
% (see \cs{DeclareRedundantLanguages} in the \textsf{biblatex} manual) and
% \cs{extras\meta{language}} is defined. But in this case
% \cs{abx@extras@\meta{language}} is not defined. So calling
% \cs{extras\meta{language}} would result in an error. As a workaround for
% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here
% locally.
% \selectlanguage{ngerman}%^^A
%    \begin{macrocode}
            \expandafter\providecommand\expandafter*%
            \csname abx@extras@\scr@reserved@a\endcsname{}%
            \csname extras\scr@reserved@a\endcsname
            \ifx #2\relax
              \csname captions\scr@reserved@a\endcsname
              \ifx #2\relax
                \PackageError{scrbase}{%
                  `\string#2' not defined at language `\scr@reserved@a'%
                }{%
                  You've told me to redefine `\string#2' at language
                  `\scr@reserved@a',\MessageBreak
                  but it hasn't been defined before.\MessageBreak
                  Nevertheless, if you'll continue I'll define it at
                  `\expandafter\string
                  \csname captions\scr@reserved@a\endcsname'%
                }%
              \fi
              \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax
                \expandafter\expandafter\expandafter\gdef
              \else
                \expandafter\expandafter\expandafter\g@addto@macro
              \fi
              \csname captions\scr@reserved@a\endcsname{\def#2{#3}}%
            \else
              \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax
                \expandafter\expandafter\expandafter\gdef
              \else
                \expandafter\expandafter\expandafter\g@addto@macro
              \fi
              \csname extras\scr@reserved@a\endcsname{\def#2{#3}}%
            \fi
          \endgroup
          \scr@def@activateactivelanguageaftergroup{#2}{#3}%
        \fi
      }%
    \reserved@b
  }%
}
%    \end{macrocode}
% \end{macro}%^^A \scr@renew@captionname
% \end{macro}%^^A \renewcaptionname
%
% \iffalse
%</package&base>
% \fi
%
%
% \subsection{Definitionen für ein nummerisches Datum}
% Bei Briefen kann ein nummerisches oder ein symbolisches Datum verwendet
% werden.
%
% \iffalse
%<*letter>
% \fi
%
% \begin{macro}{\g@addnumerical@date}
% Dazu ist es notwendig, ggf. das bereits definierte symbolische Datum durch
% ein nummerisches zu ergänzen.
%    \begin{macrocode}
\newcommand*{\g@addnumerical@date}[2]{%
  \@ifundefined{date#1}{%
%<class>    \ClassInfo{scrlttr2%
%<package>    \PackageInfo{scrletter%
    }{%
      no date found for language `#1'\MessageBreak
      --> skipped%
    }%
  }{%
    \expandafter\g@addto@macro\csname date#1\endcsname{%
      \let\sym@date=\today%
      \def\num@date{#2}%
      \def\today{\if@orgdate\sym@date\else\num@date\fi}%
    }%
  }%
}
%    \end{macrocode}
% \end{macro}
%
% \iffalse
%</letter>
% \fi
%
%
% \subsection{Festlegungen für einzelne Sprachen}
%
% Es folgen nun für einzelne Sprachen konkrete Festlegungen, die für Briefe
% benötigt werden.
%
% \iffalse
%<*letter>
% \fi
%
% \begin{macro}{\captionsenglish}
% \changes{v3.13}{2014/01/07}{diverse neue Dialekte}%^^A
% \begin{macro}{\dateenglish}
% \begin{macro}{\captionsUSenglish}
% \begin{macro}{\dateUSenglish}
% \begin{macro}{\captionsamerican}
% \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert} 
% \begin{macro}{\dateamerican}
% \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert} 
% \begin{macro}{\captionsbritish}
% \changes{v2.4c}{1997/11/25}{british identisch mit english definiert} 
% \begin{macro}{\datebritish}
% \changes{v2.4c}{1997/11/25}{british identisch mit english definiert} 
% \begin{macro}{\captionsUKenglish}
% \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert} 
% \begin{macro}{\dateUKenglish}
% \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert} 
% \begin{macro}{\captionsaustralian}
% \changes{v3.13}{2014/03/19}{australian identisch mit english definiert}%^^A
% \begin{macro}{\dateaustralian}
% \changes{v3.13}{2014/03/19}{australian identisch mit english definiert}%^^A
% \changes{v3.27}{2019/06/09}{fixed}%^^A
% \begin{macro}{\captionsnewzealand}
% \changes{v3.13}{2014/03/19}{newzealand identisch mit english definiert}%^^A
% \begin{macro}{\datenewzealand}
% \changes{v3.13}{2014/03/19}{newzealand identisch mit english definiert}%^^A
% \begin{macro}{\captionscanadian}
% \changes{v3.13}{2014/03/19}{canadian identisch mit english definiert}%^^A
% \begin{macro}{\datecanadian}
% \changes{v3.13}{2014/03/19}{canadian identisch mit english definiert}%^^A
% \begin{macro}{\captionsukenglish}
% \changes{v3.24}{2017/05/29}{ukenglish identisch mit UKenglish definiert} 
% \begin{macro}{\dateukenglish}
% \changes{v3.24}{2017/05/29}{ukenglish identisch mit UKenglish definiert} 
% \begin{macro}{\captionsusenglish}
% \changes{v3.24}{2017/05/29}{usenglish identisch mit USenglish definiert} 
% \begin{macro}{\dateusenglish}
% \changes{v3.24}{2017/05/29}{usenglish identisch mit USenglish definiert} 
% \begin{macro}{\captionsgerman}
% \changes{v3.13}{2014/01/07}{neue Dialekte}%^^A
% \begin{macro}{\dategerman}
% \begin{macro}{\captionsngerman}
% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}%^^A
% \changes{v3.12a}{2014/03/08}{außer \texttt{german} verwenden alle
%     deutschen Sprachen »Telefon«}%^^A
% \begin{macro}{\datengerman}
% \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}%^^A
% \begin{macro}{\captionsaustrian}
% \begin{macro}{\dateaustrian}
% \begin{macro}{\captionsnaustrian}
% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}%^^A
% \begin{macro}{\datenaustrian}
% \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}%^^A
% \begin{macro}{\captionsfrench}
% \changes{v3.13}{2014/01/07}{diverse neue Dialekte}%^^A
% \begin{macro}{\datefrench}
% \begin{macro}{\captionsitalian}
% \begin{macro}{\dateitalian}
% \changes{v2.3e}{1996/05/31}{Ich hoffe, dass das stimmt}%^^A
% \begin{macro}{\captionsspanish}
% \begin{macro}{\datespanish}
% \changes{v2.4c}{1997/11/25}{Ich hoffe, dass das stimmt}%^^A
% \changes{v2.4c}{1997/11/25}{Datumsumschaltung nicht mehr zwingend} 
% \begin{macro}{\captionscroation}
% \changes{v2.8q}{2001/05/10}{Neu}%^^A
% \begin{macro}{\datecroatian}
% \changes{v2.8q}{2001/05/10}{Neu}%^^A
% \begin{macro}{\captionsdutch}
% \changes{v2.8q}{2002/02/01}{Neu}%^^A
% \begin{macro}{\datedutch}
% \changes{v2.8q}{2002/02/01}{Neu}%^^A
% \begin{macro}{\captionsfinnish}
% \changes{v2.9u}{2005/02/07}{Unterstützung für Finnisch (Dank Hannu
%     Väisänen)}%^^A
% \changes{v2.9u}{2005/02/07}{Neu}%^^A
% \begin{macro}{\datefinnish}
% \changes{v2.9u}{2005/02/07}{Neu}%^^A
% \changes{v3.01c}{2008/12/29}{Aktivierung korrigiert}%^^A
% \begin{macro}{\captionsnorsk}
% \changes{v3.02}{2009/01/01}{Neu}%^^A
% \begin{macro}{\datenorsk}
% \changes{v3.02}{2009/01/01}{Neu}%^^A
% \begin{macro}{\captionsnorsk}
% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}%^^A
% \begin{macro}{\datenorsk}
% \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}%^^A
% \begin{macro}{\captionspolish}
% \changes{v3.13}{2014/02/01}{Neu (Dank Blandyna Bogdol)}%^^A
% \begin{macro}{\datepolish}
% \changes{v3.13}{2014/02/01}{Neu (Dank Blandyna Bogdol)}%^^A
% \begin{macro}{\captionsczech}
% \changes{v3.13}{2014/02/10}{Neu (Dank Elke Schubert)}%^^A
% \begin{macro}{\dateczech}
% \changes{v3.13}{2014/02/10}{Neu (Dank Elke Schubert)}%^^A
% \begin{macro}{\dateslovak}
% \changes{v3.13}{2014/02/28}{Neu (Dank Elke Schubert)}%^^A
% Weil es in früheren Versionen zu Problemen damit gekommen ist,
% werden diese jedoch erst bei |\begin{document}| definiert. Dabei
% wird |\providecaptionname| verwendet, so dass sie auch schon vor
% |\begin{document}| mit |\newcaptionname| anderslautend definiert
% werden können.
% \begin{table}
%   \centering
%   \begin{tabular}{ll}
%     Sprache & Spender \\\hline\\[-1.6ex]
%     Deutsch & Frank Neukam, Markus Kohm \\
%     English & Frank Neukam, Michael Dewey, Markus Kohm \\
%     Finnisch & Hannu Väisänen \\
%     Französisch & Frank Neukam, Henk Jongbloets \\
%     Holländisch & Henk Jongbloets \\
%     Italienisch & Simone Naldi \\
%     Kroatisch & Branka Lon\v{c}arevi\'{c} \\
%     Norwegisch & Sveinung Heggen \\
%     Polnish & Blandyna Bogdol \\
%     Schwedisch & Benjamin Hell\\
%     Spanisch & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\
%     Tschechisch & Elke Schubert\\
%     Slovakisch & Elke Schubert\\
%   \end{tabular}
%   \caption{Liste der unterstützten Sprachen und der
%     \emph{Sprachspender}}
% \end{table}
% Eine Besonderheit stellt die englische Sprache dar. Es wird
% versucht, diese als Notersatz immer zu definieren.
%    \begin{macrocode}
\AtBeginDocument{%
  \@ifundefined{captionsenglish}{\let\captionsenglish\@empty}{}%
  \@ifundefined{dateenglish}{\def\dateenglish{%
%    \end{macrocode}
% \iffalse
%</letter>
%<*letter|class>
% \fi
%    \begin{macrocode}
      \def\today{\ifcase\month\or
        January\or February\or March\or April\or May\or June\or
        July\or August\or September\or October\or November\or December\fi
        \space\number\day, \number\year}%
%    \end{macrocode}
% \iffalse
%</letter|class>
%<*letter>
% \fi
%    \begin{macrocode}
    }%
  }{}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\yourrefname{Your ref.}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\yourmailname{Your letter of}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\myrefname{Our ref.}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\customername{Customer no.}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\invoicename{Invoice no.}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\subjectname{Subject}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\ccname{cc}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\enclname{encl}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\headtoname{To}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\headfromname{From}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\datename{Date}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\pagename{Page}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\phonename{Phone}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\mobilephonename{Mobile phone}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\faxname{Fax}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\emailname{Email}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\wwwname{Url}%
  \providecaptionname{american,australian,british,canadian,%
    english,newzealand,%
    UKenglish,ukenglish,USenglish,usenglish}\bankname{Bank account}%
  \g@addnumerical@date{american}{\number\month/\number\day/\number\year}%
  \g@addnumerical@date{australian}{\number\day/\number\month/\number\year}%
  \g@addnumerical@date{british}{\number\day/\number\month/\number\year}%
  \g@addnumerical@date{canadian}{\number\year/\number\month/\number\day}%
  \g@addnumerical@date{english}{\number\day/\number\month/\number\year}%
  \g@addnumerical@date{newzealand}{\number\day/\number\month/\number\year}%
  \g@addnumerical@date{UKenglish}{\number\day/\number\month/\number\year}%
  \g@addnumerical@date{ukenglish}{\number\day/\number\month/\number\year}%
  \g@addnumerical@date{USenglish}{\number\month/\number\day/\number\year}%
  \g@addnumerical@date{usenglish}{\number\month/\number\day/\number\year}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\yourrefname{Ihr Zeichen}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\yourmailname{Ihr Schreiben vom}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\myrefname{Unser Zeichen}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\customername{Kundennummer}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\invoicename{Rechnungsnummer}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\subjectname{Betrifft}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\ccname{Kopien an}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\enclname{Anlage}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\headtoname{An}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\headfromname{Von}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\datename{Datum}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\pagename{Seite}%
  \providecaptionname{german}\phonename{Telephon}%
  \providecaptionname{ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\phonename{Telefon}%
  \providecaptionname{german}\mobilephonename{Mobiltelephon}%
  \providecaptionname{ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\mobilephonename{Mobiltelefon}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\faxname{Fax}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\emailname{E-Mail}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\wwwname{URL}%
  \providecaptionname{german,ngerman,austrian,naustrian,%
    swissgerman,nswissgerman}\bankname{Bankverbindung}%
  \g@addnumerical@date{german}{\number\day.\,\number\month.\,\number\year}%
  \g@addnumerical@date{ngerman}{\number\day.\,\number\month.\,\number\year}%
  \g@addnumerical@date{austrian}{\number\day.\,\number\month.\,\number\year}%
  \g@addnumerical@date{naustrian}{\number\day.\,\number\month.\,\number\year}%
  \g@addnumerical@date{swissgerman}{\number\day.\,\number\month.\,\number\year}%
  \g@addnumerical@date{nswissgerman}{%
    \number\day.\,\number\month.\,\number\year}%
  \providecaptionname{%
    acadian,canadien,francais,french}\yourrefname{Vos r\'ef\'erences}%
  \providecaptionname{%
    acadian,canadien,francais,french}\yourmailname{Votre lettre du}%
  \providecaptionname{%
    acadian,canadien,francais,french}\myrefname{Nos r\'ef\'erences}%
  \providecaptionname{%
    acadian,canadien,francais,french}\customername{Num\'ero de client}%
  \providecaptionname{%
    acadian,canadien,francais,french}\invoicename{Num\'ero de facture}%
  \providecaptionname{%
    acadian,canadien,francais,french}\subjectname{Concernant}%
  \providecaptionname{%
    acadian,canadien,francais,french}\ccname{Copie \`a}%
  \providecaptionname{%
    acadian,canadien,francais,french}\enclname{Annexes}%
  \providecaptionname{%
    acadian,canadien,francais,french}\headtoname{A}%
  \providecaptionname{%
    acadian,canadien,francais,french}\headfromname{De}%
  \providecaptionname{%
    acadian,canadien,francais,french}\datename{Date}%
  \providecaptionname{%
    acadian,canadien,francais,french}\pagename{Page}%
  \providecaptionname{%
    acadian,canadien,francais,french}\phonename{T\'el\'ephone}%
  \providecaptionname{%
    acadian,canadien,francais,french}\mobilephonename{Portable}%
  \providecaptionname{%
    acadian,canadien,francais,french}\faxname{T\'el\'efax}%
  \providecaptionname{%
    acadian,canadien,francais,french}\emailname{E-mail}%
  \providecaptionname{%
    acadian,canadien,francais,french}\wwwname{URL}%
  \providecaptionname{%
    acadian,canadien,francais,french}\bankname{Compte en banque}%
  \g@addnumerical@date{acadian}{\number\day.\,\number\month.\,\number\year}%
  \g@addnumerical@date{canadien}{\number\year/\number\month/\number\day}%
  \g@addnumerical@date{francais}{\number\day.\,\number\month.\,\number\year}%
  \g@addnumerical@date{french}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{italian}\yourrefname{Vs./Rif.}% or Vostro Riferimento
  \providecaptionname{italian}\yourmailname{Vs.~lettera del}% or Vostra
                                                            % lettera del
  \providecaptionname{italian}\myrefname{Ns./Rif.}% or Nostro Riferimento
  \providecaptionname{italian}\customername{Nr.~cliente}% or Cliente num.
  \providecaptionname{italian}\invoicename{Nr.~fattura}% or Fattura num.
  \providecaptionname{italian}\subjectname{Oggetto}%
  \providecaptionname{italian}\ccname{Per conoscenza}% or Copia a
  \providecaptionname{italian}\enclname{Allegato}% or (plural) Allegati
  \providecaptionname{italian}\headtoname{A}%
  \providecaptionname{italian}\headfromname{Da}%
  \providecaptionname{italian}\datename{Data}%
  \providecaptionname{italian}\pagename{Pagina}%
  \providecaptionname{italian}\phonename{Telefono}%
  \providecaptionname{italian}\mobilephonename{Telefonino}%
  \providecaptionname{italian}\faxname{Fax}%
  \providecaptionname{italian}\emailname{Email}%
  \providecaptionname{italian}\wwwname{Sito Web}%
  \providecaptionname{italian}\bankname{Conto bancario}%
  \g@addnumerical@date{italian}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{spanish}\yourrefname{Su ref.}%
  \providecaptionname{spanish}\yourmailname{Su carta de}%
  \providecaptionname{spanish}\myrefname{Nuestra ref.}%
  \providecaptionname{spanish}\customername{No. de cliente}%
  \providecaptionname{spanish}\invoicename{No. de factura}%
  \providecaptionname{spanish}\subjectname{Asunto}%
  \providecaptionname{spanish}\ccname{Copias}%
  \providecaptionname{spanish}\enclname{Adjunto}%
  \providecaptionname{spanish}\headtoname{A}%
  \providecaptionname{spanish}\headfromname{De}%
  \providecaptionname{spanish}\datename{Fecha}%
  \providecaptionname{spanish}\pagename{P\'agina}%
  \providecaptionname{spanish}\phonename{Tel\'efono}%
  \providecaptionname{spanish}\mobilephonename{M\'ovil}%
  \providecaptionname{spanish}\faxname{Fax}%
  \providecaptionname{spanish}\emailname{Email}% or Correo electr\'onico
  \providecaptionname{spanish}\wwwname{URL}% or P\`agina web
  \providecaptionname{spanish}\bankname{Cuenta bancaria}%
  \g@addnumerical@date{spanish}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{croatian}\yourrefname{Va\v{s} znak}%
  \providecaptionname{croatian}\yourmailname{Va\v{s}e pismo od}%
  \providecaptionname{croatian}\myrefname{Na\v{s} znak}%
  \providecaptionname{croatian}\customername{Broj kupca}%
  \providecaptionname{croatian}\invoicename{Broj fakture}%
  \providecaptionname{croatian}\subjectname{Predmet}%
  \providecaptionname{croatian}\ccname{Kopija}%
  \providecaptionname{croatian}\enclname{Privitak}%
  \providecaptionname{croatian}\headtoname{Prima}%
  \providecaptionname{croatian}\headfromname{\v{S}alje}%
  \providecaptionname{croatian}\datename{Nadnevak}%
  \providecaptionname{croatian}\pagename{Stranica}%
  \providecaptionname{croatian}\phonename{Telefon}% 
  \providecaptionname{croatian}\mobilphonename{Mobitel}% 
  \providecaptionname{croatian}\faxname{Fax}% 
  \providecaptionname{croatian}\emailname{E-Mail}%
  \providecaptionname{croatian}\wwwname{URL}% 
  \providecaptionname{croatian}\bankname{Bankovna veza}%
  \g@addnumerical@date{croatian}{\number\day.\,\number\month.\,\number\year.}%
  \providecaptionname{dutch}\yourrefname{Uw kenmerk}%
  \providecaptionname{dutch}\yourmailname{Uw brief van}%
  \providecaptionname{dutch}\myrefname{Ons kenmerk}%
  \providecaptionname{dutch}\customername{Klant No.}%
  \providecaptionname{dutch}\invoicename{Rekening No.}%
  \providecaptionname{dutch}\subjectname{Onderwerp}%
  \providecaptionname{dutch}\ccname{Kopie aan}%
  \providecaptionname{dutch}\enclname{Bijlage(n)}%
  \providecaptionname{dutch}\headtoname{Aan}%
  \providecaptionname{dutch}\headfromname{Van}%
  \providecaptionname{dutch}\datename{Datum}%
  \providecaptionname{dutch}\pagename{Pagina}%
  \providecaptionname{dutch}\phonename{Telefoon}%
  \providecaptionname{dutch}\mobilephonename{Mobieltje}%
  \providecaptionname{dutch}\faxname{Fax}%
  \providecaptionname{dutch}\emailname{E--mail}%
  \providecaptionname{dutch}\wwwname{URL}%
  \providecaptionname{dutch}\bankname{Bankrekening}%
  \g@addnumerical@date{dutch}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{finnish}\yourrefname{Viitteenne}%
  \providecaptionname{finnish}\yourmailname{Kirjeenne}%
  \providecaptionname{finnish}\myrefname{Viitteemme}%
  \providecaptionname{finnish}\customername{Asiakasnumero}%
  \providecaptionname{finnish}\invoicename{Laskun numero}%
  \providecaptionname{finnish}\subjectname{Asia}%
  \providecaptionname{finnish}\ccname{Jakelu}%
  \providecaptionname{finnish}\enclname{Liitteet}%
  \providecaptionname{finnish}\headtoname{Vastaanottaja}%
  \providecaptionname{finnish}\headfromname{L\"ahett\"aj\"a}%
  \providecaptionname{finnish}\datename{P\"aiv\"a}%
  \providecaptionname{finnish}\pagename{Sivu}%
  \providecaptionname{finnish}\phonename{Puhelin}%
  \providecaptionname{finnish}\mobilephonename{Matkapuhelin}%
  \providecaptionname{finnish}\faxname{Faksi}%
  \providecaptionname{finnish}\emailname{S\"ahk\"oposti}%
  \providecaptionname{finnish}\wwwname{URL}%
  \providecaptionname{finnish}\bankname{Pankkitilin numero}%
  \g@addnumerical@date{finnish}{\number\day.\number\month.\number\year}%
  \providecaptionname{norsk}\yourrefname{Deres ref.}%
  \providecaptionname{norsk}\yourmailname{Deres brev av:}%
  \providecaptionname{norsk}\myrefname{V\aa{}r ref:}%
  \providecaptionname{norsk}\customername{Kundenummer}%
  \providecaptionname{norsk}\invoicename{Fakturanummer}%
  \providecaptionname{norsk}\subjectname{Emne}%
  \providecaptionname{norsk}\ccname{Kopi til}%
  \providecaptionname{norsk}\enclname{Vedlegg}%
  \providecaptionname{norsk}\headtoname{Til}%
  \providecaptionname{norsk}\headfromname{Fra}%
  \providecaptionname{norsk}\datename{Dato}%
  \providecaptionname{norsk}\pagename{Side}%
  \providecaptionname{norsk}\phonename{Telefon}%
  \providecaptionname{norsk}\mobilephonename{Mobiltelefon}%
  \providecaptionname{norsk}\faxname{Telefaks}%
  \providecaptionname{norsk}\emailname{E-post}%
  \providecaptionname{norsk}\wwwname{Url}%
  \providecaptionname{norsk}\bankname{Bankkontonummer}%
  \g@addnumerical@date{norsk}{\number\day.\number\month.\number\year}%
  \providecaptionname{swedish}\yourrefname{Er ref}%
  \providecaptionname{swedish}\yourmailname{Ert brev av}%
  \providecaptionname{swedish}\myrefname{V\aa{}r ref}%
  \providecaptionname{swedish}\customername{Kundnummer}%
  \providecaptionname{swedish}\invoicename{Fakturanummer}%
  \providecaptionname{swedish}\subjectname{\"Amne}%
%    \end{macrocode}
% "`Kopia"' oder "`Kopia till"' geht beides -- da im Deutschen die
% lange Form verwendet wird nehmen wir die auch hier:
%    \begin{macrocode}
  \providecaptionname{swedish}\ccname{Kopia till}%
%    \end{macrocode}
% "`Bilaga"' ist Singular. Bei mehreren Anlagen schreibt man
% "`Bilagor"'. Da wir nicht wissen, ob es eine oder mehrere Anlagen sind,
% haben wir ein kleines Problem und gehen mal von mehreren aus:
%    \begin{macrocode}
  \providecaptionname{swedish}\enclname{Bilagor}% Singular: Bilaga
  \providecaptionname{swedish}\headtoname{Till}%
  \providecaptionname{swedish}\headfromname{Fr\aa{}n}%
  \providecaptionname{swedish}\datename{Datum}%
  \providecaptionname{swedish}\pagename{Sida}%
  \providecaptionname{swedish}\phonename{Telefon}%
  \providecaptionname{swedish}\mobilephonename{Mobiltelefon}%
  \providecaptionname{swedish}\faxname{Telefax}%
  \providecaptionname{swedish}\emailname{E-post}%
  \providecaptionname{swedish}\wwwname{Hemsida}%
%    \end{macrocode}
% Für \cs{bankname} gibt es zwei verschiedene Ausdrücke, je nachdem um
% welche Kontoform es sich handelt: "`Bankgiro"' und "`PlusGiro"'. Beide
% sind etwa gleich verbreitet, evtl. mit einem leichten Vorteil für
% Bankgiro.
%    \begin{macrocode}
  \providecaptionname{swedish}\bankname{Bankgiro}% PlusGiro
%    \end{macrocode}
% Statt der ISO-Variante wird hier die traditionelle Variante,
% "`18/1 2011"', verwendet.
%    \begin{macrocode}
  \g@addnumerical@date{swedish}{\number\day/\number\month~\number\year}%
  \providecaptionname{polish}\yourrefname{Wasz znak}%
  \providecaptionname{polish}\yourmailname{Wasze pismo z dnia}%
  \providecaptionname{polish}\myrefname{Nasz znak}%
  \providecaptionname{polish}\customername{Numer klienta}%
  \providecaptionname{polish}\invoicename{Numer rachunku}%
  \providecaptionname{polish}\subjectname{Dotyczy}%
  \providecaptionname{polish}\ccname{Rozdzielnik}%
  \providecaptionname{polish}\enclname{Za\l\aob{}czniki}%
  \providecaptionname{polish}\headtoname{Do}%
  \providecaptionname{polish}\headfromname{Od}%
  \providecaptionname{polish}\datename{Data}%
  \providecaptionname{polish}\pagename{Strona}%
  \providecaptionname{polish}\phonename{Telefon}%
  \providecaptionname{polish}\mobilephonename{Numer mobilny}%
  \providecaptionname{polish}\faxname{Fax}%
  \providecaptionname{polish}\emailname{E-mail}%
  \providecaptionname{polish}\wwwname{URL}%
  \providecaptionname{polish}\bankname{Konto}%
  \g@addnumerical@date{polish}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{czech}\yourrefname{Va\v{s}e zna\v{c}ka}%
  \providecaptionname{czech}\yourmailname{V\'{a}\v{s} dopis ze dne}%
  \providecaptionname{czech}\myrefname{Na\v{s}e zna\v{c}ka}%
  \providecaptionname{czech}\customername{Z\'akaznick\'e \v{c}\'{\i}slo}%
  \providecaptionname{czech}\invoicename{Fakura\v{c}n\'{\i} \v{c}\'{\i}slo}%
  \providecaptionname{czech}\subjectname{Pr\v{e}dm\v{e}t}%
  \providecaptionname{czech}\ccname{Kopie}%
  \providecaptionname{czech}\enclname{P\v{r}\'{\i}loha}%
  \providecaptionname{czech}\headtoname{Komu}%
  \providecaptionname{czech}\headfromname{Od}%
  \providecaptionname{czech}\datename{Datum}%
  \providecaptionname{czech}\pagename{Strana}%
  \providecaptionname{czech}\phonename{Telefon}%
  \providecaptionname{czech}\mobilephonename{Mobil}%
  \providecaptionname{czech}\faxname{Fax}%
  \providecaptionname{czech}\emailname{E-Mail}%
  \providecaptionname{czech}\wwwname{URL}%
  \providecaptionname{czech}\bankname{Bankovn\'{\i} spojen\'{\i}}%
  \g@addnumerical@date{czech}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{slovak}\yourrefname{Va\v{s}a zna\v{c}ka}%
  \providecaptionname{slovak}\yourmailname{V\'{a}\v{s} list zo d\v{n}a}%
  \providecaptionname{slovak}\myrefname{Na\v{s}a zna\v{c}ka}%
  \providecaptionname{slovak}\customername{Z\'akazn\'{\i}cke \v{c}\'{\i}slo}%
  \providecaptionname{slovak}\invoicename{\'{C}\'{\i}slo fakt\'ury}%
  \providecaptionname{slovak}\subjectname{Predmet}%
  \providecaptionname{slovak}\ccname{K\'{o}pia pre koho}%
  \providecaptionname{slovak}\enclname{Pr\'{\i}loha}%
  \providecaptionname{slovak}\headtoname{Komu}%
  \providecaptionname{slovak}\headfromname{Od}%
  \providecaptionname{slovak}\datename{D\'{a}tum}%
  \providecaptionname{slovak}\pagename{Strana}%
  \providecaptionname{slovak}\phonename{Telef\'{o}n}%
  \providecaptionname{slovak}\mobilephonename{Mobil}%
  \providecaptionname{slovak}\faxname{Fax}%
  \providecaptionname{slovak}\emailname{E-Mail}%
  \providecaptionname{slovak}\wwwname{URL}%
  \providecaptionname{slovak}\bankname{Bankov\'{e} spojenie}%
  \g@addnumerical@date{slovak}{\number\day.\,\number\month.\,\number\year}%
%    \end{macrocode}
% Zum Schluss findet noch die eigentliche Auswahl statt. Diese orientiert
% sich nun an der Auswahl nach german.sty~2.5b und verwendet keine festen
% Sprachzuordnungen mehr. Dafür sind nun keine Erweiterungen für andere
% Sprachen mehr möglich.
% \changes{v2.2c}{1995/03/20}{Im Sprachenvergleich fehlten die "`="'
%     hinter \cs{language}}
% \changes{v2.4c}{1997/11/25}{Sprachauswahl um american, british,
%     UKenglish und spanish erweitert}%^^A
% \changes{v2.5}{1999/09/08}{Sprachauswahl um ngermen erweitert}%^^A
% \changes{v2.5b}{2000/01/20}{Reaktivierung der Sprache geschieht
%     nun via \cs{languagename}, soweit dies möglich ist}
% \changes{v2.5e}{2000/07/14}{Workaround für Sprache nohyphenation
%     durch Format mit Babel-Erweiterung aber kein Babel package
%     geladen}%^^A
%    \begin{macrocode}
  \captionsenglish
  \dateenglish
%    \end{macrocode}
% \changes{v2.9i}{2002/09/04}{Workaround für den
%     \texttt{hyphen.cfg}-Bug von Babel}
% \changes{v2.97c}{2007/08/10}{Text einer Warnung geändert}%^^A
% \changes{v3.18a}{2015/07/03}{\cs{extras\dots} werden auch ausgeführt}%^^A
% \changes{v3.18a}{2015/07/03}{sprachabhhängige Befehle mit \cs{@nameuse}}%^^A
% Wird die \texttt{hyphen.cfg} von Babel verwendet, wird aber das
% \textsl{babel}-Paket nicht geladen, so ist \cs{languagename} häufig
% nicht korrekt, so dass dann \cs{selectlanguage} mit
% \cs{languagename} als Argument schief geht. Daher hier ein
% Workaround für das Problem.
%    \begin{macrocode}
  \begingroup\expandafter\expandafter\expandafter\endgroup
  \expandafter\ifx\csname date\languagename\endcsname\relax
%<class>    \ClassWarningNoLine{scrlttr2%
%<package>    \PackageWarningNoLine{scrletter%
    }{%
      \string\language\space is \the\language, \string\languagename\space is
      `\languagename'\MessageBreak
      but \expandafter\string\csname
      date\languagename\endcsname\space not defined!\MessageBreak
      This seems to be a bug at you're `hyphen.cfg'.\MessageBreak
      Undefining macro \string\languagename\space to avoid errors%
    }%
    \let\languagename=\undefined
  \fi
  \ifx\languagename\undefined
%<class>    \ClassWarningNoLine{scrlttr2%
%<package>    \PackageWarningNoLine{scrletter%
    }{\string\languagename\space not
      defined, using \string\language.\MessageBreak
      This may result in use of wrong language!\MessageBreak
      You should use a compatible language
      package\MessageBreak
      (e.g. `Babel', `german', `ngerman', ...)}%
    \ifx\l@american\undefined\else\ifnum\language=\l@american
        \@nameuse{captionsamerican}%
        \@nameuse{extrasamerican}%
        \@nameuse{dateamerican}%
    \fi\fi
    \ifx\l@australian\undefined\else\ifnum\language=\l@australian
        \@nameuse{captionsaustralian}%
        \@nameuse{extrasaustralian}%
        \@nameuse{dateaustralian}%
    \fi\fi
    \ifx\l@british\undefined\else\ifnum\language=\l@british
        \@nameuse{captionsbritish}%
        \@nameuse{extrasbritish}%
        \@nameuse{datebritish}%
    \fi\fi
    \ifx\l@canadian\undefined\else\ifnum\language=\l@canadian
        \@nameuse{captionscanadian}%
        \@nameuse{extrascanadian}%
        \@nameuse{datecanadian}%
    \fi\fi
    \ifx\l@newzealand\undefined\else\ifnum\language=\l@newzealand
        \@nameuse{captionsnewzealand}%
        \@nameuse{extrasnewzealand}%
        \@nameuse{datenewzealand}%
    \fi\fi
    \ifx\l@UKenglish\undefined\else\ifnum\language=\l@UKenglish
        \@nameuse{captionsUKenglish}%
        \@nameuse{extrasUKenglish}%
        \@nameuse{dateUKenglish}%
    \fi\fi
    \ifx\l@ukenglish\undefined\else\ifnum\language=\l@ukenglish
        \@nameuse{captionsukenglish}%
        \@nameuse{extrasukenglish}%
        \@nameuse{dateukenglish}%
    \fi\fi
    \ifx\l@USenglish\undefined\else\ifnum\language=\l@USenglish
        \@nameuse{captionsUSenglish}%
        \@nameuse{extrasUSenglish}%
        \@nameuse{dateUSenglish}%
    \fi\fi
    \ifx\l@usenglish\undefined\else\ifnum\language=\l@usenglish
        \@nameuse{captionsusenglish}%
        \@nameuse{extrasusenglish}%
        \@nameuse{dateusenglish}%
    \fi\fi
    \ifx\l@austrian\undefined\else\ifnum\language=\l@austrian
        \@nameuse{captionsaustrian}%
        \@nameuse{extrasaustrian}%
        \@nameuse{dateaustrian}%
    \fi\fi
    \ifx\l@naustrian\undefined\else\ifnum\language=\l@naustrian
        \@nameuse{captionsnaustrian}%
        \@nameuse{extrasnaustrian}%
        \@nameuse{datenaustrian}%
    \fi\fi
    \ifx\l@german\undefined\else\ifnum\language=\l@german
        \@nameuse{captionsgerman}%
        \@nameuse{extrasgerman}%
        \@nameuse{dategerman}%
    \fi\fi
    \ifx\l@ngerman\undefined\else\ifnum\language=\l@ngerman
        \@nameuse{captionsngerman}%
        \@nameuse{extrasngerman}%
        \@nameuse{datengerman}%
    \fi\fi
    \ifx\l@swissgerman\undefined\else\ifnum\language=\l@swissgerman
        \@nameuse{captionsswissgerman}%
        \@nameuse{extrasswissgerman}%
        \@nameuse{dateswissgerman}%
    \fi\fi
    \ifx\l@nswissgerman\undefined\else\ifnum\language=\l@nswissgerman
        \@nameuse{captionsnswissgerman}%
        \@nameuse{extrasnswissgerman}%
        \@nameuse{datenswissgerman}%
    \fi\fi
    \ifx\l@acadian\undefined\else\ifnum\language=\l@acadian
        \@nameuse{captionsacadian}%
        \@nameuse{extrasacadian}%
        \@nameuse{dateacadian}%
    \fi\fi
    \ifx\l@canadien\undefined\else\ifnum\language=\l@canadien
        \@nameuse{captionscanadien}%
        \@nameuse{extrascanadien}%
        \@nameuse{datecanadien}%
    \fi\fi
    \ifx\l@francais\undefined\else\ifnum\language=\l@francais
        \@nameuse{captionsfrancais}%
        \@nameuse{extrasfrancais}%
        \@nameuse{datefrancais}%
    \fi\fi
    \ifx\l@french\undefined\else\ifnum\language=\l@french
        \@nameuse{captionsfrench}%
        \@nameuse{extrasfrench}%
        \@nameuse{datefrench}%
    \fi\fi
    \ifx\l@italian\undefined\else\ifnum\language=\l@italian
        \@nameuse{captionsitalian}%
        \@nameuse{extrasitalian}%
        \@nameuse{dateitalian}%
    \fi\fi
    \ifx\l@spanish\undefined\else\ifnum\language=\l@spanish
        \@nameuse{captionsspanish}%
        \@nameuse{extrasspanish}%
        \@nameuse{datespanish}%
    \fi\fi
    \ifx\l@croatian\undefined\else\ifnum\language=\l@croatian
        \@nameuse{captionscroatian}%
        \@nameuse{extrascroatian}%
        \@nameuse{datecroatian}%
    \fi\fi
    \ifx\l@dutch\undefined\else\ifnum\language=\l@dutch
        \@nameuse{captionsdutch}%
        \@nameuse{extrasdutch}%
        \@nameuse{datedutch}%
    \fi\fi
    \ifx\l@finnish\undefined\else\ifnum\language=\l@finnish
        \@nameuse{captionsfinnish}%
        \@nameuse{extrasfinnish}%
        \@nameuse{datefinnish}%
    \fi\fi
    \ifx\l@norsk\undefined\else\ifnum\language=\l@norsk
        \@nameuse{captionsnorsk}%
        \@nameuse{extrasnorsk}%
        \@nameuse{datenorsk}%
    \fi\fi
    \ifx\l@swedish\undefined\else\ifnum\language=\l@swedish
        \@nameuse{captionsswedish}%
        \@nameuse{extrasswedish}%
        \@nameuse{dateswedish}%
    \fi\fi
    \ifx\l@polish\undefined\else\ifnum\language=\l@polish
        \@nameuse{captionspolish}%
        \@nameuse{extraspolish}%
        \@nameuse{datepolish}%
    \fi\fi
    \ifx\l@czech\undefined\else\ifnum\language=\l@czech
        \@nameuse{captionsczech}%
        \@nameuse{extrasczech}%
        \@nameuse{dateczech}%
    \fi\fi
    \ifx\l@slovak\undefined\else\ifnum\language=\l@slovak
        \@nameuse{captionsslovak}%
        \@nameuse{extrasslovak}%
        \@nameuse{dateslovak}%
    \fi\fi
  \else
    \edef\@tempa{nohyphenation}%
    \ifx\languagename\@tempa
%<class>      \ClassWarningNoLine{scrlttr2%
%<package>      \PackageWarningNoLine{scrletter%
      }{%
        You've selected language `\languagename'.\MessageBreak
        Maybe your LaTeX format contains Babel extension\MessageBreak
        but you have not selected a language using\MessageBreak
        Babel package.\MessageBreak
        Please select another language!\MessageBreak
        Only as a workaround english captions and date\MessageBreak
        will be used%
      }%
    \else
%<class>      \ClassInfo{scrlttr2%
%<package>      \PackageInfo{scrletter%
      }{%
        trying to activate captions and date\MessageBreak
        of language `\languagename'%
      }%
%    \end{macrocode}
% \changes{v3.12}{2012/12/28}{Workaround für babels geänderte hyphen.cfg}%^^A
% Irgendwann wurde in babel die hyphen.cfg geändert, so dass das früher sehr
% gut funktionierende |\expandafter\selectlanguage\expandafter{\languagename}|
% damit leider nicht mehr funktioniert, wenn babel nicht mehr geladen
% ist. Deshalb wird nun etwas direkter vorgegangen. Das kann mit einzelnen
% Sprachpaketen eventuell Nachteile bringen, funktioniert aber aktuell ohne
% Sprachpaket, mit babel und mit polyglossia.
%    \begin{macrocode}
      \csname date\languagename\endcsname
      \csname captions\languagename\endcsname
%<class>      \ClassInfo{scrlttr2%
%<package>      \PackageInfo{scrletter%
      }{%
        used language is `\languagename'.\MessageBreak
        Supported languages are: `english', `UKenglish',\MessageBreak
        `ukenglish', `british', `american', `USenglish',\MessageBreak
        `usenglish', `australian`,`canadian', `newzealand',\MessageBreak
        `german', `ngerman', `austrian', `naustrian',\MessageBreak
        `swissgerman', `nswissgermsn',\MessageBreak
        `acadian', `canadien', `francais', `french', \MessageBreak
        `dutch', `italian', `spanish', `polish',\MessageBreak
        `croatian', `finnish', `norsk', `swedish',\MessageBreak
        `czech', `slovak'%
      }%
    \fi
  \fi
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \iffalse
%</letter>
% \fi
%
%
% \iffalse
%</body>
% \fi
%
% \Finale
%
\endinput
%
% end of file `scrkernel-language.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End:
