% \CheckSum{2080}
% \iffalse meta-comment
% ======================================================================
% scrkernel-language.dtx
% Copyright (c) Markus Kohm, 2002-2018
%
% 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-2018
%
% 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 3011 2018-08-29 07:35:17Z kohm $
%
%<*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 \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
% 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
% \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
}%
% \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}
% \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
% 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
% \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
\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 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
% \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
\@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
\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}%
%
\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}%
%
\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
% 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
\@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
\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}%
%
\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}%
%
\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
% 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
\@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
\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
% 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
\@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
\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
% 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
\@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
\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
% 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
\@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
\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
%
% \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%
% \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
%
% \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}{\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|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>
% \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{australien}{\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
% \ClassWarningNoLine{scrlttr2%
% \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
% \ClassWarningNoLine{scrlttr2%
% \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
% \ClassWarningNoLine{scrlttr2%
% \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
% \ClassInfo{scrlttr2%
% \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
% \ClassInfo{scrlttr2%
% \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}
%
% \iffalse
%
% \fi
%
%
% \iffalse
%
% \fi
%
% \Finale
%
\endinput
%
% end of file `scrkernel-language.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End: