% \CheckSum{1830}
% \iffalse meta-comment
% ======================================================================
% scrkernel-language.dtx
% Copyright (c) Markus Kohm, 2002-2013
%
% 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-2013
%
% 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 1503 2013-11-06 11:44:59Z mjk $
%<*driver>
% \fi
\ProvidesFile{scrkernel-language.dtx}[2013/11/06 v3.12 KOMA-Script 
                                                        (language)]
% \iffalse
\documentclass[halfparskip-]{scrdoc}
\usepackage[english,ngerman]{babel}
\usepackage[latin1]{inputenc}
\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}
%</driver>
% \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
%<*class&letter>
% \fi
%
% \begin{option}{numericaldate}
%   \changes{v2.8q}{2001/10/07}{Neue Option (an Stelle von
%     \texttt{scrdate} und \texttt{orgdate})}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
% 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}%
  \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
}
%    \end{macrocode}
% \begin{option}{scrdate}
%   \changes{v3.01a}{2008/11/21}{deprecated}
% \begin{option}{orgdate}
%   \changes{v3.01a}{2008/11/21}{deprecated}
%    \begin{macrocode}
\KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true}
\KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false}
%    \end{macrocode}
% \end{option}
% \end{option}
% \end{option}
%
% \iffalse
%</class&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}
% 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}{%
  \@ifstar\scr@def@scaptionname\scr@def@captionname
}
%    \end{macrocode}
% \begin{macro}{\scr@def@scaptionname}
%   \changes{v3.12}{2013/07/30}{neu (intern)}
% 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 \expandafter\AtBeginDocument
  \fi
  {%
%    \end{macrocode}
% Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1
% ab und \dots
%    \begin{macrocode}
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=%
      \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)}
% 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
  \ifx\languagename\scr@reserved@a
    \@tempswatrue
  \else
    \ifcsname l@\scr@reserved@a\endcsname
      \expandafter\ifnum\csname l@\scr@reserved@a\endcsname=\language
        \@tempswatrue
      \fi
    \fi
  \fi
  \if@tempswa
    \def\reserved@b{\endgroup
      \PackageInfo{scrbase}{activating \languagename\space \string#1}%
      \def#1{#2}%
    }%
  \fi
} 
%    \end{macrocode}
% \end{macro}^^A \scr@def@activateactivelanguageaftergroup
% \end{macro}^^A \scr@def@scaptionname
% \begin{macro}{\scr@trim@spaces}
%   \changes{v3.12}{2013/11/06}{neu (intern)}
% Diese Hilfsanweisung entfernt führende und abschließende
% Leerzeichen. Argument ist die Anweisung, deren Inhalt von den Leerzeichen
% befreit werden soll. Gedacht ist das ganze für die Listenverarbeitung.
%    \begin{macrocode}
\newcommand\scr@trim@spaces[1]{%
  \expandafter\KV@@sp@def\expandafter#1\expandafter{#1}%
}
%    \end{macrocode}
% \end{macro}^^A \scr@trim@space
% \begin{macro}{\scr@def@captionname}
%   \changes{v3.12}{2013/07/30}{neu (intern)}
% 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 \expandafter\AtBeginDocument
  \fi
  {%
%    \end{macrocode}
% Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1
% ab und \dots
%    \begin{macrocode}
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=%
      \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
              \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
%
% \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
% 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}{%
  \@ifstar\scr@provide@scaptionname\scr@provide@captionname
}
%    \end{macrocode}
% \begin{macro}{\scr@provide@scaptionname}
%   \changes{v3.12}{2013/07/30}{neu (intern)}
%    \begin{macrocode}
\newcommand*{\scr@provide@scaptionname}[3]{%
  \if@atdocument \expandafter\@firstofone
  \else \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=%
      \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
            \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)}
