diff options
author | Karl Berry <karl@freefriends.org> | 2013-07-17 22:16:32 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-07-17 22:16:32 +0000 |
commit | b89c6d74de55dd5e434d60c0fb3a81f66ad153db (patch) | |
tree | a6e6f3977c86c34cf8f955d186f2ee064db07d49 /Master/texmf-dist/doc/latex/translations | |
parent | eec0a21648f82e9f409ed8151e1bc83f34bfec79 (diff) |
translations (17jul13)
git-svn-id: svn://tug.org/texlive/trunk@31222 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/translations')
-rw-r--r-- | Master/texmf-dist/doc/latex/translations/README | 34 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/translations/translations_en.pdf | bin | 0 -> 152864 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/translations/translations_en.tex | 596 |
3 files changed, 630 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/translations/README b/Master/texmf-dist/doc/latex/translations/README new file mode 100644 index 00000000000..56a547c7002 --- /dev/null +++ b/Master/texmf-dist/doc/latex/translations/README @@ -0,0 +1,34 @@ +-------------------------------------------------------------------------- +the TRANSLATIONS package v1.0 - 2013/07/16 + a simple translator + +-------------------------------------------------------------------------- +Clemens Niederberger +Web: https://github.com/cgnieder/translations +E-Mail: contact@mychemistry.eu +-------------------------------------------------------------------------- +Copyright 2011-2013 Clemens Niederberger + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +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-basic-dictionary-english.trsl, + translations-basic-dictionary-french.trsl, + translations-basic-dictionary-german.trsl, + translations-basic-dictionary-spanish.trsl + - README +-------------------------------------------------------------------------- +If you have any ideas, questions, suggestions or bugs to report, please +feel free to contact me. +-------------------------------------------------------------------------- diff --git a/Master/texmf-dist/doc/latex/translations/translations_en.pdf b/Master/texmf-dist/doc/latex/translations/translations_en.pdf Binary files differnew file mode 100644 index 00000000000..894f586651e --- /dev/null +++ b/Master/texmf-dist/doc/latex/translations/translations_en.pdf diff --git a/Master/texmf-dist/doc/latex/translations/translations_en.tex b/Master/texmf-dist/doc/latex/translations/translations_en.tex new file mode 100644 index 00000000000..5a368411a0b --- /dev/null +++ b/Master/texmf-dist/doc/latex/translations/translations_en.tex @@ -0,0 +1,596 @@ +% arara: lualatex +% !arara: lualatex +% !arara: lualatex +% -------------------------------------------------------------------------- +% the TRANSLATIONS package +% +% a simple translator +% +% -------------------------------------------------------------------------- +% Clemens Niederberger +% Web: https://github.com/cgnieder/translations/ +% E-Mail: contact@mychemistry.eu +% -------------------------------------------------------------------------- +% Copyright 2011-2013 Clemens Niederberger +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Clemens Niederberger. +% -------------------------------------------------------------------------- +% The translations package is part of the exsheets bundle +% -------------------------------------------------------------------------- +% If you have any ideas, questions, suggestions or bugs to report, please +% feel free to contact me. +% -------------------------------------------------------------------------- +% +% if you want to compile this documentation you'll need the document class +% `cnpkgdoc' which you can get here: +% https://bitbucket.org/cgnieder/cnpkgdoc/ +% the class is licensed LPPL 1.3 or later +% +% use `pdflatex' for compilation +% +\PassOptionsToPackage{supstfm=libertinesups}{superiors} +\documentclass[DIV11,toc=index,toc=bib,numbers=noendperiod]{cnpkgdoc} +% ---------------------------------------------------------------------------- +% document layout and typographic features +\docsetup{ + pkg = {translations} , + repo = github , + subtitle = {a simple translator} , + language = en , + modules = true , + code-box = { + backgroundcolor = gray!7!white , + skipbelow = .6\baselineskip plus .5ex minus .5ex , + skipabove = .6\baselineskip plus .5ex minus .5ex , + innerleftmargin = 1.5em , + innerrightmargin = 2.5em + } , + gobble = 1 +} +\usepackage[oldstyle,proportional]{libertine} +\usepackage{libertinehologopatch} +\setmonofont[Scale=MatchLowercase]{Bitstream Vera Sans Mono} +\usepackage[english]{selnolig} +\cnpkgusecolorscheme{friendly} + +\usepackage{embrac}[2012/06/29] + \ChangeEmph{[}[,.02em]{]}[.055em,-.08em] + \ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em] +\usepackage{microtype} +\usepackage[multiple]{fnpct} + +\renewcommand*\othersectionlevelsformat[3]{\textcolor{main}{#3\autodot}\enskip} +\renewcommand*\partformat{\textcolor{main}{\partname~\thepart\autodot}} + +\pagestyle{headings} + +\setcapindent{1.5em} +\setkomafont{caption}{\normalfont\footnotesize\sffamily} +\setkomafont{captionlabel}{\normalfont\footnotesize\sffamily\scshape} + +\usepackage{booktabs,array,ragged2e} + +% ---------------------------------------------------------------------------- +% code examples +\addcmds{ + cuisine, + DeclareDictTranslation, DeclareLanguage, DeclareLanguageAlias, + DeclareLanguageDialect, DeclareTranslation, DeclareTranslationFallback, + GetTranslation, GetTranslationFor, + kitchen, + LoadDictionary, LoadDictionaryFor, + mypackage@title, + NewTranslation, + ProvideDictionaryFor, + RenewTranslation,RequirePackage, + SaveTranslation, SaveTranslationFor, selectlanguage +} + +% ---------------------------------------------------------------------------- +% other packages, bibliography, index +\usepackage{array,longtable,booktabs} + +\usepackage{filecontents} +\usepackage{imakeidx} +\begin{filecontents*}{\jobname.ist} + heading_prefix "{\\bfseries " + heading_suffix "\\hfil}\\nopagebreak\n" + headings_flag 1 + delim_0 "\\dotfill\\hyperpage{" + delim_1 "\\dotfill\\hyperpage{" + delim_2 "\\dotfill\\hyperpage{" + delim_r "}\\textendash\\hyperpage{" + delim_t "}" + suffix_2p "\\nohyperpage{\\,f.}" + suffix_3p "\\nohyperpage{\\,ff.}" +\end{filecontents*} +\indexsetup{othercode=\footnotesize} +\makeindex[options={-s \jobname.ist},intoc,columns=3] + +% ---------------------------------------------------------------------------- +% 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} + +% ---------------------------------------------------------------------------- +% custom commands +\usepackage{bbding} + +\newcommand*\required{\hfill\llap{required}\newline} +\newcommand*\optional{\hfill\llap{optional}\newline} + +\newcommand*\unexpsign{{\tiny\FiveStar}} +\newcommand*\expsign{\textcolor{red}{{\tiny\FiveStar}}} +\renewcommand*\cnpkgdoctriangle{\unexpsign} +\newcommand*\expandable{% + \def\cnpkgdoctriangle{% + \expsign + \gdef\cnpkgdoctriangle{\unexpsign}}} + +\newlength\nodewidth +\setlength\nodewidth{.375\linewidth} +\long\def\yes:{\textcolor{green}{\CheckmarkBold}\par} +\long\def\no:{\textcolor{red}{\XSolidBrush}\par} +\protected\def\fnote#1{\textsuperscript{#1}} + +\pdfstringdefDisableCommands{\def\llap#1{#1\space}\def\bigstar{*}} + +\begin{document} + +\section{Motivation}\secidx{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 \paket*{translator} (part of the +\paket{beamer} bundle). Internationalization is also possible with +\paket{babel} and it's \cmd*{addto}\cmd{captions<language>} mechanism or +\KOMAScript's \cmd{providecaptionname}. However, I believe that +\translations\ is more flexible than all of these. Unlike \paket*{translator} +it detects the used (\paket{babel} or \paket{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 \paket{translator}'s \cmd{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. +\secidx*{Motivation} + +\section{License and Requirements}\label{sec:license}\secidx{Requirements} +\translations\ is placed under the terms of the \LaTeX{} Project Public +License, version 1.3 or later (\url{http://www.latex-project.org/lppl.txt}). +It has the status ``maintained.'' + +\translations\ requires the packages \paket{etoolbox} and \paket*{scrlfile} +(part of the \KOMAScript\ bundle\footnote{\CTANurl{koma-script}}). +\secidx*{Requirements} + +\section{Usage}\secidx{Usage} +\subsection{Background}\secidx[Background]{Usage} +The \translations\ package enables the author of a package or a class (or a +document) to declare translations in different languages of key words and +fetch these translations in the document depending on the active language as +set by \paket{babel} or \paket{polyglossia}. Since \translations\ checks +which language is active it is generally not necessary to specify the language +for which a translation should be fetched manually. + +\translations\ knows of three types of languages: main languages (see +table~\ref{tab:languages} on page~\pageref{tab:languages}), language aliases +(see table~\ref{tab:aliases} on page~\pageref{tab:aliases}) and language +dialects (see table~\ref{tab:dialects} on page~\pageref{tab:dialects}). For +the commands declaring or fetching a translation base languages and language +aliases are equivalent. Dialects are similar to aliases but there are a few +important differences. + +Figure~\ref{fig:scheme} shows what happens if \translations\ is asked to fetch +a translation for a given key. + +\begin{figure}[htbp] + \centering + \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 three 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 + \cmd{GetTranslation} command (see section~\ref{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. +\end{enumerate} + +\subsection{Available Commands}\label{ssec:commands}\secidx[Commands]{Usage} +Below the commands provided by \translations\ are explained. The symbol +\expsign{} means that the command is expandable, \unexpsign{} means that it +isn't. +\begin{beschreibung} + \Befehl{DeclareLanguage}{<lang>}\newline + 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. + \Befehl{DeclareLanguageAlias}{<lang2>}\ma{<lang1>}\newline + Declares \code{<lang2>} to be an alias of \code{<lang1>}. If \code{<lang1>} + doesn't exist yet a warning will be raised and it will be defined. This + command can only be used in the preamble. + \Befehl{DeclareLanguageDialect}{<dialect>}\ma{<lang>}\newline + Declares \code{<dialect>} to be a dialect of language \code{<lang>}. If a + translation for \code{<dialect>} is provided it is used by the translation + macros. If there is none the corresponding translation for \code{<lang>} is + used instead. + \Befehl{NewTranslation}{<lang>}\ma{<key>}\ma{<translation>}\newline + Defines a translation of key \code{<key>} for the language \code{<lang>}. + An error will be raised if a translation of \code{<key>} already exists. + This command can only be used in the preamble. + \Befehl{RenewTranslation}{<lang>}\ma{<key>}\ma{<translation>}\newline + Redefines a translation of key \code{<key>} for the language \code{<lang>}. + An error will be raised if no translation of \code{<key>} exists. + This command can only be used in the preamble. + \Befehl{DeclareTranslation}{<lang>}\ma{<key>}\ma{<translation>}\newline + Defines a translation of key \code{<key>} for the language \code{<lang>}. + No error will be raised if a translation of \code{<key>} already exists. + This command can only be used in the preamble. + \Befehl{DeclareTranslationFallback}{<key>}\ma{<fallback>}\newline + Defines a fallback translation for key \code{<key>} that is used in case no + translation of \code{<key>} for the currently active language has been + provided. No error will be raised if a fallback for \code{<key>} already + exists. This command can only be used in the preamble. + \expandable\Befehl{GetTranslationFor}{<lang>}\ma{<key>}\newline + Fetches and prints the translation of \code{<key>} for the language + \code{<lang>}. This command is expandable. + \expandable\Befehl{GetTranslation}{<key>}\newline + Fetches and prints the translation of \code{<key>} for the currently active + language (as for example set by \paket{babel}). This command is expandable. + \Befehl{GetTranslationForWarn}{<lang>}\ma{<key>}\newline + \sinceversion{1.0}Fetches and prints the translation of \code{<key>} for + the language \code{<lang>}. Issues a warning if no translation is + available. + \Befehl{GetTranslationWarn}{<key>}\newline + \sinceversion{1.0}Fetches and prints the translation of \code{<key>} for + the currently active language (as for example set by \paket{babel}). + Issues a warning if no translation is available. + \Befehl{SaveTranslationFor}{<cmd>}\ma{<lang>}\ma{<key>}\newline + Fetches and saves the translation of \code{<key>} for the language + \code{<lang>} in the macro \code{<cmd>}. + \Befehl{SaveTranslation}{<cmd>}\ma{<key>}\newline + Fetches and saves the translation of \code{<key>} for the currently active + language (as for example set by \paket{babel}) in the macro \code{<cmd>}. + \Befehl{LoadDictionary}{<name>}\newline + Loads a file named \code{<name>-<lang>.trsl} where \code{<lang>} corresponds + to the lowercase name of the current language as defined with + \cmd{DeclareLanguage}. This file should contain the translations for the + specified language. + \Befehl{LoadDictionaryFor}{<lang>}\ma{<name>}\newline + Loads a file named \code{<name>-<lang>.trsl}. + \Befehl{DeclareDictTranslation}{<key>}\ma{<translation>}\newline + This command is to be used in a dictionary file and picks up the language + of that file, see section~\ref{sec:dictionaries} for an example. + \Befehl{ProvideDictionaryFor}{<lang>}\ma{<name>}\oa{<date>}\newline + 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 \cmd{DeclareDictTranslation}. + \expandable\Befehl{PrintDictionaryFor}{<lang>}\ma{<name>}\ma{<pre>}\ma{<mid>}\ma{<post>}\newline + \sinceversion{1.0}Prints all entries of dictionary \code{<name>} in + language \code{<lang>} in the order the entries have been declared. For + every entry the code\par + \code{<pre><key><mid><translation><post>}\par + is printed. The dictionary must have been loaded of course. +\end{beschreibung} + +\subsection{A Small Example}\secidx[Example]{Usage} +This section demonstrates with two short examples how the macros are used. +The first example covers the basics: dlaring of translations and then +retrieving and typesetting them. + +\begin{beispiel} + % 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 +\end{beispiel} + +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{beispiel} + % in the preamble: + % \DeclareTranslation{English}{farbe}{color} + % \DeclareTranslation{British}{farbe}{colour} + + \GetTranslationFor{English}{farbe} \\ + \GetTranslationFor{British}{farbe} \\ + \GetTranslationFor{American}{farbe} +\end{beispiel} + +\subsection{Usage in Packages}\secidx[Packages]{Usage} +\subsubsection{Basic Structure}\secidx[Packages!structure]{Usage} +A typical usage in a package would look as follows: +\begin{beispiel}[code only] + \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} + ... + \def\mypackage@title{\GetTranslation{mypackage-title}} +\end{beispiel} + +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 +\cmd{DeclareTranslation}\ma{<language>}\ma{<translation>} if they find their +translation missing. + +\subsubsection{The `fallback' language}\secidx[Packages!fallback]{Usage} +If a user has neither loaded \paket{babel} nor \paket{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, i.e., the translation provided with +\cmd{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{beispiel}[code only] + \documentclass{article} + \DeclareTranslation{German}{foo-literal}{bar} + \begin{document} + \GetTranslation{foo-literal} => `foo-literal' + \end{document} +\end{beispiel} + +\begin{beispiel}[code only] + \documentclass{article} + \DeclareTranslationFallback{foo-literal}{foo} + \DeclareTranslation{German}{foo-literal}{bar} + \begin{document} + \GetTranslation{foo-literal} => `foo' + \end{document} +\end{beispiel} + +\begin{beispiel}[code only] + \documentclass{article} + \usepackage[ngerman]{babel} + \DeclareTranslation{German}{foo-literal}{bar} + \begin{document} + \GetTranslation{foo-literal} => `bar' + \end{document} +\end{beispiel} + +\subsection{Dictionaries}\label{sec:dictionaries} +\secidx{Dictionaries}\secidx[Dictionaries]{Usage} +\subsubsection{Own Dictionaries}\secidx[own]{Dictionaries} +A typical dictionary file should look as follows: +\begin{beispiel}[code only] + % 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} + ... + \endinput +\end{beispiel} + +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. + +\subsubsection{\translations' Basic Dictionaries}\secidx[basic]{Dictionaries} +\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 +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-<lang>.trsl} and modify the file +accordingly. You can then send me the file via email and I'll add it to +\translations. + +Table~\ref{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} + +\secidx*{Dictionaries} +\secidx*{Usage} + +\section{Defined Languages}\label{sec:languages}\secidx{Languages} +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. Table~\ref{tab:languages} lists +all base languages, ``fallback'' being a dummy language used for fallback +translations. + +\newcounter{column} +\gdef\seplang{% + \stepcounter{column}% + \ifnumless{\value{column}}{4} + {&} + {\\\setcounter{column}{0}}% +} +\def\do#1{#1\seplang} +\makeatletter +\begin{longtable}{llll} + \caption{Base languages defines by \translations.\label{tab:languages}} \\ + \toprule + \endhead + \bottomrule + \endlastfoot + \midrule + &&& \hfill\emph{continues} \\ + \endfoot + \dolistloop\@trnslt@languages +\end{longtable} +\makeatother + +To every one of these languages at least one alias exists, the uppercase +variant. This is due to the fact that it is common to write language names +uppercased. All defined aliases are listed in table~\ref{tab:aliases}. + +\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 language aliases defined by \translations.\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@aliases@pair +\end{longtable} +\makeatother + +\translations\ also defines a few dialects. They are listed in +table~\ref{tab:dialects}. + +\makeatletter +\begin{longtable}{ll@{\hspace*{4em}}ll} + \caption{All dialects defined by \translations.\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@dialects@pair +\end{longtable} +\makeatother + +\secidx*{Languages} + +These languages should cover all languages which are currently covered by +\paket{babel} and \paket{polyglossia}. + +\section{Implementation}\index{Implementation@\textbf{Implementation}} +In the following code the lines 1--30 have been omitted. They only repeat the +license statement which has already been mentioned in section~\ref{sec:license}. + +\implementation[linerange={31-1000},firstnumber=31] + +\indexprologue{\noindent Section titles are indicated \textbf{bold}, packages + \textsf{sans serif} and commands + \code{\textbackslash\textcolor{code}{brown}}.\par\bigskip} + +\printindex + +\end{document} |