summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-01-10 23:26:30 +0000
committerKarl Berry <karl@freefriends.org>2014-01-10 23:26:30 +0000
commit01fb7e7a68abc42696057c8522cd90d8e7bbf14d (patch)
tree791ffc6d0160af438caa7cc6473316ae7c0daef2 /Master
parent1a6ebf01dcfbaa320337c0dd0242ec7064b21a6b (diff)
translations (10jan14)
git-svn-id: svn://tug.org/texlive/trunk@32632 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/translations/README4
-rw-r--r--Master/texmf-dist/doc/latex/translations/translations_en.pdfbin525149 -> 545580 bytes
-rw-r--r--Master/texmf-dist/doc/latex/translations/translations_en.tex404
-rw-r--r--Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-english.trsl208
-rw-r--r--Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-french.trsl208
-rw-r--r--Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-german.trsl208
-rw-r--r--Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-spanish.trsl208
-rw-r--r--Master/texmf-dist/tex/latex/translations/translations.sty394
8 files changed, 940 insertions, 694 deletions
diff --git a/Master/texmf-dist/doc/latex/translations/README b/Master/texmf-dist/doc/latex/translations/README
index 3879148bda4..5f3ea1f9a87 100644
--- a/Master/texmf-dist/doc/latex/translations/README
+++ b/Master/texmf-dist/doc/latex/translations/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the TRANSLATIONS package v1.1a - 2013/09/30
+the TRANSLATIONS package v1.2 - 2013/01/10
a simple translator
--------------------------------------------------------------------------
@@ -7,7 +7,7 @@ Clemens Niederberger
Web: https://github.com/cgnieder/translations/
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2011-2013 Clemens Niederberger
+Copyright 2011-2014 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/Master/texmf-dist/doc/latex/translations/translations_en.pdf b/Master/texmf-dist/doc/latex/translations/translations_en.pdf
index a15a4d684b8..92502d730b5 100644
--- a/Master/texmf-dist/doc/latex/translations/translations_en.pdf
+++ b/Master/texmf-dist/doc/latex/translations/translations_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/translations/translations_en.tex b/Master/texmf-dist/doc/latex/translations/translations_en.tex
index a7ed58655cc..51fc69d6412 100644
--- a/Master/texmf-dist/doc/latex/translations/translations_en.tex
+++ b/Master/texmf-dist/doc/latex/translations/translations_en.tex
@@ -1,4 +1,4 @@
-% arara: pdflatex
+% arara: pdflatex: { shell: on }
% arara: biber
% arara: pdflatex
% arara: pdflatex
@@ -12,7 +12,7 @@
% Web: https://github.com/cgnieder/translations/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2011-2013 Clemens Niederberger
+% Copyright 2011-2014 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -41,6 +41,8 @@
url = https://github.com/cgnieder/translations/ ,
info = {Internationalization of \LaTeXe\ Packages} ,
add-cmds = {
+ baselanguage,
+ baselanguagename,
DeclareDictTranslation,
DeclareLanguage,
DeclareLanguageAlias,
@@ -53,6 +55,7 @@
LoadDictionaryFor,
NewTranslation,
ProvideDictionaryFor,
+ ProvideDictTranslation,
RenewTranslation,
SaveTranslation,
SaveTranslationFor
@@ -106,16 +109,17 @@
\section{Motivation}
This package provides means for package authors to have an easy interface for
internationalization of their packages. The functionality of this package is
-in many parts also covered by the package \pkg{translator} (part of the
-\pkg*{beamer} bundle). Internationalization is also possible with
-\pkg{babel}~\cite{pkg:babel} and it's \cs*{addto}\cs*{captions\meta{language}}
-mechanism or \KOMAScript's \cs*{providecaptionname} and similar commands.
-However, I believe that \translations\ is more flexible than all of these.
-Unlike \pkg{translator} it detects the used (\pkg{babel} or
-\pkg{polyglossia}~\cite{pkg:polyglossia}) language itself and provides
-expandable retrieving of the translated key. \translations\ also provides
-support for language dialects which means package authors can for example
-distinguish between British, Australian, Canadian and US~English.
+in many parts also covered by the package
+\pkg{translator}~\cite{pkg:translator} (part of the \pkg*{beamer} bundle).
+Internationalization is also possible with \pkg{babel}~\cite{pkg:babel} and
+it's \cs*{addto}\cs*{captions\meta{language}} mechanism or \KOMAScript's
+\cs*{providecaptionname} and similar commands. However, I believe that
+\translations\ is more flexible than all of these. Unlike \pkg{translator} it
+detects the used (\pkg{babel} or \pkg{polyglossia}~\cite{pkg:polyglossia})
+language itself and provides expandable retrieving of the translated key.
+\translations\ also provides support for language dialects which means package
+authors can for example distinguish between British, Australian, Canadian and
+US~English.
The first draft of the package was written since I missed an expandable
version of \pkg{translator}'s \cs*{translate} command. Once I had the
@@ -126,9 +130,9 @@ extended to the needs I faced there.
\section{License and Requirements}\label{sec:license}
\license
-\translations\ requires the packages
-\needpackage{etoolbox}~\cite{pkg:etoolbox} and \pkg*{scrlfile} (part of the
-\KOMAScript\ bundle\footnote{\CTANurl{koma-script}}~\cite{pkg:koma-script}).
+\translations\ requires the packages \pkg{cnltx-base} from the \bnd{cnltx}
+bundle~\cite{bnd:cnltx} and \pkg{scrlfile} (part of the \KOMAScript\
+bundle~\cite{bnd:koma-script}).
\section{Usage}
@@ -167,33 +171,33 @@ translation for a given key.
\node {check if any\fnote{a} translation is defined in given language}
child {
node[text width=\nodewidth]
- {\yes\ check if language is a dialect}
+ {\yes check if language is a dialect}
child {
node[text width=\nodewidth/2]
- {\yes\ check if dialect translation is given}
+ {\yes check if dialect translation is given}
child {
node[text width=\nodewidth/2.75]
- {\yes\ use dialect translation}
+ {\yes use dialect translation}
}
child {
node[text width=\nodewidth/2.75]
- {\no\ use lan\-guage\fnote{b} translation}
+ {\no use lan\-guage\fnote{b} translation}
}
}
child {
node[text width=\nodewidth/2]
- {\no\ use translation}}
+ {\no use translation}}
}
child {
node[text width=\nodewidth]
- {\no\ check if fallback translation is given}
+ {\no check if fallback translation is given}
child {
node[text width=\nodewidth/2.75]
- {\yes\ use fallback translation}
+ {\yes use fallback translation}
}
child {
node[text width=\nodewidth/2.75]
- {\no\ use literal key}
+ {\no use literal key}
}
} ;
\end{tikzpicture}
@@ -224,112 +228,158 @@ Below the commands provided by \translations\ are explained. The symbol
Commands without the marker aren't expandable.
\begin{commands}
- \command{DeclareLanguage}[\marg{lang}]
- Declare a language that can be used by \translations. If the language
- already exists it will be silently redefined. This command can only be
- used in the preamble. It should never be necessary to use this command as
- \translations\ already declares loads of languages (\cref{sec:languages}).
- Should you miss one please send me an email and I'll add it to
- \translations.
- \command{DeclareLanguageAlias}[\marg{lang2}\marg{lang1}]
- Declares \meta{lang2} to be an alias of \meta{lang1}. If \meta{lang1}
- doesn't exist yet a warning will be raised and it will be defined. This
- command can only be used in the preamble. It should never be necessary to
- use this command as \translations\ already declares loads of languages
- (\cref{sec:languages}). Should you miss one please send me an email and
- I'll add it to \translations.
- \command{DeclareLanguageDialect}[\marg{dialect}\marg{lang}]
- Declares \meta{dialect} to be a dialect of language \meta{lang}. If a
- translation for \meta{dialect} is provided it is used by the translation
- macros. If there is none the corresponding translation for \meta{lang}
- is used instead. It should never be necessary to use this command as
- \translations\ already declares loads of languages (\cref{sec:languages}).
- Should you miss one please send me an email and I'll add it to
- \translations.
- \command{NewTranslation}[\marg{lang}\marg{key}\marg{translation}]
- Defines a translation of key \meta{key} for the language \meta{lang}.
- An error will be raised if a translation of \meta{key} already exists.
- This command can only be used in the preamble.
- \command{RenewTranslation}[\marg{lang}\marg{key}\marg{translation}]
- Redefines a translation of key \meta{key} for the language \meta{lang}.
- An error will be raised if no translation of \meta{key} exists.
- This command can only be used in the preamble.
- \command{DeclareTranslation}[\marg{lang}\marg{key}\marg{translation}]
- Defines a translation of key \meta{key} for the language \meta{lang}.
- No error will be raised if a translation of \meta{key} already exists.
- This command can only be used in the preamble.
- \command{DeclareTranslationFallback}[\marg{key}\marg{fallback}]
- Defines a fallback translation for key \meta{key} that is used in case no
- translation of \meta{key} for the currently active language has been
- provided. No error will be raised if a fallback for \meta{key} already
- exists. This command can only be used in the preamble.
- \expandable\command{GetTranslationFor}[\marg{lang}\marg{key}]
- Fetches and prints the translation of \meta{key} for the language
- \meta{lang}. This command is expandable.
- \expandable\command{GetTranslation}[\marg{key}]
- Fetches and prints the translation of \meta{key} for the currently active
- language (as for example set by \pkg{babel}). This command is expandable.
- \expandable\command{GetLCTranslationFor}[\marg{lang}\marg{key}]
- \sinceversion{1.1}Fetches and prints the translation of \meta{key} for
- the language \meta{lang}. This command ensures that the fetched
- translation is set lowercase. This command is expandable.
- \expandable\command{GetLCTranslation}[\marg{key}]
- \sinceversion{1.1}Fetches and prints the translation of \meta{key} for
- the currently active language (as for example set by \pkg{babel}). This
- command ensures that the fetched translation is set lowercase. This
- command is expandable.
- \command{GetTranslationForWarn}[\marg{lang}\marg{key}]
- \sinceversion{1.0}Fetches and prints the translation of \meta{key} for
- the language \meta{lang}. Issues a warning if no translation is
- available at the cost of expandability.
- \command{GetTranslationWarn}[\marg{key}]
- \sinceversion{1.0}Fetches and prints the translation of \meta{key} for
- the currently active language (as for example set by \pkg{babel}).
- Issues a warning if no translation is available at the cost of
- expandability.
- \command{GetLCTranslationForWarn}[\marg{lang}\marg{key}]
- \sinceversion{1.1}Fetches and prints the translation of \meta{key} for
- the language \meta{lang}. This command ensures that the fetched
- translation is set lowercase. Issues a warning if no translation is
- available at the cost of expandability.
- \command{GetLCTranslationWarn}[\marg{key}]
- \sinceversion{1.1}Fetches and prints the translation of \meta{key} for
- the currently active language (as for example set by \pkg{babel}). This
- command ensures that the fetched translation is set lowercase. Issues a
- warning if no translation is available at the cost of expandability.
- \command{SaveTranslationFor}[\marg{cmd}\marg{lang}\marg{key}]
- Fetches and saves the translation of \meta{key} for the language
- \meta{lang} in the macro \meta{cmd}.
- \command{SaveTranslation}[\marg{cmd}\marg{key}]
- Fetches and saves the translation of \meta{key} for the currently active
- language (as for example set by \pkg{babel}) in the macro \meta{cmd}.
- \command{LoadDictionary}[\marg{name}]
- Loads a file named \code{\meta{name}-\meta{lang}.trsl} where \meta{lang}
- corresponds to the lowercase name of the current language as defined with
- \cs{DeclareLanguage}. This file should contain the translations for the
- specified language.
- \command{LoadDictionaryFor}[\marg{lang}\marg{name}]
- Loads a file named \code{\meta{name}-\meta{lang}.trsl}.
- \command{DeclareDictTranslation}[\marg{key}\marg{translation}]
- This command is to be used in a dictionary file and picks up the language
- of that file, see \cref{sec:dictionaries} for an example.
- \command{ProvideDictionaryFor}[\marg{lang}\marg{name}\oarg{date}]
- Needs to be in a dictionary file. This command tells \translations\ that
- the file indeed is a dictionary and also sets the language for the
- dictionary which is used by \cs{DeclareDictTranslation}.
- \expandable\command{PrintDictionaryFor}%
- [\marg{lang}\marg{name}\marg{pre}\marg{mid}\marg{post}]
- \sinceversion{1.0}Prints all entries of dictionary \meta{name} in
- language \meta{lang} in the order the entries have been declared. For
- every entry the code\par
- \meta{pre}\meta{key}\meta{mid}\meta{translation}\meta{post}\par
- is printed. The dictionary must have been loaded of course. This may be
- of minor use but was used to print \cref{tab:dict}.
- \expandable\command{baselanguage}[\marg{lang}]
- \sinceversion{1.1}Returns the (internal) base name of the given language,
- language alias or language dialect. For a base language
- (see section~\ref{ssec:languages:base}) this usually simply is the
- lowercase version of the name.
+ \command{DeclareLanguage}[\marg{lang}]
+ Declare a language that can be used by \translations. If the language
+ already exists it will be silently redefined. This command can only be
+ used in the preamble. It should never be necessary to use this command as
+ \translations\ already declares loads of languages (\cref{sec:languages}).
+ Should you miss one please send me an email and I'll add it to
+ \translations.
+ \command{DeclareLanguageAlias}[\marg{lang2}\marg{lang1}]
+ Declares \meta{lang2} to be an alias of \meta{lang1}. If \meta{lang1}
+ doesn't exist yet a warning will be raised and it will be defined. This
+ command can only be used in the preamble. It should never be necessary to
+ use this command as \translations\ already declares loads of languages
+ (\cref{sec:languages}). Should you miss one please send me an email and
+ I'll add it to \translations.
+ \command{DeclareLanguageDialect}[\marg{dialect}\marg{lang}]
+ Declares \meta{dialect} to be a dialect of language \meta{lang}. If a
+ translation for \meta{dialect} is provided it is used by the translation
+ macros. If there is none the corresponding translation for \meta{lang}
+ is used instead. It should never be necessary to use this command as
+ \translations\ already declares loads of languages (\cref{sec:languages}).
+ Should you miss one please send me an email and I'll add it to
+ \translations.
+ \command{NewTranslation}[\marg{lang}\marg{key}\marg{translation}]
+ Defines a translation of key \meta{key} for the language \meta{lang}.
+ An error will be raised if a translation of \meta{key} already exists.
+ This command can only be used in the preamble.
+ \command{RenewTranslation}[\marg{lang}\marg{key}\marg{translation}]
+ Redefines a translation of key \meta{key} for the language \meta{lang}.
+ An error will be raised if no translation of \meta{key} exists.
+ This command can only be used in the preamble.
+ \command{ProvideTranslation}[\marg{lang}\marg{key}\marg{translation}]
+ \sinceversion{1.2}Provides a translation of key \meta{key} for the
+ language \meta{lang}. If a translation of \meta{key} already exists it
+ won't be overwritten and no error will be raised. This command can only
+ be used in the preamble.
+ \command{DeclareTranslation}[\marg{lang}\marg{key}\marg{translation}]
+ Defines a translation of key \meta{key} for the language \meta{lang}.
+ No error will be raised if a translation of \meta{key} already exists.
+ This command can only be used in the preamble.
+ \command{DeclareTranslationFallback}[\marg{key}\marg{fallback}]
+ Defines a fallback translation for key \meta{key} that is used in case no
+ translation of \meta{key} for the currently active language has been
+ provided. No error will be raised if a fallback for \meta{key} already
+ exists. This command can only be used in the preamble.
+ \expandable\command{GetTranslationFor}[\marg{lang}\marg{key}]
+ Fetches and prints the translation of \meta{key} for the language
+ \meta{lang}. This command is expandable.
+ \expandable\command{GetTranslation}[\marg{key}]
+ Fetches and prints the translation of \meta{key} for the currently active
+ language (as for example set by \pkg{babel}). This command is expandable.
+ \expandable\command{GetLCTranslationFor}[\marg{lang}\marg{key}]
+ \sinceversion{1.1}Fetches and prints the translation of \meta{key} for
+ the language \meta{lang}. This command ensures that the fetched
+ translation is set lowercase. This command is expandable (well, sort
+ of: in an \cs*{edef} it leaves \cs*{lowercase}\marg{translation} in the
+ input stream where \meta{translation} is what \cs{GetTranslationFor} would
+ expand to).
+ \expandable\command{GetLCTranslation}[\marg{key}]
+ \sinceversion{1.1}Fetches and prints the translation of \meta{key} for
+ the currently active language (as for example set by \pkg{babel}). This
+ command ensures that the fetched translation is set lowercase. This
+ command is expandable (well, sort of: in an \cs*{edef} it leaves
+ \cs*{lowercase}\marg{translation} in the input stream where
+ \meta{translation} is what \cs{GetTranslation} would expand to).
+ \command{GetTranslationForWarn}[\marg{lang}\marg{key}]
+ \sinceversion{1.0}Fetches and prints the translation of \meta{key} for
+ the language \meta{lang}. Issues a warning if no translation is
+ available at the cost of expandability.
+ \command{GetTranslationWarn}[\marg{key}]
+ \sinceversion{1.0}Fetches and prints the translation of \meta{key} for
+ the currently active language (as for example set by \pkg{babel}).
+ Issues a warning if no translation is available at the cost of
+ expandability.
+ \command{GetLCTranslationForWarn}[\marg{lang}\marg{key}]
+ \sinceversion{1.1}Fetches and prints the translation of \meta{key} for
+ the language \meta{lang}. This command ensures that the fetched
+ translation is set lowercase. Issues a warning if no translation is
+ available at the cost of expandability.
+ \command{GetLCTranslationWarn}[\marg{key}]
+ \sinceversion{1.1}Fetches and prints the translation of \meta{key} for
+ the currently active language (as for example set by \pkg{babel}). This
+ command ensures that the fetched translation is set lowercase. Issues a
+ warning if no translation is available at the cost of expandability.
+ \command{SaveTranslationFor}[\marg{cmd}\marg{lang}\marg{key}]
+ Fetches and saves the translation of \meta{key} for the language
+ \meta{lang} in the macro \meta{cmd}.
+ \command{SaveTranslation}[\marg{cmd}\marg{key}]
+ Fetches and saves the translation of \meta{key} for the currently active
+ language (as for example set by \pkg{babel}) in the macro \meta{cmd}.
+ \command{LoadDictionary}[\marg{name}]
+ Loads a file named \code{\meta{name}-\meta{lang}.trsl} where \meta{lang}
+ corresponds to the lowercase name of the current language as defined with
+ \cs{DeclareLanguage}. This file should contain the translations for the
+ specified language.
+ \command{LoadDictionaryFor}[\marg{lang}\marg{name}]
+ Loads a file named \code{\meta{name}-\meta{lang}.trsl}.
+ \command{NewDictTranslation}[\marg{key}\marg{translation}]
+ \sinceversion{0.10}This command is to be used in a dictionary file and
+ picks up the language of that file. Issues an error if either the
+ translation for the \meta{key} or the dictionary entry for the \meta{key}
+ already exists.
+ \command{RenewDictTranslation}[\marg{key}\marg{translation}]
+ \sinceversion{0.10}This command is to be used in a dictionary file and
+ picks up the language of that file. Issues an error if either the
+ translation for the \meta{key} or the dictionary entry for the \meta{key}
+ doesn't exist.
+ \command{ProvideDictTranslation}[\marg{key}\marg{translation}]
+ \sinceversion{0.10}This command is to be used in a dictionary file and
+ picks up the language of that file. Only defines the translation and adds
+ a corresponding dictionary entry if they don't exist yet. This command is
+ used in the dictionaries that a part of \translations.
+ \command{DeclareDictTranslation}[\marg{key}\marg{translation}]
+ This command is to be used in a dictionary file and picks up the language
+ of that file, see \cref{sec:dictionaries} for an example. Defines the
+ translation and adds a dictionary entry regardless if they exist or not.
+ \command{ProvideDictionaryFor}[\marg{lang}\marg{name}\oarg{date}]
+ Needs to be in a dictionary file. This command tells \translations\ that
+ the file indeed is a dictionary and also sets the language for the
+ dictionary which is used by \cs{DeclareDictTranslation}.
+ \expandable\command{PrintDictionaryFor}%
+ [\marg{lang}\marg{name}\marg{pre}\marg{mid}\marg{post}]
+ \sinceversion{1.0}Prints all entries of dictionary \meta{name} in
+ language \meta{lang} in the order the entries have been declared. For
+ every entry the code\par
+ \meta{pre}\meta{key}\meta{mid}\meta{translation}\meta{post}\par
+ is printed. The dictionary must have been loaded of course. There is
+ probably only a very limited number of use cases for this command. (It
+ was for example used to print \cref{tab:dict}.)
+ \expandable\command{baselanguage}[\marg{lang}]
+ \sinceversion{1.1}Returns the (internal) base name of the given language,
+ language alias or language dialect. This does \emph{not} give the base
+ language for a dialect! For a base language (see
+ section~\ref{ssec:languages:base}) this usually simply is the lowercase
+ version of the name. The choice for the command name is not a good one in
+ retrospect but is kept for compatibility reasons.\par
+ \verbcode+\baselanguage{English}+ $\Rightarrow$ \code{english}\\
+ \verbcode+\baselanguage{American}+ $\Rightarrow$ \code{american}
+ \expandable\command{baselanguagename}[\marg{lang}]
+ \sinceversion{1.2}The same as \cs{baselanguage} but alse gives the base
+ language name of a dialect.\par
+ \verbcode+\baselanguagename{English}+ $\Rightarrow$ \code{english}\\
+ \verbcode+\baselanguagename{American}+ $\Rightarrow$ \code{english}
+ \expandable\command{ifcurrentlanguage}[\marg{lang}\marg{true}\marg{false}]
+ \sinceversion{1.2}Places \meta{true} in the input stream if the current
+ language is \meta{lang}. Note: a dialect counts as a language of it's own
+ here. \cs{ifcurrentlanguage}\Marg{English} will for example be
+ \meta{false} if the current \pkg{babel} language is \code{american}.
+ \expandable\command{ifcurrentbaselanguage}[\marg{lang}\marg{true}\marg{false}]
+ \sinceversion{1.2}Places \meta{true} in the input stream if the current
+ language is \meta{lang}. Note: a dialect does notcount as a language of
+ it's own here. If the current \pkg{babel} language is \code{american}
+ then \cs{ifcurrentbaselanguage}\Marg{English} will be \meta{true}.
\end{commands}
\subsection{A Small Example}
@@ -396,51 +446,109 @@ either the translation will expand to the literal string.
The following three examples should make this concept clear:
-\begin{sourcecode}
- \documentclass{article}
+\begin{example}[compile]
+ \documentclass[margin=5mm]{standalone}
+ \usepackage{translations}
\DeclareTranslation{German}{foo-literal}{bar}
\begin{document}
- \GetTranslation{foo-literal} => `foo-literal'
+ \GetTranslation{foo-literal} % foo-literal
\end{document}
-\end{sourcecode}
+\end{example}
-\begin{sourcecode}
- \documentclass{article}
+\begin{example}[compile]
+ \documentclass[margin=5mm]{standalone}
+ \usepackage{translations}
\DeclareTranslationFallback{foo-literal}{foo}
\DeclareTranslation{German}{foo-literal}{bar}
\begin{document}
- \GetTranslation{foo-literal} => `foo'
+ \GetTranslation{foo-literal} % foo
\end{document}
-\end{sourcecode}
+\end{example}
-\begin{sourcecode}
- \documentclass{article}
+\begin{example}[compile]
+ \documentclass[margin=5mm]{standalone}
\usepackage[ngerman]{babel}
+ \usepackage{translations}
\DeclareTranslation{German}{foo-literal}{bar}
\begin{document}
- \GetTranslation{foo-literal} => `bar'
+ \GetTranslation{foo-literal} % bar
\end{document}
-\end{sourcecode}
+\end{example}
\subsection{Dictionaries}\label{sec:dictionaries}
-\subsubsection{Own Dictionaries}
+\subsubsection{Background}
+\translations\ provides the means to write dictionary files that can be loaded
+by packages or in a document. Dictionaries can be loaded for the currently
+active language with \cs{LoadDictionary} or for a specific language with
+\cs{LoadDictionaryFor}.
+
+\begin{commands}
+ \command{LoadDictionary}[\marg{name}]
+ Loads a file named \code{\meta{name}-\meta{lang}.trsl} where \meta{lang}
+ corresponds to the lowercase name of the current language as defined with
+ \cs{DeclareLanguage}. This file should contain the translations for the
+ specified language.
+ \command{LoadDictionaryFor}[\marg{lang}\marg{name}]
+ Loads a file named \code{\meta{name}-\meta{lang}.trsl}.
+\end{commands}
+
+A package could provide dictionary files for its language dependent settings
+and include the needed one at begin document. The basics for creating a
+dictionary file are explained in section~\ref{sec:own-dictionaries}.
+
+\translations\ already provides a few basic dictionary files. If the main
+document language fits to one of the provided files the corresponding basic
+dictionary is loaded at begin document by \translations, see
+section~\ref{sec:transl-basic-dict} for more on this.
+
+\subsubsection{Own Dictionaries}\label{sec:own-dictionaries}
A typical dictionary file should look as follows:
\begin{sourcecode}
% this is file housing-german.trsl
\ProvideDictionaryFor{German}{housing}[<version info>]
- \DeclareDictTranslation{kitchen (housing)}{K\"uche}
- \DeclareDictTranslation{bathroom (housing)}{Bad}
- \DeclareDictTranslation{living room (housing)}{Wohnzimmer}
- \DeclareDictTranslation{bedroom (housing)}{Schlafzimmer}
+ \ProvideDictTranslation{kitchen (housing)}{K\"uche}
+ \ProvideDictTranslation{bathroom (housing)}{Bad}
+ \ProvideDictTranslation{living room (housing)}{Wohnzimmer}
+ \ProvideDictTranslation{bedroom (housing)}{Schlafzimmer}
...
\endinput
\end{sourcecode}
The usage is similar to the one in a package: unique keys are given
translations, this time for the language the dictionary file is declared for
-only.
+only. Translations can be declared by one of the following commands:
+\begin{commands}
+ \command{NewDictTranslation}[\marg{key}\marg{translation}]
+ \sinceversion{0.10}This command is to be used in a dictionary file and
+ picks up the language of that file. Issues an error if either the
+ translation for the \meta{key} or the dictionary entry for the \meta{key}
+ already exists.
+ \command{RenewDictTranslation}[\marg{key}\marg{translation}]
+ \sinceversion{0.10}This command is to be used in a dictionary file and
+ picks up the language of that file. Issues an error if either the
+ translation for the \meta{key} or the dictionary entry for the \meta{key}
+ doesn't exist.
+ \command{ProvideDictTranslation}[\marg{key}\marg{translation}]
+ \sinceversion{0.10}This command is to be used in a dictionary file and
+ picks up the language of that file. Only defines the translation and adds
+ a corresponding dictionary entry if they don't exist yet. This command is
+ used in the dictionaries that a part of \translations.
+ \command{DeclareDictTranslation}[\marg{key}\marg{translation}]
+ This command is to be used in a dictionary file and picks up the language
+ of that file, see \cref{sec:dictionaries} for an example. Defines the
+ translation and adds a dictionary entry regardless if they exist or not.
+\end{commands}
+
+Every dictionary file \emph{must} contain the declaration
+\cs{ProvideDictionaryFor}:
+\begin{commands}
+ \command{ProvideDictionaryFor}[\marg{lang}\marg{name}\oarg{date}]
+ Needs to be in a dictionary file. This command tells \translations\ that
+ the file indeed is a dictionary and also sets the language for the
+ dictionary which is used by \cs{NewDictTranslation} or similar commands.
+\end{commands}
-\subsubsection{\translations' Basic Dictionaries}
+\subsubsection{\translations' Basic Dictionaries}\label{sec:transl-basic-dict}
\translations\ already provides a basic dictionary for the languages English,
French, German and Spanish. This dictionary is loaded automatically if the
document language is one of these four. If you'd like to contribute and add
diff --git a/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-english.trsl b/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-english.trsl
index 3d35879a604..1e04357ccff 100644
--- a/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-english.trsl
+++ b/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-english.trsl
@@ -1,109 +1,109 @@
\ProvideDictionaryFor{English}{translations-basic-dictionary}
-\DeclareDictTranslation{Abstract}{Abstract}
-\DeclareDictTranslation{Addresses}{Addresses}
-\DeclareDictTranslation{addresses}{addresses}
-\DeclareDictTranslation{Address}{Address}
-\DeclareDictTranslation{address}{address}
-\DeclareDictTranslation{and}{and}
-\DeclareDictTranslation{Appendix}{Appendix}
-\DeclareDictTranslation{Authors}{Authors}
-\DeclareDictTranslation{authors}{authors}
-\DeclareDictTranslation{Author}{Author}
-\DeclareDictTranslation{author}{author}
-\DeclareDictTranslation{Bibliography}{Bibliography}
-\DeclareDictTranslation{cc}{cc}
-\DeclareDictTranslation{Chapters}{Chapters}
-\DeclareDictTranslation{chapters}{chapters}
-\DeclareDictTranslation{Chapter}{Chapter}
-\DeclareDictTranslation{chapter}{chapter}
-\DeclareDictTranslation{Conclusion}{Conclusion}
-\DeclareDictTranslation{conclusion}{conclusion}
-\DeclareDictTranslation{Contents}{Contents}
-\DeclareDictTranslation{Continuation}{Continuation}
-\DeclareDictTranslation{continuation}{continuation}
-\DeclareDictTranslation{cont}{cont}
-\DeclareDictTranslation{encl (plural)}{encl}
-\DeclareDictTranslation{encl (singular)}{encl}
-\DeclareDictTranslation{encl}{encl}
-\DeclareDictTranslation{Figures}{Figures}
-\DeclareDictTranslation{figures}{figures}
-\DeclareDictTranslation{Figure}{Figure}
-\DeclareDictTranslation{figure}{figure}
-\DeclareDictTranslation{From}{From}
-\DeclareDictTranslation{from}{from}
-\DeclareDictTranslation{Glossary}{Glossary}
-\DeclareDictTranslation{Index}{Index}
-\DeclareDictTranslation{Introduction}{Introduction}
-\DeclareDictTranslation{introduction}{introduction}
-\DeclareDictTranslation{List of Figures and Tables}{List of Figures and Tables}
-\DeclareDictTranslation{List of Figures}{List of Figures}
-\DeclareDictTranslation{List of Tables}{List of Tables}
-\DeclareDictTranslation{or}{or}
-\DeclareDictTranslation{Outline}{Outline}
-\DeclareDictTranslation{Overview}{Overview}
-\DeclareDictTranslation{Pages}{Pages}
-\DeclareDictTranslation{pages}{pages}
-\DeclareDictTranslation{Page}{Page}
-\DeclareDictTranslation{page}{page}
-\DeclareDictTranslation{Paragraphs}{Paragraphs}
-\DeclareDictTranslation{paragraphs}{paragraphs}
-\DeclareDictTranslation{Paragraph}{Paragraph}
-\DeclareDictTranslation{paragraph}{paragraph}
-\DeclareDictTranslation{Parts}{Parts}
-\DeclareDictTranslation{parts}{parts}
-\DeclareDictTranslation{Part}{Part}
-\DeclareDictTranslation{part}{part}
-\DeclareDictTranslation{Preface}{Preface}
-\DeclareDictTranslation{Proofs}{Proofs}
-\DeclareDictTranslation{proofs}{proofs}
-\DeclareDictTranslation{Proof}{Proof}
-\DeclareDictTranslation{proof}{proof}
-\DeclareDictTranslation{References}{References}
-\DeclareDictTranslation{Related work}{Related work}
-\DeclareDictTranslation{Related Work}{Related Work}
-\DeclareDictTranslation{Sections}{Sections}
-\DeclareDictTranslation{sections}{sections}
-\DeclareDictTranslation{Section}{Section}
-\DeclareDictTranslation{section}{section}
-\DeclareDictTranslation{See also}{See also}
-\DeclareDictTranslation{see also}{see also}
-\DeclareDictTranslation{See}{See}
-\DeclareDictTranslation{see}{see}
-\DeclareDictTranslation{Sketch of Proofs}{Sketch of Proofs}
-\DeclareDictTranslation{Sketch of proofs}{Sketch of proofs}
-\DeclareDictTranslation{Sketch of Proof}{Sketch of Proof}
-\DeclareDictTranslation{Sketch of proof}{Sketch of proof}
-\DeclareDictTranslation{Subsections}{Subsections}
-\DeclareDictTranslation{subsections}{subsections}
-\DeclareDictTranslation{Subsection}{Subsection}
-\DeclareDictTranslation{subsection}{subsection}
-\DeclareDictTranslation{Summary}{Summary}
-\DeclareDictTranslation{Tables}{Tables}
-\DeclareDictTranslation{tables}{tables}
-\DeclareDictTranslation{Table}{Table}
-\DeclareDictTranslation{table}{table}
-\DeclareDictTranslation{To}{To}
-\DeclareDictTranslation{to}{to}
+\ProvideDictTranslation{Abstract}{Abstract}
+\ProvideDictTranslation{Addresses}{Addresses}
+\ProvideDictTranslation{addresses}{addresses}
+\ProvideDictTranslation{Address}{Address}
+\ProvideDictTranslation{address}{address}
+\ProvideDictTranslation{and}{and}
+\ProvideDictTranslation{Appendix}{Appendix}
+\ProvideDictTranslation{Authors}{Authors}
+\ProvideDictTranslation{authors}{authors}
+\ProvideDictTranslation{Author}{Author}
+\ProvideDictTranslation{author}{author}
+\ProvideDictTranslation{Bibliography}{Bibliography}
+\ProvideDictTranslation{cc}{cc}
+\ProvideDictTranslation{Chapters}{Chapters}
+\ProvideDictTranslation{chapters}{chapters}
+\ProvideDictTranslation{Chapter}{Chapter}
+\ProvideDictTranslation{chapter}{chapter}
+\ProvideDictTranslation{Conclusion}{Conclusion}
+\ProvideDictTranslation{conclusion}{conclusion}
+\ProvideDictTranslation{Contents}{Contents}
+\ProvideDictTranslation{Continuation}{Continuation}
+\ProvideDictTranslation{continuation}{continuation}
+\ProvideDictTranslation{cont}{cont}
+\ProvideDictTranslation{encl (plural)}{encl}
+\ProvideDictTranslation{encl (singular)}{encl}
+\ProvideDictTranslation{encl}{encl}
+\ProvideDictTranslation{Figures}{Figures}
+\ProvideDictTranslation{figures}{figures}
+\ProvideDictTranslation{Figure}{Figure}
+\ProvideDictTranslation{figure}{figure}
+\ProvideDictTranslation{From}{From}
+\ProvideDictTranslation{from}{from}
+\ProvideDictTranslation{Glossary}{Glossary}
+\ProvideDictTranslation{Index}{Index}
+\ProvideDictTranslation{Introduction}{Introduction}
+\ProvideDictTranslation{introduction}{introduction}
+\ProvideDictTranslation{List of Figures and Tables}{List of Figures and Tables}
+\ProvideDictTranslation{List of Figures}{List of Figures}
+\ProvideDictTranslation{List of Tables}{List of Tables}
+\ProvideDictTranslation{or}{or}
+\ProvideDictTranslation{Outline}{Outline}
+\ProvideDictTranslation{Overview}{Overview}
+\ProvideDictTranslation{Pages}{Pages}
+\ProvideDictTranslation{pages}{pages}
+\ProvideDictTranslation{Page}{Page}
+\ProvideDictTranslation{page}{page}
+\ProvideDictTranslation{Paragraphs}{Paragraphs}
+\ProvideDictTranslation{paragraphs}{paragraphs}
+\ProvideDictTranslation{Paragraph}{Paragraph}
+\ProvideDictTranslation{paragraph}{paragraph}
+\ProvideDictTranslation{Parts}{Parts}
+\ProvideDictTranslation{parts}{parts}
+\ProvideDictTranslation{Part}{Part}
+\ProvideDictTranslation{part}{part}
+\ProvideDictTranslation{Preface}{Preface}
+\ProvideDictTranslation{Proofs}{Proofs}
+\ProvideDictTranslation{proofs}{proofs}
+\ProvideDictTranslation{Proof}{Proof}
+\ProvideDictTranslation{proof}{proof}
+\ProvideDictTranslation{References}{References}
+\ProvideDictTranslation{Related work}{Related work}
+\ProvideDictTranslation{Related Work}{Related Work}
+\ProvideDictTranslation{Sections}{Sections}
+\ProvideDictTranslation{sections}{sections}
+\ProvideDictTranslation{Section}{Section}
+\ProvideDictTranslation{section}{section}
+\ProvideDictTranslation{See also}{See also}
+\ProvideDictTranslation{see also}{see also}
+\ProvideDictTranslation{See}{See}
+\ProvideDictTranslation{see}{see}
+\ProvideDictTranslation{Sketch of Proofs}{Sketch of Proofs}
+\ProvideDictTranslation{Sketch of proofs}{Sketch of proofs}
+\ProvideDictTranslation{Sketch of Proof}{Sketch of Proof}
+\ProvideDictTranslation{Sketch of proof}{Sketch of proof}
+\ProvideDictTranslation{Subsections}{Subsections}
+\ProvideDictTranslation{subsections}{subsections}
+\ProvideDictTranslation{Subsection}{Subsection}
+\ProvideDictTranslation{subsection}{subsection}
+\ProvideDictTranslation{Summary}{Summary}
+\ProvideDictTranslation{Tables}{Tables}
+\ProvideDictTranslation{tables}{tables}
+\ProvideDictTranslation{Table}{Table}
+\ProvideDictTranslation{table}{table}
+\ProvideDictTranslation{To}{To}
+\ProvideDictTranslation{to}{to}
-\DeclareDictTranslation{Monday}{Monday}
-\DeclareDictTranslation{Tuesday}{Tuesday}
-\DeclareDictTranslation{Wednesday}{Wednesday}
-\DeclareDictTranslation{Thursday}{Thursday}
-\DeclareDictTranslation{Friday}{Friday}
-\DeclareDictTranslation{Saturday}{Saturday}
-\DeclareDictTranslation{Sunday}{Sunday}
+\ProvideDictTranslation{Monday}{Monday}
+\ProvideDictTranslation{Tuesday}{Tuesday}
+\ProvideDictTranslation{Wednesday}{Wednesday}
+\ProvideDictTranslation{Thursday}{Thursday}
+\ProvideDictTranslation{Friday}{Friday}
+\ProvideDictTranslation{Saturday}{Saturday}
+\ProvideDictTranslation{Sunday}{Sunday}
-\DeclareDictTranslation{January}{January}
-\DeclareDictTranslation{February}{February}
-\DeclareDictTranslation{March}{March}
-\DeclareDictTranslation{April}{April}
-\DeclareDictTranslation{May}{May}
-\DeclareDictTranslation{June}{June}
-\DeclareDictTranslation{July}{July}
-\DeclareDictTranslation{August}{August}
-\DeclareDictTranslation{September}{September}
-\DeclareDictTranslation{October}{October}
-\DeclareDictTranslation{November}{November}
-\DeclareDictTranslation{December}{December}
+\ProvideDictTranslation{January}{January}
+\ProvideDictTranslation{February}{February}
+\ProvideDictTranslation{March}{March}
+\ProvideDictTranslation{April}{April}
+\ProvideDictTranslation{May}{May}
+\ProvideDictTranslation{June}{June}
+\ProvideDictTranslation{July}{July}
+\ProvideDictTranslation{August}{August}
+\ProvideDictTranslation{September}{September}
+\ProvideDictTranslation{October}{October}
+\ProvideDictTranslation{November}{November}
+\ProvideDictTranslation{December}{December}
diff --git a/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-french.trsl b/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-french.trsl
index 709dd298748..112a51c4abc 100644
--- a/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-french.trsl
+++ b/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-french.trsl
@@ -1,109 +1,109 @@
\ProvideDictionaryFor{French}{translations-basic-dictionary}
-\DeclareDictTranslation{Abstract}{R\'{e}sum\'{e}}
-\DeclareDictTranslation{Addresses}{Adresses}
-\DeclareDictTranslation{addresses}{adresses}
-\DeclareDictTranslation{Address}{Adresse}
-\DeclareDictTranslation{address}{adresse}
-\DeclareDictTranslation{and}{et}
-\DeclareDictTranslation{Appendix}{Annexe}
-\DeclareDictTranslation{Authors}{Auteurs}
-\DeclareDictTranslation{authors}{auteur}
-\DeclareDictTranslation{Author}{Auteur}
-\DeclareDictTranslation{author}{auteur}
-\DeclareDictTranslation{Bibliography}{Bibliographie}
-\DeclareDictTranslation{cc}{Copie \`{a} }
-\DeclareDictTranslation{Chapters}{Chapitres}
-\DeclareDictTranslation{chapters}{chapitres}
-\DeclareDictTranslation{Chapter}{Chapitre}
-\DeclareDictTranslation{chapter}{chapitre}
-\DeclareDictTranslation{Conclusion}{Conclusion}
-\DeclareDictTranslation{conclusion}{conclusion}
-\DeclareDictTranslation{Contents}{Contenu}
-\DeclareDictTranslation{Continuation}{Suite}
-\DeclareDictTranslation{continuation}{suite}
-\DeclareDictTranslation{cont}{suite} % FIXME: unsure
-\DeclareDictTranslation{encl (plural)}{P.~J.}
-\DeclareDictTranslation{encl (singular)}{P.~J.}
-\DeclareDictTranslation{encl}{P.~J.}
-\DeclareDictTranslation{Figures}{Figures}
-\DeclareDictTranslation{figures}{figures}
-\DeclareDictTranslation{Figure}{Figure}
-\DeclareDictTranslation{figure}{figure}
-\DeclareDictTranslation{From}{De}
-\DeclareDictTranslation{from}{de}
-\DeclareDictTranslation{Glossary}{Glossaire}
-\DeclareDictTranslation{Index}{Index}
-\DeclareDictTranslation{Introduction}{Introduction}
-\DeclareDictTranslation{introduction}{introduction}
-\DeclareDictTranslation{List of Figures and Tables}{Liste des figures et des tableaux}
-\DeclareDictTranslation{List of Figures}{Liste des figures}
-\DeclareDictTranslation{List of Tables}{Liste des tableaux}
-\DeclareDictTranslation{or}{ou}
-\DeclareDictTranslation{Outline}{Plan}
-\DeclareDictTranslation{Overview}{Sommaire}
-\DeclareDictTranslation{Pages}{Pages}
-\DeclareDictTranslation{pages}{pages}
-\DeclareDictTranslation{Page}{Page}
-\DeclareDictTranslation{page}{page}
-\DeclareDictTranslation{Paragraphs}{Paragraphes}
-\DeclareDictTranslation{paragraphs}{paragraphes}
-\DeclareDictTranslation{Paragraph}{Paragraphe}
-\DeclareDictTranslation{paragraph}{paragraphe}
-\DeclareDictTranslation{Parts}{Parties}
-\DeclareDictTranslation{parts}{parties}
-\DeclareDictTranslation{Part}{Partie}
-\DeclareDictTranslation{part}{partie}
-\DeclareDictTranslation{Preface}{Pr\'{e}face}
-\DeclareDictTranslation{Proofs}{D\'{e}monstrations}
-\DeclareDictTranslation{proofs}{d\'{e}monstrations}
-\DeclareDictTranslation{Proof}{D\'{e}monstration}
-\DeclareDictTranslation{proof}{d\'{e}monstration}
-\DeclareDictTranslation{References}{R\'{e}f\'{e}rences}
-\DeclareDictTranslation{Related work}{travaux connexes}
-\DeclareDictTranslation{Related Work}{Travaux connexes}
-\DeclareDictTranslation{Sections}{Sections}
-\DeclareDictTranslation{sections}{sections}
-\DeclareDictTranslation{Section}{Section}
-\DeclareDictTranslation{section}{section}
-\DeclareDictTranslation{See also}{Voir aussi}
-\DeclareDictTranslation{see also}{voir aussi}
-\DeclareDictTranslation{See}{Voir}
-\DeclareDictTranslation{see}{voir}
-\DeclareDictTranslation{Sketch of Proofs}{Esquisse de preuves}
-\DeclareDictTranslation{Sketch of proofs}{Esquisse de preuves}
-\DeclareDictTranslation{Sketch of Proof}{Esquisse de preuve}
-\DeclareDictTranslation{Sketch of proof}{Esquisse de preuve}
-\DeclareDictTranslation{Subsections}{Sous-sections}
-\DeclareDictTranslation{subsections}{sous-sections}
-\DeclareDictTranslation{Subsection}{Sous-section}
-\DeclareDictTranslation{subsection}{sous-section}
-\DeclareDictTranslation{Summary}{R\'{e}sum\'{e}}
-\DeclareDictTranslation{Tables}{Tables}
-\DeclareDictTranslation{tables}{tables}
-\DeclareDictTranslation{Table}{Table}
-\DeclareDictTranslation{table}{table}
-\DeclareDictTranslation{To}{Vers}%??
-\DeclareDictTranslation{to}{vers}%??
+\ProvideDictTranslation{Abstract}{R\'{e}sum\'{e}}
+\ProvideDictTranslation{Addresses}{Adresses}
+\ProvideDictTranslation{addresses}{adresses}
+\ProvideDictTranslation{Address}{Adresse}
+\ProvideDictTranslation{address}{adresse}
+\ProvideDictTranslation{and}{et}
+\ProvideDictTranslation{Appendix}{Annexe}
+\ProvideDictTranslation{Authors}{Auteurs}
+\ProvideDictTranslation{authors}{auteur}
+\ProvideDictTranslation{Author}{Auteur}
+\ProvideDictTranslation{author}{auteur}
+\ProvideDictTranslation{Bibliography}{Bibliographie}
+\ProvideDictTranslation{cc}{Copie \`{a} }
+\ProvideDictTranslation{Chapters}{Chapitres}
+\ProvideDictTranslation{chapters}{chapitres}
+\ProvideDictTranslation{Chapter}{Chapitre}
+\ProvideDictTranslation{chapter}{chapitre}
+\ProvideDictTranslation{Conclusion}{Conclusion}
+\ProvideDictTranslation{conclusion}{conclusion}
+\ProvideDictTranslation{Contents}{Contenu}
+\ProvideDictTranslation{Continuation}{Suite}
+\ProvideDictTranslation{continuation}{suite}
+\ProvideDictTranslation{cont}{suite} % FIXME: unsure
+\ProvideDictTranslation{encl (plural)}{P.~J.}
+\ProvideDictTranslation{encl (singular)}{P.~J.}
+\ProvideDictTranslation{encl}{P.~J.}
+\ProvideDictTranslation{Figures}{Figures}
+\ProvideDictTranslation{figures}{figures}
+\ProvideDictTranslation{Figure}{Figure}
+\ProvideDictTranslation{figure}{figure}
+\ProvideDictTranslation{From}{De}
+\ProvideDictTranslation{from}{de}
+\ProvideDictTranslation{Glossary}{Glossaire}
+\ProvideDictTranslation{Index}{Index}
+\ProvideDictTranslation{Introduction}{Introduction}
+\ProvideDictTranslation{introduction}{introduction}
+\ProvideDictTranslation{List of Figures and Tables}{Liste des figures et des tableaux}
+\ProvideDictTranslation{List of Figures}{Liste des figures}
+\ProvideDictTranslation{List of Tables}{Liste des tableaux}
+\ProvideDictTranslation{or}{ou}
+\ProvideDictTranslation{Outline}{Plan}
+\ProvideDictTranslation{Overview}{Sommaire}
+\ProvideDictTranslation{Pages}{Pages}
+\ProvideDictTranslation{pages}{pages}
+\ProvideDictTranslation{Page}{Page}
+\ProvideDictTranslation{page}{page}
+\ProvideDictTranslation{Paragraphs}{Paragraphes}
+\ProvideDictTranslation{paragraphs}{paragraphes}
+\ProvideDictTranslation{Paragraph}{Paragraphe}
+\ProvideDictTranslation{paragraph}{paragraphe}
+\ProvideDictTranslation{Parts}{Parties}
+\ProvideDictTranslation{parts}{parties}
+\ProvideDictTranslation{Part}{Partie}
+\ProvideDictTranslation{part}{partie}
+\ProvideDictTranslation{Preface}{Pr\'{e}face}
+\ProvideDictTranslation{Proofs}{D\'{e}monstrations}
+\ProvideDictTranslation{proofs}{d\'{e}monstrations}
+\ProvideDictTranslation{Proof}{D\'{e}monstration}
+\ProvideDictTranslation{proof}{d\'{e}monstration}
+\ProvideDictTranslation{References}{R\'{e}f\'{e}rences}
+\ProvideDictTranslation{Related work}{travaux connexes}
+\ProvideDictTranslation{Related Work}{Travaux connexes}
+\ProvideDictTranslation{Sections}{Sections}
+\ProvideDictTranslation{sections}{sections}
+\ProvideDictTranslation{Section}{Section}
+\ProvideDictTranslation{section}{section}
+\ProvideDictTranslation{See also}{Voir aussi}
+\ProvideDictTranslation{see also}{voir aussi}
+\ProvideDictTranslation{See}{Voir}
+\ProvideDictTranslation{see}{voir}
+\ProvideDictTranslation{Sketch of Proofs}{Esquisse de preuves}
+\ProvideDictTranslation{Sketch of proofs}{Esquisse de preuves}
+\ProvideDictTranslation{Sketch of Proof}{Esquisse de preuve}
+\ProvideDictTranslation{Sketch of proof}{Esquisse de preuve}
+\ProvideDictTranslation{Subsections}{Sous-sections}
+\ProvideDictTranslation{subsections}{sous-sections}
+\ProvideDictTranslation{Subsection}{Sous-section}
+\ProvideDictTranslation{subsection}{sous-section}
+\ProvideDictTranslation{Summary}{R\'{e}sum\'{e}}
+\ProvideDictTranslation{Tables}{Tables}
+\ProvideDictTranslation{tables}{tables}
+\ProvideDictTranslation{Table}{Table}
+\ProvideDictTranslation{table}{table}
+\ProvideDictTranslation{To}{Vers}%??
+\ProvideDictTranslation{to}{vers}%??
-\DeclareDictTranslation{Monday}{Lundi}
-\DeclareDictTranslation{Tuesday}{Mardi}
-\DeclareDictTranslation{Wednesday}{Mercredi}
-\DeclareDictTranslation{Thursday}{Jeudi}
-\DeclareDictTranslation{Friday}{Vendredi}
-\DeclareDictTranslation{Saturday}{Samedi}
-\DeclareDictTranslation{Sunday}{Dimanche}
+\ProvideDictTranslation{Monday}{Lundi}
+\ProvideDictTranslation{Tuesday}{Mardi}
+\ProvideDictTranslation{Wednesday}{Mercredi}
+\ProvideDictTranslation{Thursday}{Jeudi}
+\ProvideDictTranslation{Friday}{Vendredi}
+\ProvideDictTranslation{Saturday}{Samedi}
+\ProvideDictTranslation{Sunday}{Dimanche}
-\DeclareDictTranslation{January}{Janvier}
-\DeclareDictTranslation{February}{F\'evrier}
-\DeclareDictTranslation{March}{Mars}
-\DeclareDictTranslation{April}{Avril}
-\DeclareDictTranslation{May}{Mai}
-\DeclareDictTranslation{June}{Juin}
-\DeclareDictTranslation{July}{Juillet}
-\DeclareDictTranslation{August}{Ao\^{u}t}
-\DeclareDictTranslation{September}{Septembre}
-\DeclareDictTranslation{October}{Octobre}
-\DeclareDictTranslation{November}{Novembre}
-\DeclareDictTranslation{December}{D\'ecembre}
+\ProvideDictTranslation{January}{Janvier}
+\ProvideDictTranslation{February}{F\'evrier}
+\ProvideDictTranslation{March}{Mars}
+\ProvideDictTranslation{April}{Avril}
+\ProvideDictTranslation{May}{Mai}
+\ProvideDictTranslation{June}{Juin}
+\ProvideDictTranslation{July}{Juillet}
+\ProvideDictTranslation{August}{Ao\^{u}t}
+\ProvideDictTranslation{September}{Septembre}
+\ProvideDictTranslation{October}{Octobre}
+\ProvideDictTranslation{November}{Novembre}
+\ProvideDictTranslation{December}{D\'ecembre}
diff --git a/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-german.trsl b/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-german.trsl
index b1780a929eb..3d15e2eab3c 100644
--- a/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-german.trsl
+++ b/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-german.trsl
@@ -1,109 +1,109 @@
\ProvideDictionaryFor{German}{translations-basic-dictionary}
-\DeclareDictTranslation{Abstract}{Zusammenfassung}
-\DeclareDictTranslation{Addresses}{Adressen}
-\DeclareDictTranslation{addresses}{Adressen}
-\DeclareDictTranslation{Address}{Adresse}
-\DeclareDictTranslation{address}{Adresse}
-\DeclareDictTranslation{and}{und}
-\DeclareDictTranslation{Appendix}{Anhang}
-\DeclareDictTranslation{Authors}{Autoren}
-\DeclareDictTranslation{authors}{Autoren}
-\DeclareDictTranslation{Author}{Autor}
-\DeclareDictTranslation{author}{Autor}
-\DeclareDictTranslation{Bibliography}{Literaturverzeichnis}
-\DeclareDictTranslation{cc}{Verteiler}
-\DeclareDictTranslation{Chapters}{Kapitel}
-\DeclareDictTranslation{chapters}{Kapitel}
-\DeclareDictTranslation{Chapter}{Kapitel}
-\DeclareDictTranslation{chapter}{Kapitel}
-\DeclareDictTranslation{Conclusion}{Zusammenfassung}
-\DeclareDictTranslation{conclusion}{Zusammenfassung}
-\DeclareDictTranslation{Contents}{Inhaltsverzeichnis}
-\DeclareDictTranslation{Continuation}{Fortsetzung}
-\DeclareDictTranslation{continuation}{Fortsetzung}
-\DeclareDictTranslation{cont}{Forts}
-\DeclareDictTranslation{encl (plural)}{Anlagen}
-\DeclareDictTranslation{encl (singular)}{Anlage}
-\DeclareDictTranslation{encl}{Anlage(n)}
-\DeclareDictTranslation{Figures}{Abbildungen}
-\DeclareDictTranslation{figures}{Abbildungen}
-\DeclareDictTranslation{Figure}{Abbildung}
-\DeclareDictTranslation{figure}{Abbildung}
-\DeclareDictTranslation{From}{Von}
-\DeclareDictTranslation{from}{von}
-\DeclareDictTranslation{Glossary}{Glossar}
-\DeclareDictTranslation{Index}{Index}
-\DeclareDictTranslation{Introduction}{Einleitung}
-\DeclareDictTranslation{introduction}{Einleitung}
-\DeclareDictTranslation{List of Figures and Tables}{Abbildungs- und Tabellenverzeichnis}
-\DeclareDictTranslation{List of Figures}{Abbildungsverzeichnis}
-\DeclareDictTranslation{List of Tables}{Tabellenverzeichnis}
-\DeclareDictTranslation{or}{oder}
-\DeclareDictTranslation{Outline}{Gliederung}
-\DeclareDictTranslation{Overview}{\"Uber\-sicht}
-\DeclareDictTranslation{Pages}{Seiten}
-\DeclareDictTranslation{pages}{Seiten}
-\DeclareDictTranslation{Page}{Seite}
-\DeclareDictTranslation{page}{Seite}
-\DeclareDictTranslation{Paragraphs}{Ab\-s\"at\-ze}
-\DeclareDictTranslation{paragraphs}{Ab\-s\"at\-ze}
-\DeclareDictTranslation{Paragraph}{Absatz}
-\DeclareDictTranslation{paragraph}{Absatz}
-\DeclareDictTranslation{Parts}{Teile}
-\DeclareDictTranslation{parts}{Teile}
-\DeclareDictTranslation{Part}{Teil}
-\DeclareDictTranslation{part}{Teil}
-\DeclareDictTranslation{Preface}{Vorwort}
-\DeclareDictTranslation{Proofs}{Beweise}
-\DeclareDictTranslation{proofs}{Beweise}
-\DeclareDictTranslation{Proof}{Beweis}
-\DeclareDictTranslation{proof}{Beweis}
-\DeclareDictTranslation{References}{Literatur}
-\DeclareDictTranslation{Related work}{Verwandte Arbeiten}
-\DeclareDictTranslation{Related Work}{Verwandte Arbeiten}
-\DeclareDictTranslation{Sections}{Abschnitte}
-\DeclareDictTranslation{sections}{Abschnitte}
-\DeclareDictTranslation{Section}{Abschnitt}
-\DeclareDictTranslation{section}{Abschnitt}
-\DeclareDictTranslation{See also}{Siehe auch}
-\DeclareDictTranslation{see also}{siehe auch}
-\DeclareDictTranslation{See}{Siehe}
-\DeclareDictTranslation{see}{siehe}
-\DeclareDictTranslation{Sketch of Proofs}{Beweisskizzen}
-\DeclareDictTranslation{Sketch of proofs}{Beweisskizzen}
-\DeclareDictTranslation{Sketch of Proof}{Beweisskizze}
-\DeclareDictTranslation{Sketch of proof}{Beweisskizze}
-\DeclareDictTranslation{Subsections}{Unterabschnitte}
-\DeclareDictTranslation{subsections}{Unterabschnitte}
-\DeclareDictTranslation{Subsection}{Unterabschnitt}
-\DeclareDictTranslation{subsection}{Unterabschnitt}
-\DeclareDictTranslation{Summary}{Zusammenfassung}
-\DeclareDictTranslation{Tables}{Tabellen}
-\DeclareDictTranslation{tables}{Tabellen}
-\DeclareDictTranslation{Table}{Tabelle}
-\DeclareDictTranslation{table}{Tabelle}
-\DeclareDictTranslation{To}{An}
-\DeclareDictTranslation{to}{an}
+\ProvideDictTranslation{Abstract}{Zusammenfassung}
+\ProvideDictTranslation{Addresses}{Adressen}
+\ProvideDictTranslation{addresses}{Adressen}
+\ProvideDictTranslation{Address}{Adresse}
+\ProvideDictTranslation{address}{Adresse}
+\ProvideDictTranslation{and}{und}
+\ProvideDictTranslation{Appendix}{Anhang}
+\ProvideDictTranslation{Authors}{Autoren}
+\ProvideDictTranslation{authors}{Autoren}
+\ProvideDictTranslation{Author}{Autor}
+\ProvideDictTranslation{author}{Autor}
+\ProvideDictTranslation{Bibliography}{Literaturverzeichnis}
+\ProvideDictTranslation{cc}{Verteiler}
+\ProvideDictTranslation{Chapters}{Kapitel}
+\ProvideDictTranslation{chapters}{Kapitel}
+\ProvideDictTranslation{Chapter}{Kapitel}
+\ProvideDictTranslation{chapter}{Kapitel}
+\ProvideDictTranslation{Conclusion}{Zusammenfassung}
+\ProvideDictTranslation{conclusion}{Zusammenfassung}
+\ProvideDictTranslation{Contents}{Inhaltsverzeichnis}
+\ProvideDictTranslation{Continuation}{Fortsetzung}
+\ProvideDictTranslation{continuation}{Fortsetzung}
+\ProvideDictTranslation{cont}{Forts}
+\ProvideDictTranslation{encl (plural)}{Anlagen}
+\ProvideDictTranslation{encl (singular)}{Anlage}
+\ProvideDictTranslation{encl}{Anlage(n)}
+\ProvideDictTranslation{Figures}{Abbildungen}
+\ProvideDictTranslation{figures}{Abbildungen}
+\ProvideDictTranslation{Figure}{Abbildung}
+\ProvideDictTranslation{figure}{Abbildung}
+\ProvideDictTranslation{From}{Von}
+\ProvideDictTranslation{from}{von}
+\ProvideDictTranslation{Glossary}{Glossar}
+\ProvideDictTranslation{Index}{Index}
+\ProvideDictTranslation{Introduction}{Einleitung}
+\ProvideDictTranslation{introduction}{Einleitung}
+\ProvideDictTranslation{List of Figures and Tables}{Abbildungs- und Tabellenverzeichnis}
+\ProvideDictTranslation{List of Figures}{Abbildungsverzeichnis}
+\ProvideDictTranslation{List of Tables}{Tabellenverzeichnis}
+\ProvideDictTranslation{or}{oder}
+\ProvideDictTranslation{Outline}{Gliederung}
+\ProvideDictTranslation{Overview}{\"Uber\-sicht}
+\ProvideDictTranslation{Pages}{Seiten}
+\ProvideDictTranslation{pages}{Seiten}
+\ProvideDictTranslation{Page}{Seite}
+\ProvideDictTranslation{page}{Seite}
+\ProvideDictTranslation{Paragraphs}{Ab\-s\"at\-ze}
+\ProvideDictTranslation{paragraphs}{Ab\-s\"at\-ze}
+\ProvideDictTranslation{Paragraph}{Absatz}
+\ProvideDictTranslation{paragraph}{Absatz}
+\ProvideDictTranslation{Parts}{Teile}
+\ProvideDictTranslation{parts}{Teile}
+\ProvideDictTranslation{Part}{Teil}
+\ProvideDictTranslation{part}{Teil}
+\ProvideDictTranslation{Preface}{Vorwort}
+\ProvideDictTranslation{Proofs}{Beweise}
+\ProvideDictTranslation{proofs}{Beweise}
+\ProvideDictTranslation{Proof}{Beweis}
+\ProvideDictTranslation{proof}{Beweis}
+\ProvideDictTranslation{References}{Literatur}
+\ProvideDictTranslation{Related work}{Verwandte Arbeiten}
+\ProvideDictTranslation{Related Work}{Verwandte Arbeiten}
+\ProvideDictTranslation{Sections}{Abschnitte}
+\ProvideDictTranslation{sections}{Abschnitte}
+\ProvideDictTranslation{Section}{Abschnitt}
+\ProvideDictTranslation{section}{Abschnitt}
+\ProvideDictTranslation{See also}{Siehe auch}
+\ProvideDictTranslation{see also}{siehe auch}
+\ProvideDictTranslation{See}{Siehe}
+\ProvideDictTranslation{see}{siehe}
+\ProvideDictTranslation{Sketch of Proofs}{Beweisskizzen}
+\ProvideDictTranslation{Sketch of proofs}{Beweisskizzen}
+\ProvideDictTranslation{Sketch of Proof}{Beweisskizze}
+\ProvideDictTranslation{Sketch of proof}{Beweisskizze}
+\ProvideDictTranslation{Subsections}{Unterabschnitte}
+\ProvideDictTranslation{subsections}{Unterabschnitte}
+\ProvideDictTranslation{Subsection}{Unterabschnitt}
+\ProvideDictTranslation{subsection}{Unterabschnitt}
+\ProvideDictTranslation{Summary}{Zusammenfassung}
+\ProvideDictTranslation{Tables}{Tabellen}
+\ProvideDictTranslation{tables}{Tabellen}
+\ProvideDictTranslation{Table}{Tabelle}
+\ProvideDictTranslation{table}{Tabelle}
+\ProvideDictTranslation{To}{An}
+\ProvideDictTranslation{to}{an}
-\DeclareDictTranslation{Monday}{Montag}
-\DeclareDictTranslation{Tuesday}{Dienstag}
-\DeclareDictTranslation{Wednesday}{Mittwoch}
-\DeclareDictTranslation{Thursday}{Donnerstag}
-\DeclareDictTranslation{Friday}{Freitag}
-\DeclareDictTranslation{Saturday}{Samstag}
-\DeclareDictTranslation{Sunday}{Sonntag}
+\ProvideDictTranslation{Monday}{Montag}
+\ProvideDictTranslation{Tuesday}{Dienstag}
+\ProvideDictTranslation{Wednesday}{Mittwoch}
+\ProvideDictTranslation{Thursday}{Donnerstag}
+\ProvideDictTranslation{Friday}{Freitag}
+\ProvideDictTranslation{Saturday}{Samstag}
+\ProvideDictTranslation{Sunday}{Sonntag}
-\DeclareDictTranslation{January}{Januar}
-\DeclareDictTranslation{February}{Februar}
-\DeclareDictTranslation{March}{M\"arz}
-\DeclareDictTranslation{April}{April}
-\DeclareDictTranslation{May}{Mai}
-\DeclareDictTranslation{June}{Juni}
-\DeclareDictTranslation{July}{Juli}
-\DeclareDictTranslation{August}{August}
-\DeclareDictTranslation{September}{September}
-\DeclareDictTranslation{October}{Oktober}
-\DeclareDictTranslation{November}{November}
-\DeclareDictTranslation{December}{Dezember}
+\ProvideDictTranslation{January}{Januar}
+\ProvideDictTranslation{February}{Februar}
+\ProvideDictTranslation{March}{M\"arz}
+\ProvideDictTranslation{April}{April}
+\ProvideDictTranslation{May}{Mai}
+\ProvideDictTranslation{June}{Juni}
+\ProvideDictTranslation{July}{Juli}
+\ProvideDictTranslation{August}{August}
+\ProvideDictTranslation{September}{September}
+\ProvideDictTranslation{October}{Oktober}
+\ProvideDictTranslation{November}{November}
+\ProvideDictTranslation{December}{Dezember}
diff --git a/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-spanish.trsl b/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-spanish.trsl
index 0eea7ab5875..6ea05db8f32 100644
--- a/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-spanish.trsl
+++ b/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-spanish.trsl
@@ -1,109 +1,109 @@
\ProvideDictionaryFor{Spanish}{translations-basic-dictionary}
-\DeclareDictTranslation{Abstract}{Resumen}
-\DeclareDictTranslation{Addresses}{Direcciones}
-\DeclareDictTranslation{addresses}{direcciones}
-\DeclareDictTranslation{Address}{Direcci\'{o}n}
-\DeclareDictTranslation{address}{direcci\'{o}n}
-\DeclareDictTranslation{and}{y}
-\DeclareDictTranslation{Appendix}{Ap\'{e}ndice}
-\DeclareDictTranslation{Authors}{Autores}
-\DeclareDictTranslation{authors}{autores}
-\DeclareDictTranslation{Author}{Autor}
-\DeclareDictTranslation{author}{autor}
-\DeclareDictTranslation{Bibliography}{Bibliograf\'{\i}a}
-\DeclareDictTranslation{cc}{c.c.}
-\DeclareDictTranslation{Chapters}{Cap\'{\i}tulos}
-\DeclareDictTranslation{chapters}{cap\'{\i}tulos}
-\DeclareDictTranslation{Chapter}{Cap\'{\i}tulo}
-\DeclareDictTranslation{chapter}{cap\'{\i}tulo}
-\DeclareDictTranslation{Conclusion}{Conclusi\'{o}n}
-\DeclareDictTranslation{conclusion}{conclusi\'{o}n}
-\DeclareDictTranslation{Contents}{Contenido}
-\DeclareDictTranslation{Continuation}{Continuaci\'{o}n}
-\DeclareDictTranslation{continuation}{continuaci\'{o}n}
-\DeclareDictTranslation{cont}{cont}
-\DeclareDictTranslation{encl (plural)}{adj.}
-\DeclareDictTranslation{encl (singular)}{adj.}
-\DeclareDictTranslation{encl}{adj.}
-\DeclareDictTranslation{Figures}{Figuras}
-\DeclareDictTranslation{figures}{figuras}
-\DeclareDictTranslation{Figure}{Figura}
-\DeclareDictTranslation{figure}{figura}
-\DeclareDictTranslation{From}{Desde}
-\DeclareDictTranslation{from}{desde}
-\DeclareDictTranslation{Glossary}{Glosario}
-\DeclareDictTranslation{Index}{\'{I}ndice}
-\DeclareDictTranslation{Introduction}{Introducci\'{o}n}
-\DeclareDictTranslation{introduction}{introducci\'{o}n}
-\DeclareDictTranslation{List of Figures and Tables}{Lista de Figuras y Tablas}
-\DeclareDictTranslation{List of Figures}{Lista de Figuras}
-\DeclareDictTranslation{List of Tables}{Lista de Tablas}
-\DeclareDictTranslation{or}{o}
-\DeclareDictTranslation{Outline}{Esbozo}
-\DeclareDictTranslation{Overview}{Visi\'{o}n General}
-\DeclareDictTranslation{Pages}{P\'{a}ginas}
-\DeclareDictTranslation{pages}{p\'{a}ginas}
-\DeclareDictTranslation{Page}{P\'{a}gina}
-\DeclareDictTranslation{page}{p\'{a}gina}
-\DeclareDictTranslation{Paragraphs}{P\'{a}rrafos}
-\DeclareDictTranslation{paragraphs}{p\'{a}rrafos}
-\DeclareDictTranslation{Paragraph}{P\'{a}rrafo}
-\DeclareDictTranslation{paragraph}{p\'{a}rrafo}
-\DeclareDictTranslation{Parts}{Partes}
-\DeclareDictTranslation{parts}{partes}
-\DeclareDictTranslation{Part}{Parte}
-\DeclareDictTranslation{part}{parte}
-\DeclareDictTranslation{Preface}{Prefacio}
-\DeclareDictTranslation{Proofs}{Demostraciones}
-\DeclareDictTranslation{proofs}{demostraciones}
-\DeclareDictTranslation{Proof}{Demostraci\'{o}n}
-\DeclareDictTranslation{proof}{demostraci\'{o}n}
-\DeclareDictTranslation{References}{Referencias}
-\DeclareDictTranslation{Related work}{Trabajo relacionado}
-\DeclareDictTranslation{Related Work}{Trabajo Relacionado}
-\DeclareDictTranslation{Sections}{Secciones}
-\DeclareDictTranslation{sections}{secciones}
-\DeclareDictTranslation{Section}{Secci\'{o}n}
-\DeclareDictTranslation{section}{secci\'{o}n}
-\DeclareDictTranslation{See also}{Ver tambi\'{e}n}
-\DeclareDictTranslation{see also}{ver tambi\'{e}n}
-\DeclareDictTranslation{See}{Ver}
-\DeclareDictTranslation{see}{ver}
-\DeclareDictTranslation{Sketch of Proofs}{Esbozo de Demostraciones}
-\DeclareDictTranslation{Sketch of proofs}{Esbozo de demostraciones}
-\DeclareDictTranslation{Sketch of Proof}{Esbozo de Demostraci\'{o}n}
-\DeclareDictTranslation{Sketch of proof}{Esbozo de demostraci\'{o}n}
-\DeclareDictTranslation{Subsections}{Subsecciones}
-\DeclareDictTranslation{subsections}{subsecciones}
-\DeclareDictTranslation{Subsection}{Subsecci\'{o}n}
-\DeclareDictTranslation{subsection}{subsecci\'{o}n}
-\DeclareDictTranslation{Summary}{Resumen}
-\DeclareDictTranslation{Tables}{Tablas}
-\DeclareDictTranslation{tables}{tablas}
-\DeclareDictTranslation{Table}{Tabla}
-\DeclareDictTranslation{table}{tabla}
-\DeclareDictTranslation{To}{Hasta}
-\DeclareDictTranslation{to}{hasta}
+\ProvideDictTranslation{Abstract}{Resumen}
+\ProvideDictTranslation{Addresses}{Direcciones}
+\ProvideDictTranslation{addresses}{direcciones}
+\ProvideDictTranslation{Address}{Direcci\'{o}n}
+\ProvideDictTranslation{address}{direcci\'{o}n}
+\ProvideDictTranslation{and}{y}
+\ProvideDictTranslation{Appendix}{Ap\'{e}ndice}
+\ProvideDictTranslation{Authors}{Autores}
+\ProvideDictTranslation{authors}{autores}
+\ProvideDictTranslation{Author}{Autor}
+\ProvideDictTranslation{author}{autor}
+\ProvideDictTranslation{Bibliography}{Bibliograf\'{\i}a}
+\ProvideDictTranslation{cc}{c.c.}
+\ProvideDictTranslation{Chapters}{Cap\'{\i}tulos}
+\ProvideDictTranslation{chapters}{cap\'{\i}tulos}
+\ProvideDictTranslation{Chapter}{Cap\'{\i}tulo}
+\ProvideDictTranslation{chapter}{cap\'{\i}tulo}
+\ProvideDictTranslation{Conclusion}{Conclusi\'{o}n}
+\ProvideDictTranslation{conclusion}{conclusi\'{o}n}
+\ProvideDictTranslation{Contents}{Contenido}
+\ProvideDictTranslation{Continuation}{Continuaci\'{o}n}
+\ProvideDictTranslation{continuation}{continuaci\'{o}n}
+\ProvideDictTranslation{cont}{cont}
+\ProvideDictTranslation{encl (plural)}{adj.}
+\ProvideDictTranslation{encl (singular)}{adj.}
+\ProvideDictTranslation{encl}{adj.}
+\ProvideDictTranslation{Figures}{Figuras}
+\ProvideDictTranslation{figures}{figuras}
+\ProvideDictTranslation{Figure}{Figura}
+\ProvideDictTranslation{figure}{figura}
+\ProvideDictTranslation{From}{Desde}
+\ProvideDictTranslation{from}{desde}
+\ProvideDictTranslation{Glossary}{Glosario}
+\ProvideDictTranslation{Index}{\'{I}ndice}
+\ProvideDictTranslation{Introduction}{Introducci\'{o}n}
+\ProvideDictTranslation{introduction}{introducci\'{o}n}
+\ProvideDictTranslation{List of Figures and Tables}{Lista de Figuras y Tablas}
+\ProvideDictTranslation{List of Figures}{Lista de Figuras}
+\ProvideDictTranslation{List of Tables}{Lista de Tablas}
+\ProvideDictTranslation{or}{o}
+\ProvideDictTranslation{Outline}{Esbozo}
+\ProvideDictTranslation{Overview}{Visi\'{o}n General}
+\ProvideDictTranslation{Pages}{P\'{a}ginas}
+\ProvideDictTranslation{pages}{p\'{a}ginas}
+\ProvideDictTranslation{Page}{P\'{a}gina}
+\ProvideDictTranslation{page}{p\'{a}gina}
+\ProvideDictTranslation{Paragraphs}{P\'{a}rrafos}
+\ProvideDictTranslation{paragraphs}{p\'{a}rrafos}
+\ProvideDictTranslation{Paragraph}{P\'{a}rrafo}
+\ProvideDictTranslation{paragraph}{p\'{a}rrafo}
+\ProvideDictTranslation{Parts}{Partes}
+\ProvideDictTranslation{parts}{partes}
+\ProvideDictTranslation{Part}{Parte}
+\ProvideDictTranslation{part}{parte}
+\ProvideDictTranslation{Preface}{Prefacio}
+\ProvideDictTranslation{Proofs}{Demostraciones}
+\ProvideDictTranslation{proofs}{demostraciones}
+\ProvideDictTranslation{Proof}{Demostraci\'{o}n}
+\ProvideDictTranslation{proof}{demostraci\'{o}n}
+\ProvideDictTranslation{References}{Referencias}
+\ProvideDictTranslation{Related work}{Trabajo relacionado}
+\ProvideDictTranslation{Related Work}{Trabajo Relacionado}
+\ProvideDictTranslation{Sections}{Secciones}
+\ProvideDictTranslation{sections}{secciones}
+\ProvideDictTranslation{Section}{Secci\'{o}n}
+\ProvideDictTranslation{section}{secci\'{o}n}
+\ProvideDictTranslation{See also}{Ver tambi\'{e}n}
+\ProvideDictTranslation{see also}{ver tambi\'{e}n}
+\ProvideDictTranslation{See}{Ver}
+\ProvideDictTranslation{see}{ver}
+\ProvideDictTranslation{Sketch of Proofs}{Esbozo de Demostraciones}
+\ProvideDictTranslation{Sketch of proofs}{Esbozo de demostraciones}
+\ProvideDictTranslation{Sketch of Proof}{Esbozo de Demostraci\'{o}n}
+\ProvideDictTranslation{Sketch of proof}{Esbozo de demostraci\'{o}n}
+\ProvideDictTranslation{Subsections}{Subsecciones}
+\ProvideDictTranslation{subsections}{subsecciones}
+\ProvideDictTranslation{Subsection}{Subsecci\'{o}n}
+\ProvideDictTranslation{subsection}{subsecci\'{o}n}
+\ProvideDictTranslation{Summary}{Resumen}
+\ProvideDictTranslation{Tables}{Tablas}
+\ProvideDictTranslation{tables}{tablas}
+\ProvideDictTranslation{Table}{Tabla}
+\ProvideDictTranslation{table}{tabla}
+\ProvideDictTranslation{To}{Hasta}
+\ProvideDictTranslation{to}{hasta}
-\DeclareDictTranslation{Monday}{Lunes}
-\DeclareDictTranslation{Tuesday}{Martes}
-\DeclareDictTranslation{Wednesday}{Mi\'{e}rcoles}
-\DeclareDictTranslation{Thursday}{Jueves}
-\DeclareDictTranslation{Friday}{Viernes}
-\DeclareDictTranslation{Saturday}{S\'{a}bado}
-\DeclareDictTranslation{Sunday}{Domingo}
+\ProvideDictTranslation{Monday}{Lunes}
+\ProvideDictTranslation{Tuesday}{Martes}
+\ProvideDictTranslation{Wednesday}{Mi\'{e}rcoles}
+\ProvideDictTranslation{Thursday}{Jueves}
+\ProvideDictTranslation{Friday}{Viernes}
+\ProvideDictTranslation{Saturday}{S\'{a}bado}
+\ProvideDictTranslation{Sunday}{Domingo}
-\DeclareDictTranslation{January}{Enero}
-\DeclareDictTranslation{February}{Febrero}
-\DeclareDictTranslation{March}{Marzo}
-\DeclareDictTranslation{April}{Abril}
-\DeclareDictTranslation{May}{Mayo}
-\DeclareDictTranslation{June}{Junio}
-\DeclareDictTranslation{July}{Julio}
-\DeclareDictTranslation{August}{Agosto}
-\DeclareDictTranslation{September}{Septiembre}
-\DeclareDictTranslation{October}{Octubre}
-\DeclareDictTranslation{November}{Noviembre}
-\DeclareDictTranslation{December}{Diciembre}
+\ProvideDictTranslation{January}{Enero}
+\ProvideDictTranslation{February}{Febrero}
+\ProvideDictTranslation{March}{Marzo}
+\ProvideDictTranslation{April}{Abril}
+\ProvideDictTranslation{May}{Mayo}
+\ProvideDictTranslation{June}{Junio}
+\ProvideDictTranslation{July}{Julio}
+\ProvideDictTranslation{August}{Agosto}
+\ProvideDictTranslation{September}{Septiembre}
+\ProvideDictTranslation{October}{Octubre}
+\ProvideDictTranslation{November}{Noviembre}
+\ProvideDictTranslation{December}{Diciembre}
diff --git a/Master/texmf-dist/tex/latex/translations/translations.sty b/Master/texmf-dist/tex/latex/translations/translations.sty
index d4f7c68b474..da3eca0e9aa 100644
--- a/Master/texmf-dist/tex/latex/translations/translations.sty
+++ b/Master/texmf-dist/tex/latex/translations/translations.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/translations
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012 Clemens Niederberger
+% Copyright 2012-2014 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -25,67 +25,47 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-\def\@trnslt@date{2013/09/30}
-\def\@trnslt@version{v1.1a}
+\def\@trnslt@date{2014/01/10}
+\def\@trnslt@version{v1.2}
\def\@trnslt@info{internationalization of LaTeX2e packages}
-\ProvidesPackage{translations}[\@trnslt@date\space \@trnslt@version\space \@trnslt@info\space (CN)]
-\RequirePackage{etoolbox,scrlfile}
+\ProvidesPackage{translations}[%
+ \@trnslt@date\space
+ \@trnslt@version\space
+ \@trnslt@info\space (CN)]
+\RequirePackage{cnltx-base,scrlfile}
% --------------------------------------------------------------------------
% message handling
+% generic help message:
\def\@trnslt@error@message{%
- For details have a look at the `translations' manual.}
-
-\def\@trnslt@create@message#1{%
- \ifstrequal{#1}{Error}
- {%
- \lowercase{\csdef{@trnslt@#1}}##1{%
- \csuse{Package#1}{translations}{##1}{\@trnslt@error@message}}%
- }{%
- \lowercase{\csdef{@trnslt@#1}}##1{%
- \csuse{Package#1}{translations}{##1}}%
- }}
-\@trnslt@create@message{Error}
-\@trnslt@create@message{Warning}
-\@trnslt@create@message{WarningNoLine}
-\@trnslt@create@message{Info}
-
-\def\@trnslt@err@unknown@lang#1{%
- \@trnslt@error{Unknown language `#1'}}
-
-\def\@trnslt@warn@unknown@lang#1{%
- \@trnslt@warning{Unknown language `#1'}}
-
-\def\@trnslt@err@already@defined#1#2{%
- \@trnslt@error{The #2 translation for `#1' is already defined.}}
-
-\def\@trnslt@err@not@defined#1#2{%
- \@trnslt@error{The \@trnslt@language{#2} translation for `#1' is not defined yet.}}
-
-% --------------------------------------------------------------------------
-% catcode stuff:
-\DeclareListParser*{\@trnslt@map@tokenlist}{}
-
-\def\@trnslt@save@catcodes#1{%
- \@trnslt@map@tokenlist\@trnslt@save@catcode{#1}%
-}
-\def\@trnslt@save@catcode#1{%
- \csedef{@trnslt@catcode@#1}{\the\catcode`#1}%
+ For details have a look at the `translations' manual.%
}
-\def\@trnslt@restore@catcodes#1{%
- \@trnslt@map@tokenlist\@trnslt@restore@catcode{#1}%
+% create message macros:
+\cnltx@create@generic@message{@trnslt}{translations}{Error}{\@trnslt@error@message}
+\cnltx@create@generic@message{@trnslt}{translations}{Warning}{}
+\cnltx@create@generic@message{@trnslt}{translations}{WarningNoLine}{}
+\cnltx@create@generic@message{@trnslt}{translations}{Info}{}
+
+% specific errors:
+\newrobustcmd*\@trnslt@err@unknown@lang[1]{\@trnslt@error{Unknown language `#1'}}
+\newrobustcmd*\@trnslt@warn@unknown@lang[1]{\@trnslt@warning{Unknown language `#1'}}
+\newrobustcmd*\@trnslt@err@already@defined[2]{%
+ \@trnslt@error{The #2 translation for `#1' is already defined.}%
}
-\protected\def\@trnslt@restore@catcode#1{%
- \catcode`#1=\csname @trnslt@catcode@#1\endcsname
+\newrobustcmd*\@trnslt@err@not@defined[2]{%
+ \@trnslt@error{%
+ The \@trnslt@language{#2} translation for `#1' is not defined yet.%
+ }%
}
-
-\def\@trnslt@set@catcodes#1#2{%
- \@trnslt@map@tokenlist{\@trnslt@set@catcode{#2}}{#1}%
+\newrobustcmd*\@trnslt@err@dict@already@defined[2]{%
+ \@trnslt@error{The #2 dictionary entry for `#1' is already defined.}%
}
-\def\@trnslt@set@catcode#1#2{%
- \catcode`#2=#1\relax
+\newrobustcmd*\@trnslt@err@dict@not@defined[2]{%
+ \@trnslt@error{%
+ The \@trnslt@language{#2} dictionary entry for `#1' is not defined yet.%
+ }%
}
% --------------------------------------------------------------------------
@@ -93,12 +73,13 @@
\AtEndPreamble{
\@ifpackageloaded{babel}{}{
\@ifpackageloaded{polyglossia}{}
- {\@trnslt@warning{No language package found. I am going to use `english'
+ {\@trnslt@info{No language package found. I am going to use `english'
as default language.}}
}
- \ifdef\languagename{}
- {\def\languagename{english}}
- \def\@trnslt@current@language{\languagename}
+ % define \languagename if not defined yet:
+ \providecommand*\languagename{english}%
+ \def\@trnslt@current@language{\languagename}%
+ % define \bbl@afterfi if not defined yet:
\ifdef\bbl@afterfi{}
{\long\def\bbl@afterfi#1\fi{\fi#1}}
}
@@ -106,18 +87,18 @@
% --------------------------------------------------------------------------
% book keeping: the following macros will be used as `etoolbox' lists that
% keep record of defined languages, dialects and aliases
-\def\@trnslt@languages{}% all languages
-\def\@trnslt@aliases@pair{}% all aliases and their base
-\def\@trnslt@aliases@single{}% all aliases
-\def\@trnslt@dialects@pair{}% all dialects and their base
-\def\@trnslt@dialects@single{}% all dialects
+\newcommand*\@trnslt@languages{}% all languages
+\newcommand*\@trnslt@aliases@pair{}% all aliases and their base
+\newcommand*\@trnslt@aliases@single{}% all aliases
+\newcommand*\@trnslt@dialects@pair{}% all dialects and their base
+\newcommand*\@trnslt@dialects@single{}% all dialects
% --------------------------------------------------------------------------
% define \@trnslt@if@<name> conditionals that don't leave the checked macro as
% \relax behind and check for \@trnslt@<name>@#1. These conditionals should
% also be expandable in an \edef-like context. Thanks to e-TeX there's
% \ifcsname:
-\def\@trnslt@new@check#1{%
+\newrobustcmd*\@trnslt@new@check[1]{%
\csdef{@trnslt@if@#1}##1{%
\ifcsname @trnslt@#1@##1\endcsname
\expandafter\@firstoftwo
@@ -128,7 +109,9 @@
}
% --------------------------------------------------------------------------
-\long\def\@trnslt@get@lowercase#1{%
+% leaves lowercase full expansion of #1 in the input stream (except that it
+% doesn't, because nothing is expanded... :p)
+\newcommand\@trnslt@get@lowercase[1]{%
\lowercase\expandafter{\romannumeral-`\Q#1}%
}
@@ -139,7 +122,7 @@
\@trnslt@declare@language{#1}}
\@onlypreamble\DeclareLanguage
-\def\@trnslt@declare@language#1{%
+\newrobustcmd*\@trnslt@declare@language[1]{%
\@trnslt@if@language{#1}
{}{%
\csdef{@trnslt@language@#1}{#1}%
@@ -147,9 +130,11 @@
}%
}
-\def\@trnslt@language#1{%
- \csuse{@trnslt@language@#1}}
+% get the name declared by \DeclareLanguage: the underlying name of a given
+% language; this is not the base of a dialect!
+\newcommand*\@trnslt@language[1]{\csuse{@trnslt@language@#1}}
+% a user-level equivalent:
\newcommand*\baselanguage[1]{\@trnslt@language{#1}}
% define \@trnslt@if@language{#1}{}{} that actually checks the existence of
@@ -164,7 +149,7 @@
\@trnslt@declare@languagedialect{#1}{#2}}
\@onlypreamble\DeclareLanguageDialect
-\def\@trnslt@declare@languagedialect#1#2{%
+\newrobustcmd*\@trnslt@declare@languagedialect[2]{%
\@trnslt@if@language{#2}
{}{%
\@trnslt@warn@unknown@lang{#2}%
@@ -176,7 +161,7 @@
{%
\@trnslt@if@alias{#2}
{%
- \csedef{@trnslt@dialect@#1}{{\@trnslt@alias{#2}}{#1}}%
+ \csedef{@trnslt@dialect@#1@trnslt@dialect@#1}{{\@trnslt@alias{#2}}{#1}}%
\@trnslt@declare@language{#1}%
\listeadd\@trnslt@dialects@single{#1}%
\listeadd\@trnslt@dialects@pair{{#1}{\@trnslt@alias{#2}}}%
@@ -190,11 +175,11 @@
}%
}
-\def\@trnslt@dialect#1{%
- \csuse{@trnslt@dialect@#1}}
+% dialect equivalent of \@trnslt@language
+\newcommand*\@trnslt@dialect[1]{\csuse{@trnslt@dialect@#1}}
% this macros fetches the base language for a given dialect, expandably:
-\def\@trnslt@dialect@of#1{%
+\newcommand*\@trnslt@dialect@of[1]{%
\@trnslt@if@dialect{#1}
{%
\expandafter\expandafter\expandafter
@@ -203,6 +188,14 @@
}{}%
}
+% get the underlying name of a language or the name of the base language of a
+% dialect:
+\newcommand*\baselanguagename[1]{%
+ \@trnslt@if@dialect{#1}
+ {\baselanguage{\@trnslt@dialect@of{#1}}}
+ {\baselanguage{#1}}%
+}
+
% define \@trnslt@if@dialect{#1}{}{} that actually checks the existence of
% \@trnslt@dialect@#1:
\@trnslt@new@check{dialect}
@@ -215,7 +208,7 @@
\@trnslt@declare@languagealias{#1}{#2}}
\@onlypreamble\DeclareLanguageAlias
-\def\@trnslt@declare@languagealias#1#2{%
+\newrobustcmd*\@trnslt@declare@languagealias[2]{%
\@trnslt@if@language{#2}
{}{%
\@trnslt@warn@unknown@lang{#2}%
@@ -233,43 +226,86 @@
}%
}
-\def\@trnslt@alias#1{%
- \csuse{@trnslt@alias@#1}}
+% alias equivalent of \@trnslt@language
+\newcommand*\@trnslt@alias[1]{\csuse{@trnslt@alias@#1}}
% define \@trnslt@if@alias{#1}{}{} that actually checks the existence of
% \@trnslt@alias@#1:
\@trnslt@new@check{alias}
% --------------------------------------------------------------------------
-% dummy language: `fallback':
-\DeclareLanguage{fallback}
-\DeclareLanguageAlias{Fallback}{fallback}
+% check the current language, expandably:
+% #1: language
+% #2: true
+% #3: false
+\newcommand*\@trnslt@iflanguage[1]{%
+ \cnltx@braced@expanded@fully
+ \cnltx@braced@expanded@fully
+ \cnltx@firstofone
+ \cnltx@ifstrequal
+ {\baselanguage{#1}}
+ {\baselanguage{\languagename}}%
+}
+
+% check the current /base/ language, expandably:
+\newcommand*\@trnslt@ifbaselanguage[1]{%
+ \@trnslt@if@dialect{\languagename}
+ {%
+ \cnltx@braced@expanded@fully
+ \cnltx@braced@expanded@fully
+ \cnltx@firstofone
+ \cnltx@ifstrequal
+ {\baselanguage{\@trnslt@dialect@of{\languagename}}}
+ {\baselanguage{#1}}%
+ }
+ {\@trnslt@iflanguage{#1}}%
+}
+
+% user commands for the above:
+\newcommand*\ifcurrentlanguage[1]{%
+ \@trnslt@iflanguage{#1}%
+}
+\newcommand*\ifcurrentbaselanguage[1]{%
+ \@trnslt@ifbaselanguage{#1}%
+}
% --------------------------------------------------------------------------
-% \DeclareTranslation, \NewTranslation and \RenewTranslation
+% Now that we can define languages we also want to be able to define
+% translations:
+% \DeclareTranslation, \NewTranslation, \RenewTranslation and
+% \ProvideTranslation
% #1: language
% #2: word
% #3: replacement
\newrobustcmd*\DeclareTranslation[3]{%
- \@trnslt@declare@translation{#2}{#1}{#3}}
+ \@trnslt@declare@translation{#2}{#1}{#3}%
+}
\@onlypreamble\DeclareTranslation
\newrobustcmd*\DeclareTranslationFallback[2]{%
- \@trnslt@declare@translation{#1}{fallback}{#2}}
+ \@trnslt@declare@translation{#1}{fallback}{#2}%
+}
\@onlypreamble\DeclareTranslationFallback
\newrobustcmd*\NewTranslation[3]{%
- \@trnslt@new@translation{#2}{#1}{#3}}
+ \@trnslt@new@translation{#2}{#1}{#3}%
+}
\@onlypreamble\NewTranslation
\newrobustcmd*\RenewTranslation[3]{%
- \@trnslt@renew@translation{#2}{#1}{#3}}
+ \@trnslt@renew@translation{#2}{#1}{#3}%
+}
\@onlypreamble\RenewTranslation
+\newrobustcmd*\ProvideTranslation[3]{%
+ \@trnslt@provide@translation{#2}{#1}{#3}%
+}
+\@onlypreamble\ProvideTranslation
+
% #1: word
% #2: language
% #3: replacement
-\def\@trnslt@declare@translation#1#2#3{%
+\newrobustcmd*\@trnslt@declare@translation[3]{%
\@trnslt@if@language{#2}
{%
\@trnslt@if@dialect{#2}
@@ -286,19 +322,27 @@
{\@trnslt@err@unknown@lang{#2}}%
}
-\def\@trnslt@new@translation#1#2#3{%
+\newrobustcmd*\@trnslt@new@translation[3]{%
\@trnslt@if@word\@trnslt@language{#1}{#2}
{\@trnslt@err@already@defined{#1}{#2}}
- {\@trnslt@declare@translation{#1}{#2}{#3}}}
+ {\@trnslt@declare@translation{#1}{#2}{#3}}%
+}
-\def\@trnslt@renew@translation#1#2#3{%
+\newrobustcmd*\@trnslt@renew@translation[3]{%
\@trnslt@if@word\@trnslt@language{#1}{#2}
{\@trnslt@declare@translation{#1}{#2}{#3}}
- {\@trnslt@err@not@defined{#1}{#2}}}
+ {\@trnslt@err@not@defined{#1}{#2}}%
+}
+
+\newrobustcmd*\@trnslt@provide@translation[3]{%
+ \@trnslt@if@word\@trnslt@language{#1}{#2}
+ {}
+ {\@trnslt@declare@translation{#1}{#2}{#3}}%
+}
% --------------------------------------------------------------------------
-% now let's go through some trouble to check if a translation exists:
-\def\@trnslt@if@word#1#2#3{%
+% let's go through some trouble to check if a translation exists:
+\newcommand*\@trnslt@if@word[3]{%
\ifcsname @trnslt@word@#2@#1{#3}\endcsname
\expandafter\@firstoftwo
\else
@@ -306,7 +350,7 @@
\fi
}%
-\def\@trnslt@if@translation#1#2{%
+\newcommand*\@trnslt@if@translation[2]{%
\@trnslt@if@word\@trnslt@language{#1}{#2}
{\expandafter\@firstoftwo}
{%
@@ -325,6 +369,7 @@
}
% --------------------------------------------------------------------------
+% We also need to be able to look up a translation:
% \GetTranslationFor and \GetTranslation
% these need to be expandable!
% #1: language
@@ -335,6 +380,13 @@
\newcommand*\GetTranslation[1]{%
\@trnslt@checkandget@translation@for{#1}{\@trnslt@current@language}}
+% those will print the translation lowercase... they're also expandable; that
+% is: nearly...
+% \DeclareTranslation{German}{foo}{Bla}
+% \edef\foo{\GetLCTranslationFor{German}{foo}}
+% \show\foo
+% > \foo=macro:
+% ->\lowercase {Bla}.
\newcommand*\GetLCTranslationFor[2]{%
\@trnslt@get@lowercase{\@trnslt@checkandget@translation@for{#2}{#1}}%
}
@@ -347,20 +399,24 @@
% unexpandable version of the commands that raise a warning if no translation
% is available:
-\newcommand*\GetTranslationForWarn[2]{%
- \@trnslt@getandwarn@translation@for{#2}{#1}}
+\newrobustcmd*\GetTranslationForWarn[2]{%
+ \@trnslt@getandwarn@translation@for{#2}{#1}%
+}
-\newcommand*\GetTranslationWarn[1]{%
- \@trnslt@getandwarn@translation@for{#1}{\@trnslt@current@language}}
+\newrobustcmd*\GetTranslationWarn[1]{%
+ \@trnslt@getandwarn@translation@for{#1}{\@trnslt@current@language}%
+}
-\newcommand*\GetLCTranslationForWarn[2]{%
- \@trnslt@getandwarn@lctranslation@for{#2}{#1}}
+\newrobustcmd*\GetLCTranslationForWarn[2]{%
+ \@trnslt@getandwarn@lctranslation@for{#2}{#1}%
+}
-\newcommand*\GetLCTranslationWarn[1]{%
- \@trnslt@getandwarn@lctranslation@for{#1}{\@trnslt@current@language}}
+\newrobustcmd*\GetLCTranslationWarn[1]{%
+ \@trnslt@getandwarn@lctranslation@for{#1}{\@trnslt@current@language}%
+}
% #1: word #2: language
-\def\@trnslt@get@translation@for#1#2{%
+\newcommand*\@trnslt@get@translation@for[2]{%
\@trnslt@if@dialect{#2}
{%
\ifcsdef{@trnslt@word@#1@\@trnslt@dialect{#2}}
@@ -370,7 +426,7 @@
{\csuse{@trnslt@word@#1@\@trnslt@language{#2}}}%
}
-\def\@trnslt@checkandget@translation@for#1#2{%
+\newcommand*\@trnslt@checkandget@translation@for[2]{%
\@trnslt@if@translation{#1}{#2}
{\@trnslt@get@translation@for{#1}{#2}}
{%
@@ -381,7 +437,7 @@
}
% this is not expandable!
-\protected\def\@trnslt@getandwarn@translation@for#1#2{%
+\newrobustcmd*\@trnslt@getandwarn@translation@for[2]{%
\@trnslt@if@translation{#1}{#2}
{\@trnslt@get@translation@for{#1}{#2}}
{%
@@ -397,7 +453,7 @@
}
% lowercase version for translation with warnings:
-\protected\def\@trnslt@getandwarn@lctranslation@for#1#2{%
+\newrobustcmd*\@trnslt@getandwarn@lctranslation@for[2]{%
\@trnslt@if@translation{#1}{#2}
{\@trnslt@get@lowercase{\@trnslt@get@translation@for{#1}{#2}}}
{%
@@ -413,21 +469,30 @@
}
% --------------------------------------------------------------------------
+% no idea if the following ones really are needed... let's define them
+% anyway
% \SaveTranslationFor and \SaveTranslation
\newrobustcmd*\SaveTranslationFor[3]{%
- \@trnslt@save@translation@for{#1}{#3}{#2}}
+ \@trnslt@save@translation@for{#1}{#3}{#2}%
+}
\newrobustcmd*\SaveTranslation[2]{%
- \@trnslt@save@translation@for{#1}{#2}{\@trnslt@current@language}}
+ \@trnslt@save@translation@for{#1}{#2}{\@trnslt@current@language}%
+}
-\def\@trnslt@save@translation@for#1#2#3{%
+\newrobustcmd*\@trnslt@save@translation@for[3]{%
\edef#1{%
\@trnslt@if@translation{#2}{#3}
{\csuse{@trnslt@word@#2@\@trnslt@language{#3}}}
{}%
- }}
+ }%
+}
% --------------------------------------------------------------------------
+% The basics are set. What's missing? Right: dictionaries! Those will be files
+% that contain translations for a specific language.
+% --------------------------------------------------------------------------
+% load dictionaries and check for existing ones:
% \LoadDictionary and \LoadDictionaryFor
\newrobustcmd*\LoadDictionary[1]{%
\@trnslt@load@dictionary@for{#1}{\@trnslt@current@language}}
@@ -439,15 +504,18 @@
% #1: name
% #2: lang
-\def\@trnslt@load@dictionary@for#1#2{%
+\newrobustcmd*\@trnslt@load@dictionary@for[2]{%
\AtBeginDocument{%
\InputIfFileExists{#1-\@trnslt@language{#2}.trsl}
{\@trnslt@check@dictionary{#1}{#2}}
- {\@trnslt@warning{dictionary file `#1-\@trnslt@language{#2}.trsl' not
- found.}}%
- }}
+ {%
+ \@trnslt@warning{dictionary file `#1-\@trnslt@language{#2}.trsl' not
+ found.}%
+ }%
+ }%
+}
-\def\@trnslt@check@dictionary#1#2{%
+\newrobustcmd*\@trnslt@check@dictionary[2]{%
\AfterFile{#1-\@trnslt@language{#2}.trsl}
{%
\ifcsdef{@trnslt@dictionary@#1@\@trnslt@language{#2}}
@@ -459,17 +527,17 @@
}%
}
-\def\@trnslt@if@dictionary#1#2{%
- \IfFileExists{#1-#2.trsl}}
+\newcommand*\@trnslt@if@dictionary[2]{\IfFileExists{#1-#2.trsl}}
-\def\@trnslt@load@dictionary@silent@for#1#2{%
- \InputIfFileExists{#1-#2.trsl}{}{}}
+\newcommand*\@trnslt@load@dictionary@silent@for[2]{\InputIfFileExists{#1-#2.trsl}{}{}}
+% --------------------------------------------------------------------------
+% the contents of a dictionary; let's declare that is one.
\newrobustcmd*\ProvideDictionaryFor[2]{%
\@trnslt@provide@dictionary@for{#1}{#2}}
\@onlypreamble\ProvideDictionaryFor
-\def\@trnslt@provide@dictionary@for#1#2{%
+\newrobustcmd*\@trnslt@provide@dictionary@for[2]{%
\def\@trnslt@dictionary@name{#2}%
\edef\@trnslt@dictionary@lang{\@trnslt@language{#1}}%
% this macro can be used to check if we have a dictionary and will also be
@@ -484,20 +552,64 @@
}%
}
-\def\@trnslt@provide@dictionary@version[#1]{%
+\protected\def\@trnslt@provide@dictionary@version[#1]{%
\ProvidesFile
{\@trnslt@dictionary@name-\@trnslt@dictionary@lang.trsl}%
[(\@trnslt@dictionary@lang\space translation file `\@trnslt@dictionary@name') #1]}
-% \@trnslt@dictionary@language
-\newrobustcmd*\DeclareDictTranslation[2]{%
+% change this test (we can't use braces inside the item with \ifinlist):
+\newcommand*\@trnslt@check@dictionary@entry[2]{%
+ \cnltx@ifinlistcs
+ {{#1}{#2}}
+ {@trnslt@dictionary@\@trnslt@dictionary@name @\@trnslt@dictionary@lang}%
+}
+
+\newrobustcmd*\@trnslt@add@dictionary@entry[2]{%
\listcsadd
{@trnslt@dictionary@\@trnslt@dictionary@name @\@trnslt@dictionary@lang}
{{#1}{#2}}%
+}
+
+% --------------------------------------------------------------------------
+% now we should be able to add translations without repeatedly type the
+% language ...
+\newrobustcmd*\NewDictTranslation[2]{%
+ \@trnslt@check@dictionary@entry{#1}{#2}
+ {\@trnslt@err@dict@already@defined{#1}{#2}}%
+ {%
+ \@trnslt@add@dictionary@entry{#1}{#2}
+ \@trnslt@new@translation{#1}{\@trnslt@dictionary@lang}{#2}%
+ }%
+}
+\@onlypreamble\NewDictTranslation
+
+\newrobustcmd*\RenewDictTranslation[2]{%
+ \@trnslt@check@dictionary@entry{#1}{#2}
+ {\@trnslt@renew@translation{#1}{\@trnslt@dictionary@lang}{#2}}
+ {\@trnslt@err@dict@not@defined{#1}{#2}}%
+}
+\@onlypreamble\RenewDictTranslation
+
+\newrobustcmd*\DeclareDictTranslation[2]{%
+ \@trnslt@check@dictionary@entry{#1}{#2}
+ {}
+ {\@trnslt@add@dictionary@entry{#1}{#2}}%
\@trnslt@declare@translation{#1}{\@trnslt@dictionary@lang}{#2}%
}
\@onlypreamble\DeclareDictTranslation
+\newrobustcmd*\ProvideDictTranslation[2]{%
+ \@trnslt@check@dictionary@entry{#1}{#2}
+ {}
+ {%
+ \@trnslt@add@dictionary@entry{#1}{#2}%
+ \@trnslt@provide@translation{#1}{\@trnslt@dictionary@lang}{#2}%
+ }%
+}
+\@onlypreamble\ProvideDictTranslation
+
+% --------------------------------------------------------------------------
+% last not least let's inspect which entries a dictionary contains of:
% \PrintDictionaryFor
% #1: lang
% #2: name
@@ -505,14 +617,15 @@
% #4: mid
% #5: post
\newcommand*\PrintDictionaryFor[5]{%
- \@trnslt@print@dictionary@for{#1}{#2}{#3}{#4}{#5}}
+ \@trnslt@print@dictionary@for{#1}{#2}{#3}{#4}{#5}%
+}
% #1: lang
% #2: name
% #3: pre
% #4: mid
% #5: post
-\def\@trnslt@print@dictionary@for#1#2#3#4#5{%
+\newcommand*\@trnslt@print@dictionary@for[5]{%
\forlistcsloop
{\@trnslt@print@dictionary@entry{#3}{#4}{#5}}
{@trnslt@dictionary@#2@\@trnslt@language{#1}}%
@@ -521,16 +634,29 @@
% #1: pre
% #2: mid
% #3: post
-% #4: {key}{translation}
-\def\@trnslt@print@dictionary@entry#1#2#3#4{%
- \@trnslt@print@dictionary@entry@aux{#1}{#2}{#3}#4}
+% #4: (key)(translation)
+\newcommand*\@trnslt@print@dictionary@entry[4]{%
+ \@trnslt@print@dictionary@entry@aux{#1}{#2}{#3}#4%
+}
% #1: pre
% #2: mid
% #3: post
% #4: key
% #5: translation
-\def\@trnslt@print@dictionary@entry@aux#1#2#3#4#5{#1#4#2#5#3}
+\newcommand*\@trnslt@print@dictionary@entry@aux[5]{#1#4#2#5#3}
+
+% ==========================================================================
+% Now that the package is finished let's us ethe above commands to provide a
+% basis for usage; we need all languages known to `babel' and `polyglossia'
+% as well as aliases to allow different spellings/names; we also need dialects
+% where it makes sense (e.g. British as a dialect of English)
+
+% --------------------------------------------------------------------------
+% dummy language `fallback' -- it is needed for the whole mechansim provided
+% earlier (\DeclareFallbackTranslation...)
+\DeclareLanguage{fallback}
+\DeclareLanguageAlias{Fallback}{fallback}
% --------------------------------------------------------------------------
% predefined languages
@@ -762,8 +888,8 @@
\DeclareLanguageAlias {northern sami}{north sami}
\DeclareLanguageAlias {Northern Sami}{northern sami}
\DeclareLanguageAlias {Sanskrit}{sanskrit}
-% this one isn't needed, or is it?
-% \DeclareLanguageAlias {Serbocroatian}{serbocroatian}
+% this one isn't needed, or is it? vvv
+\DeclareLanguageAlias {Serbocroatian}{serbocroatian}
\DeclareLanguageAlias {serbo-croatian}{serbocroatian}
\DeclareLanguageAlias {Serbo-Croatian}{serbocroatian}
\DeclareLanguageDialect{serbian}{serbocroatian}
@@ -807,6 +933,9 @@
\DeclareLanguageAlias {Vietnamese}{vietnamese}
\DeclareLanguageAlias {Welsh}{welsh}
+% ==========================================================================
+% OK, we have everything, do we? No, wait: let's load the basic dictionary
+% that is part of this package if it is available for the document language
% --------------------------------------------------------------------------
% load basic dictionary if available
\AtBeginDocument{%
@@ -835,7 +964,7 @@
\endinput
-% --------------------------------------------------------------------------
+% ==========================================================================
% HISTORY:
2012/09/30 v0.2beta - first version (as part of the `exsheets' bundle)
2012/10/05 v0.2 - \LoadDictionary and \LoadDictionaryFor added and loads of
@@ -867,7 +996,7 @@
- new command \PrintDictionaryFor
- redefined conditionals; they still seemed to make
trouble in some cases
-2013/08/05 v1.1 - added /loads/ of languages, noe the list of babel and
+2013/08/05 v1.1 - added /loads/ of languages, now the list of babel and
polyglossia languages hopefully is complete
- a few languages had falsely been declared as dialect
instead of an alias
@@ -879,4 +1008,13 @@
doesn't exist load it for the corresponding base
language instead
2013/09/30 v1.1a - Bug fix in \NewTranslation und \RenewTranslation
+2014/01/10 v1.2 - \ifcurrentlanguage, \ifcurrentbaselanguage
+ - require cnltx-base
+ - change the `no language package' warning into an info
+ - \ProvideTranslation
+ - \NewDictTranslation, \RenewDictTranslation,
+ \ProvideDictTranslation
+ - translations in dictionaries are provided
+ - \baselanguagename
+