% Die Normalvariante von \cs{providecaptionname}, mit denselben Argumenten.
%    \begin{macrocode}
\newcommand*{\scr@provide@captionname}[3]{%
  \if@atdocument \expandafter\@firstofone
  \else \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=%
      \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
            \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
% 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}{%
  \@ifstar\scr@new@scaptionname\scr@new@captionname
}
%    \end{macrocode}
% \begin{macro}{\scr@new@scaptionname}
%   \changes{v3.12}{2013/07/30}{neu (intern)}
% Die Sternvariante von \cs{newcaptionname}. Die Argumente sind dieselben.
%    \begin{macrocode}
\newcommand*{\scr@new@scaptionname}[3]{%
  \if@atdocument \expandafter\@firstofone
  \else \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=%
      \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
            \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)}
% Die Normalvariante von \cs{newcaptionname}, mit denselben Argumenten.
%    \begin{macrocode}
\newcommand*{\scr@new@captionname}[3]{%
  \if@atdocument \expandafter\@firstofone
  \else \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=%
      \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
            \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
% 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}{%
  \@ifstar\scr@renew@scaptionname\scr@renew@captionname
}
%    \end{macrocode}
% \begin{macro}{\scr@renew@scaptionname}
%   \changes{v3.12}{2013/07/30}{neu (intern)}
% Die Sternvariante von \cs{renewcaptionname}. Die Argumente sind dieselben.
%    \begin{macrocode}
\newcommand*{\scr@renew@scaptionname}[3]{%
  \if@atdocument \expandafter\@firstofone
  \else \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=%
      \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
            \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)}
