texlive[61896] Master/texmf-dist: translations (5feb22)
commits+karl at tug.org
commits+karl at tug.org
Sat Feb 5 22:22:43 CET 2022
Revision: 61896
http://tug.org/svn/texlive?view=revision&revision=61896
Author: karl
Date: 2022-02-05 22:22:43 +0100 (Sat, 05 Feb 2022)
Log Message:
-----------
translations (5feb22)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/translations/README
trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-brazil.trsl
trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-catalan.trsl
trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-dutch.trsl
trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-english.trsl
trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-french.trsl
trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-german.trsl
trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-spanish.trsl
trunk/Master/texmf-dist/tex/latex/translations/translations.sty
Added Paths:
-----------
trunk/Master/texmf-dist/doc/latex/translations/translations-manual.pdf
trunk/Master/texmf-dist/doc/latex/translations/translations-manual.tex
trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-polish.trsl
Removed Paths:
-------------
trunk/Master/texmf-dist/doc/latex/translations/translations_en.pdf
trunk/Master/texmf-dist/doc/latex/translations/translations_en.tex
Modified: trunk/Master/texmf-dist/doc/latex/translations/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/translations/README 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/doc/latex/translations/README 2022-02-05 21:22:43 UTC (rev 61896)
@@ -1,11 +1,11 @@
--------------------------------------------------------------------------
-the TRANSLATIONS package v1.11 - 2022/01/04
+the TRANSLATIONS package v1.12 - 2022/02/05
internationalization of LaTeX2e packages
--------------------------------------------------------------------------
Clemens Niederberger
Web: https://github.com/cgnieder/translations
-E-Mail: contact at mychemistry.eu
+E-Mail: clemens at cnltx.de
--------------------------------------------------------------------------
Copyright 2012--2022 Clemens Niederberger
@@ -22,13 +22,14 @@
The Current Maintainer of this work is Clemens Niederberger.
--------------------------------------------------------------------------
The translations package consists of the files
- - translations.sty, translations_en.tex, translations_en.pdf,
+ - translations.sty, translations_manual.tex, translations_manual.pdf,
translations-basic-dictionary-brazil.trsl,
translations-basic-dictionary-catalan.trsl,
+ translations-basic-dictionary-dutch.trsl,
translations-basic-dictionary-english.trsl,
- translations-basic-dictionary-dutch.trsl,
translations-basic-dictionary-french.trsl,
translations-basic-dictionary-german.trsl,
+ translations-basic-dictionary-polish.trsl,
translations-basic-dictionary-spanish.trsl
- README
--------------------------------------------------------------------------
Added: trunk/Master/texmf-dist/doc/latex/translations/translations-manual.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/latex/translations/translations-manual.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/translations/translations-manual.pdf 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/doc/latex/translations/translations-manual.pdf 2022-02-05 21:22:43 UTC (rev 61896)
Property changes on: trunk/Master/texmf-dist/doc/latex/translations/translations-manual.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/translations/translations-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/translations/translations-manual.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/translations/translations-manual.tex 2022-02-05 21:22:43 UTC (rev 61896)
@@ -0,0 +1,793 @@
+% arara: pdflatex: { shell: on, interaction: nonstopmode }
+% arara: biber
+% arara: pdflatex: { interaction: nonstopmode }
+% arara: pdflatex: { interaction: nonstopmode }
+% --------------------------------------------------------------------------
+% the TRANSLATIONS package
+%
+% internationalizations of LaTeX2e packages
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://github.com/cgnieder/translations
+% E-Mail: clemens at cnltx.de
+% --------------------------------------------------------------------------
+% Copyright 2012--2022 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\PassOptionsToPackage{french,brazil,spanish,ngerman,english}{babel}
+\documentclass[load-preamble]{cnltx-doc}
+% ----------------------------------------------------------------------------
+\usepackage{imakeidx}
+% document layout and typographic features
+\setcnltx{
+ package = {translations} ,
+ authors = Clemens Niederberger ,
+ email = clemens at cnltx.de ,
+ url = https://github.com/cgnieder/translations ,
+ info = {Internationalization of \LaTeXe\ Packages} ,
+ add-cmds = {
+ baselanguage,
+ DeclareDictTranslation,
+ DeclareLanguage,
+ DeclareLanguageAlias,
+ DeclareLanguageDialect,
+ DeclareTranslation,
+ declaretranslation,
+ DeclareTranslationFallback,
+ declaretranslationfallback,
+ GetTranslation,
+ GetTranslationFor,
+ ifcurrentbaselang,
+ ifcurrentlang,
+ IfTranslation,
+ LoadDictionary,
+ LoadDictionaryFor,
+ NewTranslation,
+ definetranslation,
+ NewTranslationFallback,
+ definetranslationfallback,
+ ProvideDictionaryFor,
+ ProvideDictTranslation,
+ ProvideTranslation,
+ addtranslation,
+ ProvideTranslationFallback,
+ addtranslationfallback,
+ RenewTranslation,
+ redefinetranslation,
+ RenewTranslationFallback,
+ redefinetranslationfallback,
+ SaveTranslation,
+ SaveTranslationFor
+ } ,
+ add-silent-cmds = {
+ cuisine,kitchen,mypackage at title
+ } ,
+ makeindex-setup = {options={-s cnltx.ist},columns=3,columnsep=1em} ,
+ index-setup = {othercode=\footnotesize,level=\addsec,noclearpage}
+}
+
+\microtypesetup{tracking=scshape}
+
+\usepackage[
+ backend=biber,
+ style=cnltx,
+ sortlocale=en_US,
+ indexing=cite]{biblatex}
+\usepackage{csquotes}
+\addbibresource{cnltx.bib}
+
+\usepackage[biblatex]{embrac}
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
+\defbibheading{bibliography}{\section{References}}
+
+% ----------------------------------------------------------------------------
+% other packages, bibliography, index
+\usepackage{array,longtable,booktabs}
+\usepackage{hyperref}
+\usepackage[sort]{cleveref}
+
+% ----------------------------------------------------------------------------
+% example definitions that have to be done in the preamble:
+\DeclareTranslation{English}{Kueche}{kitchen}
+\DeclareTranslation{German}{Kueche}{K\"uche}
+\DeclareTranslation{Spanish}{Kueche}{cocina}
+\DeclareTranslation{French}{Kueche}{cuisine}
+\DeclareTranslation{English}{farbe}{color}
+\DeclareTranslation{British}{farbe}{colour}
+\LoadDictionaryFor{German}{translations-basic-dictionary}
+
+% ----------------------------------------------------------------------------
+\usepackage{bbding}
+
+\newrobustcmd\fnote[1]{\textsuperscript{#1}}
+
+\tracingmacros=1
+
+\begin{document}
+
+\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}~\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
+package available I began using it in various of my other packages so it got
+extended to the needs I faced there.
+
+
+\section{License}\label{sec:license}
+\license
+
+\section{Usage}
+\subsection{Background}
+The \translations\ package enables the author of a package or a class (or a
+document) to declare translations of key words in different languages and
+fetch these translations in the document depending on the active language as
+set by \pkg{babel} or \pkg{polyglossia}. Since \translations\ checks which
+language is active it is generally not necessary (although possible) to
+specify the language for which a translation should be fetched manually.
+
+\translations\ knows of three types of languages: main languages (see
+\cref{tab:languages} on \cpageref{tab:languages}), language dialects (see
+\cref{tab:dialects} on \cpageref{tab:dialects}), and language aliases (see
+\cref{tab:aliases} on \cpageref{tab:aliases}). For the commands declaring or
+fetching a translation base languages and language aliases are equivalent.
+Dialects are similar to aliases but there are important differences. An alias
+can for example be an alias of a dialect.
+
+\Cref{fig:scheme} shows what happens if \translations\ is asked to fetch a
+translation for a given key.
+
+\begin{figure}[htbp]
+ \centering
+ \newlength\nodewidth
+ \setlength\nodewidth{.375\linewidth}
+ \newcommand*\yes{\centering\textcolor{green}{\CheckmarkBold}\par}
+ \renewcommand*\no{\centering\textcolor{red}{\XSolidBrush}\par}
+ \begin{tikzpicture}
+ [
+ level/.style={sibling distance=.5\linewidth/#1},
+ every node/.style={
+ draw,
+ rounded corners=3pt,
+ align=left,
+ anchor=north,
+ font=\small\sffamily
+ }
+ ]
+ \node {check if any\fnote{a} translation is defined in given language}
+ child {
+ node[text width=\nodewidth]
+ {\yes check if language is a dialect}
+ child {
+ node[text width=\nodewidth/2]
+ {\yes check if dialect translation is given}
+ child {
+ node[text width=\nodewidth/2.75]
+ {\yes use dialect translation}
+ }
+ child {
+ node[text width=\nodewidth/2.75]
+ {\no use lan\-guage\fnote{b} translation}
+ }
+ }
+ child {
+ node[text width=\nodewidth/2]
+ {\no use translation}}
+ }
+ child {
+ node[text width=\nodewidth]
+ {\no check if fallback translation is given}
+ child {
+ node[text width=\nodewidth/2.75]
+ {\yes use fallback translation}
+ }
+ child {
+ node[text width=\nodewidth/2.75]
+ {\no use literal key}
+ }
+ } ;
+ \end{tikzpicture}
+ \caption{Schematic representation of \translations' translating
+ mechansim. Notes: \fnote{a} except for a possible fallback
+ translation. \fnote{b} \ie, the base language of the dialect.}
+ \label{fig:scheme}
+\end{figure}
+
+What happens if you declare a translation? There are four cases:
+\begin{enumerate}
+ \item You declare a translation for a base language: this is the normal case
+ where an internal macro is defined which can be fetched by the
+ \cs{GetTranslation} command (see \cref{ssec:commands}).
+ \item You declare a translation for a language alias: this is the very same
+ as the first case since the same internal macro is defined.
+ \item You declare a translation for a dialect: this is two-fold. Either a
+ translation for the base language exists so only the translation for the
+ dialect is saved. If the translation for the base language does not exist
+ it is defined to be the same as the one for the dialect.
+ \item You declare a translation for an alias of a dialect: this is the very
+ same as the third case as again the internal macros are the same.
+\end{enumerate}
+
+\emph{Beware that if the current language is a language using a non-latin
+ font, a translation is missing for said language, and the fallback
+ translation needs a Latin script font then \emph{nothing} might be printed.}
+
+\subsection{Available Commands}\label{ssec:commands}
+Below the commands provided by \translations\ are explained. The symbol
+\textcolor{expandable}{\expandablesign} means that the command is expandable.
+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} in language
+ \marg{lang} already exists. This command can only be used in the
+ preamble.
+ \command{NewTranslationFallback}[\marg{key}\marg{translation}]
+ \sinceversion{1.4}Defines a fallback translation of key \meta{key} for the
+ language \meta{lang}. An error will be raised if a fallback 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} in language
+ \meta{lang} exists. This command can only be used in the preamble.
+ \command{RenewTranslationFallback}[\marg{key}\marg{translation}]
+ \sinceversion{1.4}Renews a fallback translation. 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} in language
+ \meta{lang} already exists it won't be overwritten and no error will be
+ raised. This command can only be used in the preamble.
+ \command{ProvideTranslationFallback}[\marg{key}\marg{translation}]
+ \sinceversion{1.4}Provides a fallback translation. 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}]
+ Declares a fallback translation. This command can only be used in the
+ preamble.
+ \command{definetranslation}[\marg{lang}\marg{key}\marg{translation}]
+ \sinceversion{1.4}A version of \cs{NewTranslation} that \emph{can} be used
+ after begin document.
+ \command{definetranslationfallback}[\marg{key}\marg{translation}]
+ \sinceversion{1.4}A version of \cs{NewTranslationFallback} that \emph{can}
+ be used after begin document.
+ \command{redefinetranslation}[\marg{lang}\marg{key}\marg{translation}]
+ \sinceversion{1.4}A version of \cs{RenewTranslation} that \emph{can} be
+ used after begin document.
+ \command{redefinetranslationfallback}[\marg{key}\marg{translation}]
+ \sinceversion{1.4}A version of \cs{RenewTranslationFallback} that
+ \emph{can} be used after begin document.
+ \command{addtranslation}[\marg{lang}\marg{key}\marg{translation}]
+ \sinceversion{1.4}A version of \cs{ProvideTranslation} that \emph{can} be
+ used after begin document.
+ \command{addtranslationfallback}[\marg{key}\marg{translation}]
+ \sinceversion{1.4}A version of \cs{ProvideTranslationFallback} that
+ \emph{can} be used after begin document.
+ \command{declaretranslation}[\marg{lang}\marg{key}\marg{translation}]
+ \sinceversion{1.4}A version of \cs{DeclareTranslation} that \emph{can} be
+ used after begin document.
+ \command{declaretranslationfallback}[\marg{key}\marg{translation}]
+ \sinceversion{1.4}A version of \cs{DeclareTranslationFallback} that
+ \emph{can} be used after begin document.
+ \expandable\command{IfTranslation}[\marg{lang}\marg{key}\marg{true}\marg{false}]
+ Checks\sinceversion{1.2d} if a translation for \meta{key} in language
+ \meta{lang} is defined or not and either leaves \meta{true} or
+ \meta{false} in the input stream.
+ \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}]
+ \changedversion{1.2a}Returns the (internal) base name of the given language,
+ language alias or language dialect. For a dialect this expands to the
+ name of language it is a dialect of. For a base language (see
+ section~\ref{ssec:languages:base}) this usually simply is the lowercase
+ version of the name.\par
+ \verbcode+\baselanguage{English}+ $\Rightarrow$ \code{english}\\
+ \verbcode+\baselanguage{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{ifcurrentlang}[\marg{lang}]
+ \sinceversion{1.9}The same as \cs{ifcurrentlanguage} but uses the
+ \dots\cs{else}\dots\cs*{fi} syntax.
+ \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 not count 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}.
+ \expandable\command{ifcurrentbaselang}[\marg{lang}]
+ \sinceversion{1.9}The same as \cs{ifcurrentbaselanguage} but uses the
+ \dots\cs{else}\dots\cs*{fi} syntax.
+\end{commands}
+
+\subsection{A Small Example}
+This section demonstrates with two short examples how the macros are used.
+The first example covers the basics: declaring of translations and then
+retrieving and typesetting them.
+
+\begin{example}
+ % in the preamble:
+ % \DeclareTranslation{English}{Kueche}{kitchen}
+ % \DeclareTranslation{German}{Kueche}{K\"uche}
+ % \DeclareTranslation{Spanish}{Kueche}{cocina}
+ % \DeclareTranslation{French}{Kueche}{cuisine}
+
+ \GetTranslation{Kueche}
+ \SaveTranslation\kitchen{Kueche}
+ \SaveTranslationFor\cuisine{french}{Kueche}
+
+ \selectlanguage{ngerman}
+ \GetTranslation{Kueche} \kitchen\ \GetTranslationFor{spanish}{Kueche}
+ \cuisine
+
+ \IfTranslation{German}{Kueche}{true}{false} \par
+ \IfTranslation{Danish}{Kueche}{true}{false}
+\end{example}
+
+The next example demonstrates the use of dialects and how they fall back to
+the translation for the main language if no extra translation was declared:
+
+\begin{example}
+ % in the preamble:
+ % \DeclareTranslation{English}{farbe}{color}
+ % \DeclareTranslation{British}{farbe}{colour}
+
+ \GetTranslationFor{English}{farbe}
+ \GetTranslationFor{British}{farbe}
+ \GetTranslationFor{American}{farbe}
+\end{example}
+
+\subsection{Usage in Packages}
+\subsubsection{Basic Structure}
+A typical usage in a package would look as follows:
+\begin{sourcecode}
+ \RequirePackage{translations}
+ \DeclareTranslationFallback{mypackage-title}{Nice Title}
+ \DeclareTranslation{English}{mypackage-title}{Nice Title}
+ \DeclareTranslation{French}{mypackage-title}{Beau Titre}
+ \DeclareTranslation{German}{mypackage-title}{Sch\"{o}ner Titel}
+ ...
+ \newcommand*\mypackage at title{\GetTranslation{mypackage-title}}
+\end{sourcecode}
+
+That is, a package defines some unique key for an expression and at least
+defines a fallback translation. Additionally translations for as many
+languages as the author wants are defined. A user then may add
+\cs{DeclareTranslation}\marg{language}\marg{translation} if they find their
+translation missing.
+
+\subsubsection{The `fallback' language}
+If a user has neither loaded \pkg{babel} nor \pkg{polyglossia} \translations\
+will use English as language and translate to English if the translation was
+provided. If the user \emph{has} loaded one of the language packages but has
+chosen a language for which no translation is defined the language `fallback'
+will be used, \ie, the translation provided with
+\cs{DeclareTranslationFallback}. If no fallback translation is provided
+either, the translation will expand to the literal string.
+
+The following three examples should make this concept clear:
+
+\begin{example}[compile]
+ \documentclass[margin=5mm]{standalone}
+ \usepackage{translations}
+ \DeclareTranslation{German}{foo-literal}{foo-german}
+ \begin{document}
+ \GetTranslation{foo-literal} % foo-literal
+ \end{document}
+\end{example}
+
+\begin{example}[compile]
+ \documentclass[margin=5mm]{standalone}
+ \usepackage{translations}
+ \DeclareTranslationFallback{foo-literal}{foo}
+ \DeclareTranslation{German}{foo-literal}{foo-german}
+ \begin{document}
+ \GetTranslation{foo-literal} % foo
+ \end{document}
+\end{example}
+
+\begin{example}[compile]
+ \documentclass[margin=5mm]{standalone}
+ \usepackage[ngerman]{babel}
+ \usepackage{translations}
+ \DeclareTranslationFallback{foo-literal}{foo}
+ \DeclareTranslation{German}{foo-literal}{foo-german}
+ \begin{document}
+ \GetTranslation{foo-literal} % foo-german
+ \end{document}
+\end{example}
+
+\subsection{Dictionaries}\label{sec: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 or base language
+ as defined with \cs{DeclareLanguage}. This file should contain the
+ translations for the specified language. This means if \meta{lang} is a
+ dialect and a dictionary exists the dictionary is used. If it doesn't
+ exist but there is a dictionary for the base language that one is used.
+ \command{LoadDictionaryFor}[\marg{lang}\marg{name}]
+ Loads a file named \code{\meta{name}-\meta{lang}.trsl} where \meta{lang}
+ corresponds to the lowercase name of the current language or base language
+ as defined with \cs{DeclareLanguage}. This file should contain the
+ translations for the specified language. This means if \meta{lang} is a
+ dialect and a dictionary exists the dictionary is used. If it doesn't
+ exist but there is a dictionary for the base language that one is used.
+ \command{LoadDictionaryForDialect}[\marg{lang}\marg{name}]
+ \sinceversion{1.3}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. This command \emph{does not
+ look} for a base language dictionary.
+\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>]
+ \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. 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}\label{sec:transl-basic-dict}
+\translations\ already provides a basic dictionary for the languages
+\begin{itemize}
+ \item \sinceversion{1.9}Brazilian,
+ \item \sinceversion{1.5}Catalan,
+ \item English,
+ \item \sinceversion{1.5}Dutch,
+ \item French,
+ \item German,
+ \item \sinceversion{1.12}Polish, and
+ \item Spanish.
+\end{itemize}
+The corresponding dictionary\footnote{Or dictionaries if more than one of
+ these languages are loaded in a document. This works since v0.18.} is loaded
+automatically if the document language is one of these languages.
+
+\emph{If you'd like to contribute and add the basic dictionary in your
+ language this is more than welcome and highly appreciated!} The easiest way
+to do this would be to copy one of the existing files
+\code{translations-basic-dictionary-\meta{lang}.trsl} and modify the file
+accordingly. You can then send me the file via email and I'll add it to
+\translations.
+
+\Cref{tab:dict} lists all words provided by the basic dictionary for German.
+
+\begin{longtable}{ll}
+ \caption{All entries of \translations' basic dictionary in German.\label{tab:dict}} \\
+ \toprule
+ \rmfamily\bfseries key & \bfseries translation \\
+ \midrule
+ \endfirsthead
+ \toprule
+ \rmfamily\bfseries key & \bfseries translation \\
+ \midrule
+ \endhead
+ \bottomrule
+ \endlastfoot
+ \midrule
+ & \hfill\emph{continues} \\
+ \endfoot
+ \PrintDictionaryFor{German}{translations-basic-dictionary}{\ttfamily}{&}{\\}
+\end{longtable}
+
+
+\section{Defined Languages}\label{sec:languages}
+\subsection{Base Languages}\label{ssec:languages:base}
+Quite a number of languages already are defined, either directly or via an
+alias. So, before you define a language you should take a look at the tables
+below if the language doesn't already exist. \Cref{tab:languages} lists all
+base languages, ``fallback'' being a dummy language used for fallback
+translations. \Cref{tab:languages,tab:dialects,tab:aliases} list \emph{all}
+language names known to \translations. However, they're not sorted
+alphabetically but listed in the order they have been defined. I tried to
+make the definitions in an alphabetical order but sometimes rather grouped
+related language names together.
+
+If you miss a language or recognize a language that has falsely been declared
+as an alias but should rather be a dialect or base language itself (or any
+variation of this theme) please let me know, preferably with a short
+explanation what's wrong and why.
+
+\newcounter{column}
+\def\seplang{%
+ \stepcounter{column}%
+ \ifnumless{\value{column}}{5}
+ {&}
+ {\\\setcounter{column}{0}}%
+}
+\def\do#1{#1\seplang}
+\makeatletter
+\begin{longtable}{lllll}
+ \caption{Base languages defined by \translations, from left to right in
+ the order of definition.\label{tab:languages}} \\
+ \toprule
+ \endfirsthead
+ \toprule
+ \endhead
+ \bottomrule
+ \endlastfoot
+ \midrule
+ &&&& \hfill\emph{continues} \\
+ \endfoot
+ \dolistloop\@trnslt at languages
+\end{longtable}
+\makeatother
+
+\subsection{Language Dialects}\label{ssec:languages:dialects}
+\translations\ also defines a few dialects of thebase languages. They are
+listed in \cref{tab:dialects}. The decision what is a dialect and what is an
+alias is not always clear. I am no linguist so I looked up information
+available on the internet. A language that was described as
+\enquote{standardized register} was always defined as a dialect. For some
+other languages it seemed to make sense, such as British or Austrian. The
+decisions are open for debate.
+
+\setcounter{column}{0}
+\gdef\seplang{%
+ \ifnumgreater{\value{column}}{3}
+ {\setcounter{column}{1}}
+ {\stepcounter{column}}%
+ \ifnumless{\value{column}}{4}
+ {&}
+ {\\}%
+}
+\def\aliases#1#2{#1\seplang #2\seplang}
+\def\do#1{\aliases#1}
+\makeatletter
+\begin{longtable}{ll@{\hspace*{4em}}ll}
+ \caption{All dialects defined by \translations, from left to right in the
+ order of definition.\label{tab:dialects}}\\
+ \toprule
+ \bfseries dialect & \bfseries language &
+ \bfseries dialect & \bfseries language \\
+ \midrule
+ \endfirsthead
+ \toprule
+ \bfseries dialect & \bfseries language &
+ \bfseries dialect & \bfseries language \\
+ \midrule
+ \endhead
+ \bottomrule
+ \endlastfoot
+ \midrule
+ &&& \hfill\emph{continues} \\
+ \endfoot
+ \dolistloop\@trnslt at dialects@pair
+\end{longtable}
+\makeatother
+
+\subsection{Language Aliases}\label{ssec:languages:aliases}
+To most of the base languages and dialects at least one alias exists, the
+uppercase variant. This is due to the fact that it is common to write
+language names uppercased. For a number of languages aliases were defined in
+order to match \pkg{babel}'s or \pkg{polyglossia}'s names for the
+languages. Others are defined because there apparently exist more than one
+name for the same language. The decisions are not consistent. For example it
+could be argued that \enquote{deutsch} is an alias of \enquote{German}. I am
+open to suggestions and improvements. All defined aliases are listed in
+\cref{tab:aliases}.
+
+\setcounter{column}{0}
+\makeatletter
+\begin{longtable}{ll@{\hspace*{4em}}ll}
+ \caption{All language aliases defined by \translations, from left to right
+ in the order of definition.\label{tab:aliases}}\\
+ \toprule
+ \bfseries alias & \bfseries language &
+ \bfseries alias & \bfseries language \\
+ \midrule
+ \endfirsthead
+ \toprule
+ \bfseries alias & \bfseries language &
+ \bfseries alias & \bfseries language \\
+ \midrule
+ \endhead
+ \bottomrule
+ \endlastfoot
+ \midrule
+ &&& \hfill\emph{continues} \\
+ \endfoot
+ \dolistloop\@trnslt at aliases@pair
+\end{longtable}
+\makeatother
+
+These languages \emph{should} cover all languages which are currently covered
+by \pkg{babel} and \pkg{polyglossia} but very likely this is not the
+case. Should you miss a language please send me an email so I can add it to
+\translations.
+
+% \section{Implementation}
+% \lstinputlisting[style=cnltx]{translations.sty}
+
+\printbibliography
+
+\end{document}
Property changes on: trunk/Master/texmf-dist/doc/latex/translations/translations-manual.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/translations/translations_en.pdf
===================================================================
(Binary files differ)
Deleted: trunk/Master/texmf-dist/doc/latex/translations/translations_en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/translations/translations_en.tex 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/doc/latex/translations/translations_en.tex 2022-02-05 21:22:43 UTC (rev 61896)
@@ -1,792 +0,0 @@
-% arara: pdflatex: { shell: on, interaction: nonstopmode }
-% arara: biber
-% arara: pdflatex: { interaction: nonstopmode }
-% arara: pdflatex: { interaction: nonstopmode }
-% --------------------------------------------------------------------------
-% the TRANSLATIONS package
-%
-% internationalizations of LaTeX2e packages
-%
-% --------------------------------------------------------------------------
-% Clemens Niederberger
-% Web: https://github.com/cgnieder/translations
-% E-Mail: contact at mychemistry.eu
-% --------------------------------------------------------------------------
-% Copyright 2012--2022 Clemens Niederberger
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2008/05/04 or later.
-%
-% The Current Maintainer of this work is Clemens Niederberger.
-% --------------------------------------------------------------------------
-\PassOptionsToPackage{french,brazil,spanish,ngerman,english}{babel}
-\documentclass[load-preamble]{cnltx-doc}
-% ----------------------------------------------------------------------------
-\usepackage{imakeidx}
-% document layout and typographic features
-\setcnltx{
- package = {translations} ,
- authors = Clemens Niederberger ,
- email = contact at mychemistry.eu ,
- url = https://github.com/cgnieder/translations ,
- info = {Internationalization of \LaTeXe\ Packages} ,
- add-cmds = {
- baselanguage,
- DeclareDictTranslation,
- DeclareLanguage,
- DeclareLanguageAlias,
- DeclareLanguageDialect,
- DeclareTranslation,
- declaretranslation,
- DeclareTranslationFallback,
- declaretranslationfallback,
- GetTranslation,
- GetTranslationFor,
- ifcurrentbaselang,
- ifcurrentlang,
- IfTranslation,
- LoadDictionary,
- LoadDictionaryFor,
- NewTranslation,
- definetranslation,
- NewTranslationFallback,
- definetranslationfallback,
- ProvideDictionaryFor,
- ProvideDictTranslation,
- ProvideTranslation,
- addtranslation,
- ProvideTranslationFallback,
- addtranslationfallback,
- RenewTranslation,
- redefinetranslation,
- RenewTranslationFallback,
- redefinetranslationfallback,
- SaveTranslation,
- SaveTranslationFor
- } ,
- add-silent-cmds = {
- cuisine,kitchen,mypackage at title
- } ,
- makeindex-setup = {options={-s cnltx.ist},columns=3,columnsep=1em} ,
- index-setup = {othercode=\footnotesize,level=\addsec,noclearpage}
-}
-
-\microtypesetup{tracking=scshape}
-
-\usepackage[
- backend=biber,
- style=cnltx,
- sortlocale=en_US,
- indexing=cite]{biblatex}
-\usepackage{csquotes}
-\addbibresource{cnltx.bib}
-
-\usepackage[biblatex]{embrac}
-\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
-\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
-
-\defbibheading{bibliography}{\section{References}}
-
-% ----------------------------------------------------------------------------
-% other packages, bibliography, index
-\usepackage{array,longtable,booktabs}
-\usepackage{hyperref}
-\usepackage[sort]{cleveref}
-
-% ----------------------------------------------------------------------------
-% example definitions that have to be done in the preamble:
-\DeclareTranslation{English}{Kueche}{kitchen}
-\DeclareTranslation{German}{Kueche}{K\"uche}
-\DeclareTranslation{Spanish}{Kueche}{cocina}
-\DeclareTranslation{French}{Kueche}{cuisine}
-\DeclareTranslation{English}{farbe}{color}
-\DeclareTranslation{British}{farbe}{colour}
-\LoadDictionaryFor{German}{translations-basic-dictionary}
-
-% ----------------------------------------------------------------------------
-\usepackage{bbding}
-
-\newrobustcmd\fnote[1]{\textsuperscript{#1}}
-
-\tracingmacros=1
-
-\begin{document}
-
-\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}~\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
-package available I began using it in various of my other packages so it got
-extended to the needs I faced there.
-
-
-\section{License}\label{sec:license}
-\license
-
-\section{Usage}
-\subsection{Background}
-The \translations\ package enables the author of a package or a class (or a
-document) to declare translations of key words in different languages and
-fetch these translations in the document depending on the active language as
-set by \pkg{babel} or \pkg{polyglossia}. Since \translations\ checks which
-language is active it is generally not necessary (although possible) to
-specify the language for which a translation should be fetched manually.
-
-\translations\ knows of three types of languages: main languages (see
-\cref{tab:languages} on \cpageref{tab:languages}), language dialects (see
-\cref{tab:dialects} on \cpageref{tab:dialects}), and language aliases (see
-\cref{tab:aliases} on \cpageref{tab:aliases}). For the commands declaring or
-fetching a translation base languages and language aliases are equivalent.
-Dialects are similar to aliases but there are important differences. An alias
-can for example be an alias of a dialect.
-
-\Cref{fig:scheme} shows what happens if \translations\ is asked to fetch a
-translation for a given key.
-
-\begin{figure}[htbp]
- \centering
- \newlength\nodewidth
- \setlength\nodewidth{.375\linewidth}
- \newcommand*\yes{\centering\textcolor{green}{\CheckmarkBold}\par}
- \renewcommand*\no{\centering\textcolor{red}{\XSolidBrush}\par}
- \begin{tikzpicture}
- [
- level/.style={sibling distance=.5\linewidth/#1},
- every node/.style={
- draw,
- rounded corners=3pt,
- align=left,
- anchor=north,
- font=\small\sffamily
- }
- ]
- \node {check if any\fnote{a} translation is defined in given language}
- child {
- node[text width=\nodewidth]
- {\yes check if language is a dialect}
- child {
- node[text width=\nodewidth/2]
- {\yes check if dialect translation is given}
- child {
- node[text width=\nodewidth/2.75]
- {\yes use dialect translation}
- }
- child {
- node[text width=\nodewidth/2.75]
- {\no use lan\-guage\fnote{b} translation}
- }
- }
- child {
- node[text width=\nodewidth/2]
- {\no use translation}}
- }
- child {
- node[text width=\nodewidth]
- {\no check if fallback translation is given}
- child {
- node[text width=\nodewidth/2.75]
- {\yes use fallback translation}
- }
- child {
- node[text width=\nodewidth/2.75]
- {\no use literal key}
- }
- } ;
- \end{tikzpicture}
- \caption{Schematic representation of \translations' translating
- mechansim. Notes: \fnote{a} except for a possible fallback
- translation. \fnote{b} \ie, the base language of the dialect.}
- \label{fig:scheme}
-\end{figure}
-
-What happens if you declare a translation? There are four cases:
-\begin{enumerate}
- \item You declare a translation for a base language: this is the normal case
- where an internal macro is defined which can be fetched by the
- \cs{GetTranslation} command (see \cref{ssec:commands}).
- \item You declare a translation for a language alias: this is the very same
- as the first case since the same internal macro is defined.
- \item You declare a translation for a dialect: this is two-fold. Either a
- translation for the base language exists so only the translation for the
- dialect is saved. If the translation for the base language does not exist
- it is defined to be the same as the one for the dialect.
- \item You declare a translation for an alias of a dialect: this is the very
- same as the third case as again the internal macros are the same.
-\end{enumerate}
-
-\emph{Beware that if the current language is a language using a non-latin
- font, a translation is missing for said language, and the fallback
- translation needs a Latin script font then \emph{nothing} might be printed.}
-
-\subsection{Available Commands}\label{ssec:commands}
-Below the commands provided by \translations\ are explained. The symbol
-\textcolor{expandable}{\expandablesign} means that the command is expandable.
-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} in language
- \marg{lang} already exists. This command can only be used in the
- preamble.
- \command{NewTranslationFallback}[\marg{key}\marg{translation}]
- \sinceversion{1.4}Defines a fallback translation of key \meta{key} for the
- language \meta{lang}. An error will be raised if a fallback 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} in language
- \meta{lang} exists. This command can only be used in the preamble.
- \command{RenewTranslationFallback}[\marg{key}\marg{translation}]
- \sinceversion{1.4}Renews a fallback translation. 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} in language
- \meta{lang} already exists it won't be overwritten and no error will be
- raised. This command can only be used in the preamble.
- \command{ProvideTranslationFallback}[\marg{key}\marg{translation}]
- \sinceversion{1.4}Provides a fallback translation. 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}]
- Declares a fallback translation. This command can only be used in the
- preamble.
- \command{definetranslation}[\marg{lang}\marg{key}\marg{translation}]
- \sinceversion{1.4}A version of \cs{NewTranslation} that \emph{can} be used
- after begin document.
- \command{definetranslationfallback}[\marg{key}\marg{translation}]
- \sinceversion{1.4}A version of \cs{NewTranslationFallback} that \emph{can}
- be used after begin document.
- \command{redefinetranslation}[\marg{lang}\marg{key}\marg{translation}]
- \sinceversion{1.4}A version of \cs{RenewTranslation} that \emph{can} be
- used after begin document.
- \command{redefinetranslationfallback}[\marg{key}\marg{translation}]
- \sinceversion{1.4}A version of \cs{RenewTranslationFallback} that
- \emph{can} be used after begin document.
- \command{addtranslation}[\marg{lang}\marg{key}\marg{translation}]
- \sinceversion{1.4}A version of \cs{ProvideTranslation} that \emph{can} be
- used after begin document.
- \command{addtranslationfallback}[\marg{key}\marg{translation}]
- \sinceversion{1.4}A version of \cs{ProvideTranslationFallback} that
- \emph{can} be used after begin document.
- \command{declaretranslation}[\marg{lang}\marg{key}\marg{translation}]
- \sinceversion{1.4}A version of \cs{DeclareTranslation} that \emph{can} be
- used after begin document.
- \command{declaretranslationfallback}[\marg{key}\marg{translation}]
- \sinceversion{1.4}A version of \cs{DeclareTranslationFallback} that
- \emph{can} be used after begin document.
- \expandable\command{IfTranslation}[\marg{lang}\marg{key}\marg{true}\marg{false}]
- Checks\sinceversion{1.2d} if a translation for \meta{key} in language
- \meta{lang} is defined or not and either leaves \meta{true} or
- \meta{false} in the input stream.
- \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}]
- \changedversion{1.2a}Returns the (internal) base name of the given language,
- language alias or language dialect. For a dialect this expands to the
- name of language it is a dialect of. For a base language (see
- section~\ref{ssec:languages:base}) this usually simply is the lowercase
- version of the name.\par
- \verbcode+\baselanguage{English}+ $\Rightarrow$ \code{english}\\
- \verbcode+\baselanguage{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{ifcurrentlang}[\marg{lang}]
- \sinceversion{1.9}The same as \cs{ifcurrentlanguage} but uses the
- \dots\cs{else}\dots\cs*{fi} syntax.
- \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 not count 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}.
- \expandable\command{ifcurrentbaselang}[\marg{lang}]
- \sinceversion{1.9}The same as \cs{ifcurrentbaselanguage} but uses the
- \dots\cs{else}\dots\cs*{fi} syntax.
-\end{commands}
-
-\subsection{A Small Example}
-This section demonstrates with two short examples how the macros are used.
-The first example covers the basics: declaring of translations and then
-retrieving and typesetting them.
-
-\begin{example}
- % in the preamble:
- % \DeclareTranslation{English}{Kueche}{kitchen}
- % \DeclareTranslation{German}{Kueche}{K\"uche}
- % \DeclareTranslation{Spanish}{Kueche}{cocina}
- % \DeclareTranslation{French}{Kueche}{cuisine}
-
- \GetTranslation{Kueche}
- \SaveTranslation\kitchen{Kueche}
- \SaveTranslationFor\cuisine{french}{Kueche}
-
- \selectlanguage{ngerman}
- \GetTranslation{Kueche} \kitchen\ \GetTranslationFor{spanish}{Kueche}
- \cuisine
-
- \IfTranslation{German}{Kueche}{true}{false} \par
- \IfTranslation{Danish}{Kueche}{true}{false}
-\end{example}
-
-The next example demonstrates the use of dialects and how they fall back to
-the translation for the main language if no extra translation was declared:
-
-\begin{example}
- % in the preamble:
- % \DeclareTranslation{English}{farbe}{color}
- % \DeclareTranslation{British}{farbe}{colour}
-
- \GetTranslationFor{English}{farbe}
- \GetTranslationFor{British}{farbe}
- \GetTranslationFor{American}{farbe}
-\end{example}
-
-\subsection{Usage in Packages}
-\subsubsection{Basic Structure}
-A typical usage in a package would look as follows:
-\begin{sourcecode}
- \RequirePackage{translations}
- \DeclareTranslationFallback{mypackage-title}{Nice Title}
- \DeclareTranslation{English}{mypackage-title}{Nice Title}
- \DeclareTranslation{French}{mypackage-title}{Beau Titre}
- \DeclareTranslation{German}{mypackage-title}{Sch\"{o}ner Titel}
- ...
- \newcommand*\mypackage at title{\GetTranslation{mypackage-title}}
-\end{sourcecode}
-
-That is, a package defines some unique key for an expression and at least
-defines a fallback translation. Additionally translations for as many
-languages as the author wants are defined. A user then may add
-\cs{DeclareTranslation}\marg{language}\marg{translation} if they find their
-translation missing.
-
-\subsubsection{The `fallback' language}
-If a user has neither loaded \pkg{babel} nor \pkg{polyglossia} \translations\
-will use English as language and translate to English if the translation was
-provided. If the user \emph{has} loaded one of the language packages but has
-chosen a language for which no translation is defined the language `fallback'
-will be used, \ie, the translation provided with
-\cs{DeclareTranslationFallback}. If no fallback translation is provided
-either, the translation will expand to the literal string.
-
-The following three examples should make this concept clear:
-
-\begin{example}[compile]
- \documentclass[margin=5mm]{standalone}
- \usepackage{translations}
- \DeclareTranslation{German}{foo-literal}{foo-german}
- \begin{document}
- \GetTranslation{foo-literal} % foo-literal
- \end{document}
-\end{example}
-
-\begin{example}[compile]
- \documentclass[margin=5mm]{standalone}
- \usepackage{translations}
- \DeclareTranslationFallback{foo-literal}{foo}
- \DeclareTranslation{German}{foo-literal}{foo-german}
- \begin{document}
- \GetTranslation{foo-literal} % foo
- \end{document}
-\end{example}
-
-\begin{example}[compile]
- \documentclass[margin=5mm]{standalone}
- \usepackage[ngerman]{babel}
- \usepackage{translations}
- \DeclareTranslationFallback{foo-literal}{foo}
- \DeclareTranslation{German}{foo-literal}{foo-german}
- \begin{document}
- \GetTranslation{foo-literal} % foo-german
- \end{document}
-\end{example}
-
-\subsection{Dictionaries}\label{sec: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 or base language
- as defined with \cs{DeclareLanguage}. This file should contain the
- translations for the specified language. This means if \meta{lang} is a
- dialect and a dictionary exists the dictionary is used. If it doesn't
- exist but there is a dictionary for the base language that one is used.
- \command{LoadDictionaryFor}[\marg{lang}\marg{name}]
- Loads a file named \code{\meta{name}-\meta{lang}.trsl} where \meta{lang}
- corresponds to the lowercase name of the current language or base language
- as defined with \cs{DeclareLanguage}. This file should contain the
- translations for the specified language. This means if \meta{lang} is a
- dialect and a dictionary exists the dictionary is used. If it doesn't
- exist but there is a dictionary for the base language that one is used.
- \command{LoadDictionaryForDialect}[\marg{lang}\marg{name}]
- \sinceversion{1.3}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. This command \emph{does not
- look} for a base language dictionary.
-\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>]
- \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. 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}\label{sec:transl-basic-dict}
-\translations\ already provides a basic dictionary for the languages
-\begin{itemize}
- \item Brazilian,
- \item Catalan,
- \item English,
- \item Dutch,
- \item French,
- \item German, and
- \item Spanish.
-\end{itemize}
-The corresponding dictionary\footnote{Or dictionaries if more than one of
- these languages are loaded in a document. This works since v0.18.} is loaded
-automatically if the document language is one of these languages.
-
-\emph{If you'd like to contribute and add the basic dictionary in your
- language this is more than welcome and highly appreciated!} The easiest way
-to do this would be to copy one of the existing files
-\code{translations-basic-dictionary-\meta{lang}.trsl} and modify the file
-accordingly. You can then send me the file via email and I'll add it to
-\translations.
-
-\Cref{tab:dict} lists all words provided by the basic dictionary for German.
-
-\begin{longtable}{ll}
- \caption{All entries of \translations' basic dictionary in German.\label{tab:dict}} \\
- \toprule
- \rmfamily\bfseries key & \bfseries translation \\
- \midrule
- \endfirsthead
- \toprule
- \rmfamily\bfseries key & \bfseries translation \\
- \midrule
- \endhead
- \bottomrule
- \endlastfoot
- \midrule
- & \hfill\emph{continues} \\
- \endfoot
- \PrintDictionaryFor{German}{translations-basic-dictionary}{\ttfamily}{&}{\\}
-\end{longtable}
-
-
-\section{Defined Languages}\label{sec:languages}
-\subsection{Base Languages}\label{ssec:languages:base}
-Quite a number of languages already are defined, either directly or via an
-alias. So, before you define a language you should take a look at the tables
-below if the language doesn't already exist. \Cref{tab:languages} lists all
-base languages, ``fallback'' being a dummy language used for fallback
-translations. \Cref{tab:languages,tab:dialects,tab:aliases} list \emph{all}
-language names known to \translations. However, they're not sorted
-alphabetically but listed in the order they have been defined. I tried to
-make the definitions in an alphabetical order but sometimes rather grouped
-related language names together.
-
-If you miss a language or recognize a language that has falsely been declared
-as an alias but should rather be a dialect or base language itself (or any
-variation of this theme) please let me know, preferably with a short
-explanation what's wrong and why.
-
-\newcounter{column}
-\def\seplang{%
- \stepcounter{column}%
- \ifnumless{\value{column}}{5}
- {&}
- {\\\setcounter{column}{0}}%
-}
-\def\do#1{#1\seplang}
-\makeatletter
-\begin{longtable}{lllll}
- \caption{Base languages defined by \translations, from left to right in
- the order of definition.\label{tab:languages}} \\
- \toprule
- \endfirsthead
- \toprule
- \endhead
- \bottomrule
- \endlastfoot
- \midrule
- &&&& \hfill\emph{continues} \\
- \endfoot
- \dolistloop\@trnslt at languages
-\end{longtable}
-\makeatother
-
-\subsection{Language Dialects}\label{ssec:languages:dialects}
-\translations\ also defines a few dialects of thebase languages. They are
-listed in \cref{tab:dialects}. The decision what is a dialect and what is an
-alias is not always clear. I am no linguist so I looked up information
-available on the internet. A language that was described as
-\enquote{standardized register} was always defined as a dialect. For some
-other languages it seemed to make sense, such as British or Austrian. The
-decisions are open for debate.
-
-\setcounter{column}{0}
-\gdef\seplang{%
- \ifnumgreater{\value{column}}{3}
- {\setcounter{column}{1}}
- {\stepcounter{column}}%
- \ifnumless{\value{column}}{4}
- {&}
- {\\}%
-}
-\def\aliases#1#2{#1\seplang #2\seplang}
-\def\do#1{\aliases#1}
-\makeatletter
-\begin{longtable}{ll@{\hspace*{4em}}ll}
- \caption{All dialects defined by \translations, from left to right in the
- order of definition.\label{tab:dialects}}\\
- \toprule
- \bfseries dialect & \bfseries language &
- \bfseries dialect & \bfseries language \\
- \midrule
- \endfirsthead
- \toprule
- \bfseries dialect & \bfseries language &
- \bfseries dialect & \bfseries language \\
- \midrule
- \endhead
- \bottomrule
- \endlastfoot
- \midrule
- &&& \hfill\emph{continues} \\
- \endfoot
- \dolistloop\@trnslt at dialects@pair
-\end{longtable}
-\makeatother
-
-\subsection{Language Aliases}\label{ssec:languages:aliases}
-To most of the base languages and dialects at least one alias exists, the
-uppercase variant. This is due to the fact that it is common to write
-language names uppercased. For a number of languages aliases were defined in
-order to match \pkg{babel}'s or \pkg{polyglossia}'s names for the
-languages. Others are defined because there apparently exist more than one
-name for the same language. The decisions are not consistent. For example it
-could be argued that \enquote{deutsch} is an alias of \enquote{German}. I am
-open to suggestions and improvements. All defined aliases are listed in
-\cref{tab:aliases}.
-
-\setcounter{column}{0}
-\makeatletter
-\begin{longtable}{ll@{\hspace*{4em}}ll}
- \caption{All language aliases defined by \translations, from left to right
- in the order of definition.\label{tab:aliases}}\\
- \toprule
- \bfseries alias & \bfseries language &
- \bfseries alias & \bfseries language \\
- \midrule
- \endfirsthead
- \toprule
- \bfseries alias & \bfseries language &
- \bfseries alias & \bfseries language \\
- \midrule
- \endhead
- \bottomrule
- \endlastfoot
- \midrule
- &&& \hfill\emph{continues} \\
- \endfoot
- \dolistloop\@trnslt at aliases@pair
-\end{longtable}
-\makeatother
-
-These languages \emph{should} cover all languages which are currently covered
-by \pkg{babel} and \pkg{polyglossia} but very likely this is not the
-case. Should you miss a language please send me an email so I can add it to
-\translations.
-
-% \section{Implementation}
-% \lstinputlisting[style=cnltx]{translations.sty}
-
-\printbibliography
-
-\end{document}
Modified: trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-brazil.trsl
===================================================================
--- trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-brazil.trsl 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-brazil.trsl 2022-02-05 21:22:43 UTC (rev 61896)
@@ -6,7 +6,7 @@
% --------------------------------------------------------------------------
% Clemens Niederberger
% Web: https://github.com/cgnieder/translations
-% E-Mail: contact at mychemistry.eu
+% E-Mail: clemens at cnltx.de
% --------------------------------------------------------------------------
% Copyright 2012--2022 Clemens Niederberger
%
Modified: trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-catalan.trsl
===================================================================
--- trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-catalan.trsl 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-catalan.trsl 2022-02-05 21:22:43 UTC (rev 61896)
@@ -6,7 +6,7 @@
% --------------------------------------------------------------------------
% Clemens Niederberger
% Web: https://github.com/cgnieder/translations
-% E-Mail: contact at mychemistry.eu
+% E-Mail: clemens at cnltx.de
% --------------------------------------------------------------------------
% Copyright 2012--2022 Clemens Niederberger
%
Modified: trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-dutch.trsl
===================================================================
--- trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-dutch.trsl 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-dutch.trsl 2022-02-05 21:22:43 UTC (rev 61896)
@@ -6,7 +6,7 @@
% --------------------------------------------------------------------------
% Clemens Niederberger
% Web: https://github.com/cgnieder/translations
-% E-Mail: contact at mychemistry.eu
+% E-Mail: clemens at cnltx.de
% --------------------------------------------------------------------------
% Copyright 2012--2022 Clemens Niederberger
%
Modified: trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-english.trsl
===================================================================
--- trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-english.trsl 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-english.trsl 2022-02-05 21:22:43 UTC (rev 61896)
@@ -6,7 +6,7 @@
% --------------------------------------------------------------------------
% Clemens Niederberger
% Web: https://github.com/cgnieder/translations
-% E-Mail: contact at mychemistry.eu
+% E-Mail: clemens at cnltx.de
% --------------------------------------------------------------------------
% Copyright 2012--2022 Clemens Niederberger
%
Modified: trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-french.trsl
===================================================================
--- trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-french.trsl 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-french.trsl 2022-02-05 21:22:43 UTC (rev 61896)
@@ -6,7 +6,7 @@
% --------------------------------------------------------------------------
% Clemens Niederberger
% Web: https://github.com/cgnieder/translations
-% E-Mail: contact at mychemistry.eu
+% E-Mail: clemens at cnltx.de
% --------------------------------------------------------------------------
% Copyright 2012--2022 Clemens Niederberger
%
Modified: trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-german.trsl
===================================================================
--- trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-german.trsl 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-german.trsl 2022-02-05 21:22:43 UTC (rev 61896)
@@ -6,7 +6,7 @@
% --------------------------------------------------------------------------
% Clemens Niederberger
% Web: https://github.com/cgnieder/translations
-% E-Mail: contact at mychemistry.eu
+% E-Mail: clemens at cnltx.de
% --------------------------------------------------------------------------
% Copyright 2012--2022 Clemens Niederberger
%
Added: trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-polish.trsl
===================================================================
--- trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-polish.trsl (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-polish.trsl 2022-02-05 21:22:43 UTC (rev 61896)
@@ -0,0 +1,132 @@
+% --------------------------------------------------------------------------
+% the TRANSLATIONS package
+%
+% internationalization of LaTeX2e packages
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://github.com/cgnieder/translations
+% E-Mail: clemens at cnltx.de
+% --------------------------------------------------------------------------
+% Copyright 2012--2022 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\ProvideDictionaryFor{Polish}{translations-basic-dictionary}
+
+\ProvideDictTranslation{Abstract}{Streszczenie}
+\ProvideDictTranslation{Addresses}{Adresy}
+\ProvideDictTranslation{addresses}{adresy}
+\ProvideDictTranslation{Address}{Adres}
+\ProvideDictTranslation{address}{adres}
+\ProvideDictTranslation{and}{i}
+\ProvideDictTranslation{Appendix}{Dodatek}
+\ProvideDictTranslation{Authors}{Autorzy}
+\ProvideDictTranslation{authors}{autorzy}
+\ProvideDictTranslation{Author}{Autor}
+\ProvideDictTranslation{author}{autor}
+\ProvideDictTranslation{Bibliography}{Bibliografia}
+\ProvideDictTranslation{cc}{dw.}
+\ProvideDictTranslation{Chapters}{Rozdzia\l y}
+\ProvideDictTranslation{chapters}{rozdzia\l y}
+\ProvideDictTranslation{Chapter}{Rozdzia\l}
+\ProvideDictTranslation{chapter}{rozdzia\l}
+\ProvideDictTranslation{Conclusion}{Wniosek}
+\ProvideDictTranslation{conclusion}{wniosek}
+\ProvideDictTranslation{Contents}{Spis tre\' sci}
+\ProvideDictTranslation{Continuation}{Kontynuacja}
+\ProvideDictTranslation{continuation}{kontynuacja}
+\ProvideDictTranslation{cont}{kont.}
+\ProvideDictTranslation{encl (plural)}{zał.}
+\ProvideDictTranslation{encl (singular)}{zał.}
+\ProvideDictTranslation{encl}{zał.}
+\ProvideDictTranslation{Figures}{Rysunki}
+\ProvideDictTranslation{figures}{rysunki}
+\ProvideDictTranslation{Figure}{Rysunek}
+\ProvideDictTranslation{figure}{rysunek}
+\ProvideDictTranslation{From}{Od}
+\ProvideDictTranslation{from}{od}
+\ProvideDictTranslation{Glossary}{Glosariusz}
+\ProvideDictTranslation{Index}{Skorowidz}
+\ProvideDictTranslation{Introduction}{Wprowadzenie}
+\ProvideDictTranslation{introduction}{wprowadzenie}
+\ProvideDictTranslation{List of Figures and Tables}{Spis rysunk\' ow i~tabel}
+\ProvideDictTranslation{List of Figures}{Spis rysunk\' ow}
+\ProvideDictTranslation{List of Tables}{Spis tabel}
+\ProvideDictTranslation{or}{lub}
+\ProvideDictTranslation{Outline}{Zarys}
+\ProvideDictTranslation{Overview}{Przegl\k ad}
+\ProvideDictTranslation{Pages}{Strony}
+\ProvideDictTranslation{pages}{strony}
+\ProvideDictTranslation{Page}{Strona}
+\ProvideDictTranslation{page}{strona}
+\ProvideDictTranslation{Paragraphs}{Akapity}
+\ProvideDictTranslation{paragraphs}{akapity}
+\ProvideDictTranslation{Paragraph}{Akapit}
+\ProvideDictTranslation{paragraph}{akapit}
+\ProvideDictTranslation{Parts}{Cz\k e\' sci}
+\ProvideDictTranslation{parts}{cz\k e\' sci}
+\ProvideDictTranslation{Part}{Cz\k e\' s\' c}
+\ProvideDictTranslation{part}{cz\k e\' s\' c}
+\ProvideDictTranslation{Preface}{Przedmowa}
+\ProvideDictTranslation{Proofs}{Dowody}
+\ProvideDictTranslation{proofs}{dowody}
+\ProvideDictTranslation{Proof}{Dow\'od}
+\ProvideDictTranslation{proof}{dow\'od}
+\ProvideDictTranslation{References}{Literatura}
+\ProvideDictTranslation{Related work}{Prace pokrewne}
+\ProvideDictTranslation{Related Work}{Prace pokrewne}
+\ProvideDictTranslation{Sections}{Podrozdzia\l y}
+\ProvideDictTranslation{sections}{podrozdzia\l y}
+\ProvideDictTranslation{Section}{Podrozdzia\l}
+\ProvideDictTranslation{section}{podrozdzia\l}
+\ProvideDictTranslation{See also}{Zobacz te\. z}
+\ProvideDictTranslation{see also}{zobacz te\. z}
+\ProvideDictTranslation{See}{Zobacz}
+\ProvideDictTranslation{see}{zobacz}
+\ProvideDictTranslation{Sketch of Proofs}{Szkic dowod\' ow}
+\ProvideDictTranslation{Sketch of proofs}{Szkic dowod\' ow}
+\ProvideDictTranslation{Sketch of Proof}{Szkic dowodu}
+\ProvideDictTranslation{Sketch of proof}{Szkic dowodu}
+\ProvideDictTranslation{Subsections}{Paragrafy}
+\ProvideDictTranslation{subsections}{paragrafy}
+\ProvideDictTranslation{Subsection}{Paragraf}
+\ProvideDictTranslation{subsection}{paragraf}
+\ProvideDictTranslation{Summary}{Podsumowanie}
+\ProvideDictTranslation{Tables}{Tabele}
+\ProvideDictTranslation{tables}{tabele}
+\ProvideDictTranslation{Table}{Tabela}
+\ProvideDictTranslation{table}{tabela}
+\ProvideDictTranslation{To}{Do}
+\ProvideDictTranslation{to}{do}
+
+\ProvideDictTranslation{Monday}{poniedzia\l ek}
+\ProvideDictTranslation{Tuesday}{wtorek}
+\ProvideDictTranslation{Wednesday}{\' sroda}
+\ProvideDictTranslation{Thursday}{czwartek}
+\ProvideDictTranslation{Friday}{pi\k atek}
+\ProvideDictTranslation{Saturday}{sobota}
+\ProvideDictTranslation{Sunday}{niedziela}
+
+\ProvideDictTranslation{January}{stycze\' n}
+\ProvideDictTranslation{February}{luty}
+\ProvideDictTranslation{March}{marzec}
+\ProvideDictTranslation{April}{kwiecie\' n}
+\ProvideDictTranslation{May}{maj}
+\ProvideDictTranslation{June}{czerwiec}
+\ProvideDictTranslation{July}{lipiec}
+\ProvideDictTranslation{August}{sierpie\' n}
+\ProvideDictTranslation{September}{wrzesie\' n}
+\ProvideDictTranslation{October}{pa\' zdziernik}
+\ProvideDictTranslation{November}{listopad}
+\ProvideDictTranslation{December}{grudzie\' n}
Modified: trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-spanish.trsl
===================================================================
--- trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-spanish.trsl 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/tex/latex/translations/translations-basic-dictionary-spanish.trsl 2022-02-05 21:22:43 UTC (rev 61896)
@@ -6,7 +6,7 @@
% --------------------------------------------------------------------------
% Clemens Niederberger
% Web: https://github.com/cgnieder/translations
-% E-Mail: contact at mychemistry.eu
+% E-Mail: clemens at cnltx.de
% --------------------------------------------------------------------------
% Copyright 2012--2022 Clemens Niederberger
%
Modified: trunk/Master/texmf-dist/tex/latex/translations/translations.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/translations/translations.sty 2022-02-05 17:58:27 UTC (rev 61895)
+++ trunk/Master/texmf-dist/tex/latex/translations/translations.sty 2022-02-05 21:22:43 UTC (rev 61896)
@@ -6,9 +6,9 @@
% --------------------------------------------------------------------------
% Clemens Niederberger
% Web: https://github.com/cgnieder/translations
-% E-Mail: contact at mychemistry.eu
+% E-Mail: clemens at cnltx.de
% --------------------------------------------------------------------------
-% Copyright 2012--2021 Clemens Niederberger
+% Copyright 2012--2022 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,8 +25,8 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-\newcommand*\@trnslt at date{2022/01/04}
-\newcommand*\@trnslt at version{v1.11}
+\newcommand*\@trnslt at date{2022/02/05}
+\newcommand*\@trnslt at version{v1.12}
\newcommand*\@trnslt at packageinfo{internationalization of LaTeX2e packages}
\ProvidesPackage{translations}[%
@@ -1236,3 +1236,5 @@
- make nynorsk a dialect of norsk, fixes issue #19
- don't define the literal string as command but output it
directly; fixes issue #13
+ - correct some Dutch translations
+2022/02/05 v1.12 - add Polish translations, thanks to Jacub Kaczor
More information about the tex-live-commits
mailing list.