% Die Normalvariante von \cs{renewcaptionname}, mit denselben Argumenten.
%    \begin{macrocode}
\newcommand*{\scr@renew@captionname}[3]{%
  \if@atdocument \expandafter\@firstofone
  \else \expandafter\AtBeginDocument
  \fi
  {%
    \begingroup
      \let\reserved@b\endgroup
      \edef\scr@reserved@a{#1}%
      \@onelevel@sanitize\scr@reserved@a
      \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=%
      \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
            \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>
%<*class>
% \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}{%
    \ClassInfo{%
      scrlttr2%
    }{%
      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}
% \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}{\captionsgerman}
% \begin{macro}{\dategerman}
% \begin{macro}{\captionsngerman}
%   \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}
% \begin{macro}{\datengerman}
%   \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}
% \begin{macro}{\captionsaustrian}
% \begin{macro}{\dateaustrian}
% \begin{macro}{\captionsnaustrian}
%   \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}
% \begin{macro}{\datenaustrian}
%   \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}
% \begin{macro}{\captionsfrench}
% \begin{macro}{\datefrench}
% \begin{macro}{\captionsitalian}
% \begin{macro}{\dateitalian}
%   \changes{v2.3e}{1996/05/31}{Ich hoffe, dass das stimmt}
% \begin{macro}{\captionsspanish}
% \begin{macro}{\datespanish}
%   \changes{v2.4c}{1997/11/25}{Ich hoffe, dass das stimmt}
%   \changes{v2.4c}{1997/11/25}{Datumsumschaltung nicht mehr zwingend} 
% \begin{macro}{\captionscroation}
%   \changes{v2.8q}{2001/05/10}{Neu}
% \begin{macro}{\datecroatian}
%   \changes{v2.8q}{2001/05/10}{Neu}
% \begin{macro}{\captionsdutch}
%   \changes{v2.8q}{2002/02/01}{Neu}
% \begin{macro}{\datedutch}
%   \changes{v2.8q}{2002/02/01}{Neu}
% \begin{macro}{\captionsfinnish}
%   \changes{v2.9u}{2005/02/07}{Unterstützung für Finnisch (Dank Hannu
%     Väisänen)}
%   \changes{v2.9u}{2005/02/07}{Neu}
% \begin{macro}{\datefinnish}
%   \changes{v2.9u}{2005/02/07}{Neu}
%   \changes{v3.01c}{2008/12/29}{Aktivierung korrigiert}
% \begin{macro}{\captionsnorsk}
%   \changes{v3.02}{2009/01/01}{Neu}
% \begin{macro}{\datenorsk}
%   \changes{v3.02}{2009/01/01}{Neu}
% \begin{macro}{\captionsnorsk}
%   \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}
% \begin{macro}{\datenorsk}
%   \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}
% 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]
%     English & Frank Neukam, Michael Dewey, Markus Kohm \\
%     Deutsch & Frank Neukam, Markus Kohm \\
%     Französisch & Frank Neukam, Henk Jongbloets \\
%     Italienisch & Simone Naldi \\
%     Spanisch & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\
%     Kroatisch & Branka Lon\v{c}arevi\'{c} \\
%     Holländisch & Henk Jongbloets \\
%     Finnisch & Hannu Väisänen \\
%     Norwegisch & Sveinung Heggen \\
%     Schwedisch & Benjamin Hell\\
%   \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>
% \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>
% \fi
%    \begin{macrocode}
    }%
  }{}%
  \providecaptionname{english}\yourrefname{Your ref.}%
  \providecaptionname{english}\yourmailname{Your letter of}%
  \providecaptionname{english}\myrefname{Our ref.}%
  \providecaptionname{english}\customername{Customer no.}%
  \providecaptionname{english}\invoicename{Invoice no.}%
  \providecaptionname{english}\subjectname{Subject}%
  \providecaptionname{english}\ccname{cc}%
  \providecaptionname{english}\enclname{encl}%
  \providecaptionname{english}\headtoname{To}%
  \providecaptionname{english}\headfromname{From}%
  \providecaptionname{english}\datename{Date}%
  \providecaptionname{english}\pagename{Page}%
  \providecaptionname{english}\phonename{Phone}%
  \providecaptionname{english}\mobilephonename{Mobile phone}%
  \providecaptionname{english}\faxname{Fax}%
  \providecaptionname{english}\emailname{Email}%
  \providecaptionname{english}\wwwname{Url}%
  \providecaptionname{english}\bankname{Bank account}%
  \g@addnumerical@date{english}{\number\day/\number\month/\number\year}%
  \providecaptionname{USenglish}\yourrefname{Your ref.}%
  \providecaptionname{USenglish}\yourmailname{Your letter of}%
  \providecaptionname{USenglish}\myrefname{Our ref.}%
  \providecaptionname{USenglish}\customername{Customer no.}%
  \providecaptionname{USenglish}\invoicename{Invoice no.}%
  \providecaptionname{USenglish}\subjectname{Subject}%
  \providecaptionname{USenglish}\ccname{cc}%
  \providecaptionname{USenglish}\enclname{encl}%
  \providecaptionname{USenglish}\headtoname{To}%
  \providecaptionname{USenglish}\headfromname{From}%
  \providecaptionname{USenglish}\datename{Date}%
  \providecaptionname{USenglish}\pagename{Page}%
  \providecaptionname{USenglish}\phonename{Phone}%
  \providecaptionname{USenglish}\mobilephonename{Cell phone}%
  \providecaptionname{USenglish}\faxname{Fax}%
  \providecaptionname{USenglish}\emailname{Email}%
  \providecaptionname{USenglish}\wwwname{Url}%
  \providecaptionname{USenglish}\bankname{Bank account}%
  \g@addnumerical@date{USenglish}{\number\month/\number\day/\number\year}%
  \providecaptionname{american}\yourrefname{Your ref.}%
  \providecaptionname{american}\yourmailname{Your letter of}%
  \providecaptionname{american}\myrefname{Our ref.}%
  \providecaptionname{american}\customername{Customer no.}%
  \providecaptionname{american}\invoicename{Invoice no.}%
  \providecaptionname{american}\subjectname{Subject}%
  \providecaptionname{american}\ccname{cc}%
  \providecaptionname{american}\enclname{encl}%
  \providecaptionname{american}\headtoname{To}%
  \providecaptionname{american}\headfromname{From}%
  \providecaptionname{american}\datename{Date}%
  \providecaptionname{american}\pagename{Page}%
  \providecaptionname{american}\phonename{Phone}%
  \providecaptionname{american}\mobilephonename{Cell phone}%
  \providecaptionname{american}\faxname{Fax}%
  \providecaptionname{american}\emailname{Email}%
  \providecaptionname{american}\wwwname{Url}%
  \providecaptionname{american}\bankname{Bank account}%
  \g@addnumerical@date{american}{\number\month/\number\day/\number\year}%
  \providecaptionname{british}\yourrefname{Your ref.}%
  \providecaptionname{british}\yourmailname{Your letter of}%
  \providecaptionname{british}\myrefname{Our ref.}%
  \providecaptionname{british}\customername{Customer no.}%
  \providecaptionname{british}\invoicename{Invoice no.}%
  \providecaptionname{british}\subjectname{Subject}%
  \providecaptionname{british}\ccname{cc}%
  \providecaptionname{british}\enclname{encl}%
  \providecaptionname{british}\headtoname{To}%
  \providecaptionname{british}\headfromname{From}%
  \providecaptionname{british}\datename{Date}%
  \providecaptionname{british}\pagename{Page}%
  \providecaptionname{british}\phonename{Phone}%
  \providecaptionname{british}\mobilephonename{Mobile phone}%
  \providecaptionname{british}\faxname{Fax}%
  \providecaptionname{british}\emailname{Email}%
  \providecaptionname{british}\wwwname{Url}%
  \providecaptionname{british}\bankname{Bank account}%
  \g@addnumerical@date{british}{\number\day/\number\month/\number\year}%
  \providecaptionname{UKenglish}\yourrefname{Your ref.}%
  \providecaptionname{UKenglish}\yourmailname{Your letter of}%
  \providecaptionname{UKenglish}\myrefname{Our ref.}%
  \providecaptionname{UKenglish}\customername{Customer no.}%
  \providecaptionname{UKenglish}\invoicename{Invoice no.}%
  \providecaptionname{UKenglish}\subjectname{Subject}%
  \providecaptionname{UKenglish}\ccname{cc}%
  \providecaptionname{UKenglish}\enclname{encl}%
  \providecaptionname{UKenglish}\headtoname{To}%
  \providecaptionname{UKenglish}\headfromname{From}%
  \providecaptionname{UKenglish}\datename{Date}%
  \providecaptionname{UKenglish}\pagename{Page}%
  \providecaptionname{UKenglish}\phonename{Phone}%
  \providecaptionname{UKenglish}\mobilephonename{Mobile phone}%
  \providecaptionname{UKenglish}\faxname{Fax}%
  \providecaptionname{UKenglish}\emailname{Email}%
  \providecaptionname{UKenglish}\wwwname{Url}%
  \providecaptionname{UKenglish}\bankname{Bank account}%
  \g@addnumerical@date{UKenglish}{\number\day/\number\month/\number\year}%
  \providecaptionname{german}\yourrefname{Ihr Zeichen}%
  \providecaptionname{german}\yourmailname{Ihr Schreiben vom}%
  \providecaptionname{german}\myrefname{Unser Zeichen}%
  \providecaptionname{german}\customername{Kundennummer}%
  \providecaptionname{german}\invoicename{Rechnungsnummer}%
  \providecaptionname{german}\subjectname{Betrifft}%
  \providecaptionname{german}\ccname{Kopien an}%
  \providecaptionname{german}\enclname{Anlagen}%
  \providecaptionname{german}\headtoname{An}%
  \providecaptionname{german}\headfromname{Von}%
  \providecaptionname{german}\datename{Datum}%
  \providecaptionname{german}\pagename{Seite}%
  \providecaptionname{german}\phonename{Telephon}%
  \providecaptionname{german}\mobilephonename{Mobiltelephon}%
  \providecaptionname{german}\faxname{Fax}%
  \providecaptionname{german}\emailname{E-Mail}%
  \providecaptionname{german}\wwwname{URL}%
  \providecaptionname{german}\bankname{Bankverbindung}%
  \g@addnumerical@date{german}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{ngerman}\yourrefname{Ihr Zeichen}%
  \providecaptionname{ngerman}\yourmailname{Ihr Schreiben vom}%
  \providecaptionname{ngerman}\myrefname{Unser Zeichen}%
  \providecaptionname{ngerman}\customername{Kundennummer}%
  \providecaptionname{ngerman}\invoicename{Rechnungsnummer}%
  \providecaptionname{ngerman}\subjectname{Betrifft}%
  \providecaptionname{ngerman}\ccname{Kopien an}%
  \providecaptionname{ngerman}\enclname{Anlagen}%
  \providecaptionname{ngerman}\headtoname{An}%
  \providecaptionname{ngerman}\headfromname{Von}%
  \providecaptionname{ngerman}\datename{Datum}%
  \providecaptionname{ngerman}\pagename{Seite}%
  \providecaptionname{ngerman}\phonename{Telefon}%
  \providecaptionname{ngerman}\mobilephonename{Handy}%
  \providecaptionname{ngerman}\faxname{Fax}%
  \providecaptionname{ngerman}\emailname{E-Mail}%
  \providecaptionname{ngerman}\wwwname{URL}%
  \providecaptionname{ngerman}\bankname{Bankverbindung}%
  \g@addnumerical@date{ngerman}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{austrian}\yourrefname{Ihr Zeichen}%
  \providecaptionname{austrian}\yourmailname{Ihr Schreiben vom}%
  \providecaptionname{austrian}\myrefname{Unser Zeichen}%
  \providecaptionname{austrian}\customername{Kundennummer}%
  \providecaptionname{austrian}\invoicename{Rechnungsnummer}%
  \providecaptionname{austrian}\subjectname{Betrifft}%
  \providecaptionname{austrian}\ccname{Kopien an}%
  \providecaptionname{austrian}\enclname{Anlagen}%
  \providecaptionname{austrian}\headtoname{An}%
  \providecaptionname{austrian}\headfromname{Von}%
  \providecaptionname{austrian}\datename{Datum}%
  \providecaptionname{austrian}\pagename{Seite}%
  \providecaptionname{austrian}\phonename{Telefon}%
  \providecaptionname{austrian}\mobilephonename{Mobiltelefon}%
  \providecaptionname{austrian}\faxname{Fax}%
  \providecaptionname{austrian}\emailname{E-Mail}%
  \providecaptionname{austrian}\wwwname{URL}%
  \providecaptionname{austrian}\bankname{Bankverbindung}%
  \g@addnumerical@date{austrian}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{naustrian}\yourrefname{Ihr Zeichen}%
  \providecaptionname{naustrian}\yourmailname{Ihr Schreiben vom}%
  \providecaptionname{naustrian}\myrefname{Unser Zeichen}%
  \providecaptionname{naustrian}\customername{Kundennummer}%
  \providecaptionname{naustrian}\invoicename{Rechnungsnummer}%
  \providecaptionname{naustrian}\subjectname{Betrifft}%
  \providecaptionname{naustrian}\ccname{Kopien an}%
  \providecaptionname{naustrian}\enclname{Anlagen}%
  \providecaptionname{naustrian}\headtoname{An}%
  \providecaptionname{naustrian}\headfromname{Von}%
  \providecaptionname{naustrian}\datename{Datum}%
  \providecaptionname{naustrian}\pagename{Seite}%
  \providecaptionname{naustrian}\phonename{Telefon}%
  \providecaptionname{naustrian}\phonename{Handy}%
  \providecaptionname{naustrian}\faxname{Fax}%
  \providecaptionname{naustrian}\emailname{E-Mail}%
  \providecaptionname{naustrian}\wwwname{URL}%
  \providecaptionname{naustrian}\bankname{Bankverbindung}%
  \g@addnumerical@date{naustrian}{\number\day.\,\number\month.\,\number\year}%
  \providecaptionname{french}\yourrefname{Vos r\'ef\'erences}%
  \providecaptionname{french}\yourmailname{Votre lettre du}%
  \providecaptionname{french}\myrefname{Nos r\'ef\'erences}%
  \providecaptionname{french}\customername{Num\'ero de client}%
  \providecaptionname{french}\invoicename{Num\'ero de facture}%
  \providecaptionname{french}\subjectname{Concernant}%
  \providecaptionname{french}\ccname{Copie \`a}%
  \providecaptionname{french}\enclname{Annexes}%
  \providecaptionname{french}\headtoname{A}%
  \providecaptionname{french}\headfromname{De}%
  \providecaptionname{french}\datename{Date}%
  \providecaptionname{french}\pagename{Page}%
  \providecaptionname{french}\phonename{T\'el\'ephone}%
  \providecaptionname{french}\mobilephonename{Portable}%
  \providecaptionname{french}\faxname{T\'el\'efax}%
  \providecaptionname{french}\emailname{E-mail}%
  \providecaptionname{french}\wwwname{URL}%
  \providecaptionname{french}\bankname{Compte en banque}%
  \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}%
%    \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}
%   \changes{v2.5}{1999/09/08}{Sprachauswahl um ngermen erweitert}
%   \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}
%    \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}
% 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
    \ClassWarningNoLine{%
      scrlttr2%
    }{%
      \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
    \ClassWarningNoLine{scrlttr2}{\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
        \captionsamerican
        \dateamerican
    \fi\fi
    \ifx\l@british\undefined\else\ifnum\language=\l@british
        \captionsbritish
        \datebritish
    \fi\fi
    \ifx\l@UKenglish\undefined\else\ifnum\language=\l@UKenglish
        \captionsUKenglish
        \dateUKenglish
    \fi\fi
    \ifx\l@USenglish\undefined\else\ifnum\language=\l@USenglish
        \captionsUSenglish
        \dateUSenglish
    \fi\fi
    \ifx\l@austrian\undefined\else\ifnum\language=\l@austrian
        \captionsaustrian
        \dateaustrian
    \fi\fi
    \ifx\l@naustrian\undefined\else\ifnum\language=\l@naustrian
        \captionsnaustrian
        \datenaustrian
    \fi\fi
    \ifx\l@german\undefined\else\ifnum\language=\l@german
        \captionsgerman
        \dategerman
    \fi\fi
    \ifx\l@ngerman\undefined\else\ifnum\language=\l@ngerman
        \captionsngerman
        \datengerman
    \fi\fi
    \ifx\l@french\undefined\else\ifnum\language=\l@french
        \captionsfrench
        \datefrench
    \fi\fi
    \ifx\l@italian\undefined\else\ifnum\language=\l@italian
        \captionsitalian
        \dateitalian
    \fi\fi
    \ifx\l@spanish\undefined\else\ifnum\language=\l@spanish
        \captionsspanish
        \datespanish
    \fi\fi
    \ifx\l@croatian\undefined\else\ifnum\language=\l@croatian
        \captionscroatian
        \datecroatian
    \fi\fi
    \ifx\l@dutch\undefined\else\ifnum\language=\l@dutch
        \captionsdutch
        \datedutch
    \fi\fi
    \ifx\l@finnish\undefined\else\ifnum\language=\l@finnish
        \captionsfinnish
        \datefinnish
    \fi\fi
    \ifx\l@norsk\undefined\else\ifnum\language=\l@norsk
        \captionsnorsk
        \datenorsk
    \fi\fi
    \ifx\l@swedish\undefined\else\ifnum\language=\l@swedish
        \captionsswedish
        \dateswedish
    \fi\fi
  \else
    \edef\@tempa{nohyphenation}%
    \ifx\languagename\@tempa
      \ClassWarningNoLine{%
        scrlttr2%
      }{%
        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
      \ClassInfo{scrlttr2}{%
        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}
% 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
      \ClassInfo{%
        scrlttr2%
      }{%
        used language is `\languagename'.\MessageBreak
        Supported languages are `english', `UKenglish',\MessageBreak
        `british', `american', `USenglish',\MessageBreak
        `german', `ngerman', `austrian', `naustrian',\MessageBreak
        `dutch', `italian', `spanish',\MessageBreak
        `croatian', `finnish', `norsk', `swedish'%
      }%
    \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}
%
% \iffalse
%</letter>
%</class>
% \fi
%
%
% \iffalse
%</body>
% \fi
%
% \Finale
%
\endinput
%
% end of file `scrkernel-language.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End:
