summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/exsheets/translations.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/exsheets/translations.sty')
-rw-r--r--Master/texmf-dist/tex/latex/exsheets/translations.sty311
1 files changed, 311 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/exsheets/translations.sty b/Master/texmf-dist/tex/latex/exsheets/translations.sty
new file mode 100644
index 00000000000..208bc7295c1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/exsheets/translations.sty
@@ -0,0 +1,311 @@
+% --------------------------------------------------------------------------
+% the TRANSLATIONS package
+%
+% a simple translator
+%
+% This package is part of the exsheets bundle
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://bitbucket.org/cgnieder/exsheets/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2012 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
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+\def\@trnslt@date{2012/10/08}
+\def\@trnslt@version{v0.2b}
+
+\ProvidesPackage{translations}[\@trnslt@date\space \@trnslt@version\space a simple translator]
+\RequirePackage{etoolbox}
+
+% --------------------------------------------------------------------------
+% message handling
+\def\@trnslt@error@message{%
+ For details have a look at the `exsheets' manual.}
+
+\def\@trnslt@create@message#1{%
+ \ifstrequal{#1}{Error}
+ {%
+ \lowercase{\csdef{@trnslt@#1}}##1{%
+ \csuse{Package#1}{translations}{##1}{\@trnslt@error@message}}%
+ }{%
+ \lowercase{\csdef{@trnslt@#1}}##1{%
+ \csuse{Package#1}{translations}{##1}}%
+ }}
+\@trnslt@create@message{Error}
+\@trnslt@create@message{Warning}
+\@trnslt@create@message{WarningNoLine}
+\@trnslt@create@message{Info}
+
+\def\@trnslt@err@unknown@lang#1{%
+ \@trnslt@error{Unknown language `#1'}}
+
+\def\@trnslt@warn@unknown@lang#1{%
+ \@trnslt@warning{Unknown language `#1'}}
+
+\def\@trnslt@err@already@defined#1#2{%
+ \@trnslt@error{The #2 translation for `#1' is already defined.}}
+
+\def\@trnslt@err@not@defined#1#2{%
+ \@trnslt@error{The \@trnslt@language{#2} translation for `#1' is not defined yet.}}
+
+% --------------------------------------------------------------------------
+% check if babel or polyglossia is used
+\AtEndPreamble{
+ \@ifpackageloaded{babel}{}{
+ \@ifpackageloaded{polyglossia}{}
+ {\@trnslt@warning{No language package found. I am going to use `english'
+ as default language.}}
+ }
+ \ifdef\languagename{}
+ {\def\languagename{english}}
+ \def\@trnslt@current@language{\languagename}
+ \ifdef\bbl@afterfi{}
+ {\long\def\bbl@afterfi#1\fi{\fi#1}}
+}
+
+% --------------------------------------------------------------------------
+% \DeclareLanguage and \DeclareLanguageAlias
+% #1: language
+\newrobustcmd*\DeclareLanguage[1]{%
+ \@trnslt@declare@language{#1}}
+\@onlypreamble\DeclareLanguage
+
+\def\@trnslt@declare@language#1{%
+ \csdef{@trnslt@language@#1}{#1}}
+
+% #1: alias
+% #2: language
+\newrobustcmd*\DeclareLanguageAlias[2]{%
+ \@trnslt@declare@languagealias{#1}{#2}}
+\@onlypreamble\DeclareLanguageAlias
+
+\def\@trnslt@declare@languagealias#1#2{%
+ \ifcsdef{@trnslt@language@#2}
+ {}{%
+ \@trnslt@warn@unknown@lang{#2}%
+ \@trnslt@declare@language{#2}%
+ }%
+ \csletcs{@trnslt@language@#1}{@trnslt@language@#2}}
+
+\def\@trnslt@language#1{%
+ \csuse{@trnslt@language@#1}}
+
+% --------------------------------------------------------------------------
+% \DeclareTranslation, \NewTranslation and \RenewTranslation
+% #1: language
+% #2: word
+% #3: replacement
+\newrobustcmd*\DeclareTranslation[3]{%
+ \@trnslt@declare@translation{#2}{#1}{#3}}
+\@onlypreamble\DeclareTranslation
+
+\def\@trnslt@declare@translation#1#2#3{%
+ \ifcsdef{@trnslt@language@#2}
+ {%
+ \csdef{@trnslt@word@#1@\@trnslt@language{#2}}{#3}%
+ \csdef{@trnslt@word@#1@literal}{#1}%
+ }
+ {\@trnslt@err@unknown@lang{#2}}}
+
+\def\@trnslt@if@translation#1#2{%
+ \ifcsdef{@trnslt@word@#1@\@trnslt@language{#2}}
+ {\expandafter\@firstoftwo}
+ {\expandafter\@secondoftwo}}
+
+\newrobustcmd*\NewTranslation[3]{%
+ \@trnslt@new@translation{#2}{#1}{#3}}
+\@onlypreamble\NewTranslation
+
+\def\@trnslt@new@translation#1#2#3{%
+ \@trnslt@if@translation{#1}{#2}
+ {\@trnslt@err@already@defined{#1}{#2}}
+ {\@trnslt@declare@translation{#1}{#2}{#3}}}
+
+\newrobustcmd*\RenewTranslation[3]{%
+ \@trnslt@renew@translation{#2}{#1}{#3}}
+\@onlypreamble\RenewTranslation
+
+\def\@trnslt@renew@translation#1#2#3{%
+ \@trnslt@if@translation{#1}{#2}
+ {\@trnslt@declare@translation{#1}{#2}{#3}}
+ {\@trnslt@err@not@defined{#1}{#2}}}
+
+% --------------------------------------------------------------------------
+% \GetTranslationFor and \GetTranslation
+% these need to be expandable!
+% #1: language
+% #2: word
+\newcommand*\GetTranslationFor[2]{%
+ \@trnslt@get@translation@for{#2}{#1}}
+
+\newcommand*\GetTranslation[1]{%
+ \@trnslt@get@translation@for{#1}{\@trnslt@current@language}}
+
+% #1: word #2: language
+\def\@trnslt@get@translation@for#1#2{%
+ \@trnslt@if@translation{#1}{#2}
+ {\csuse{@trnslt@word@#1@\@trnslt@language{#2}}}
+ {%
+ \@trnslt@warning{Translation for `#1' in #2 unknown.}%
+ \csuse{@trnslt@word@#1@literal}%
+ }}
+
+% --------------------------------------------------------------------------
+% \SaveTranslationFor and \SaveTranslation
+\newrobustcmd*\SaveTranslationFor[3]{%
+ \@trnslt@save@translation@for{#1}{#3}{#2}}
+
+\newrobustcmd*\SaveTranslation[2]{%
+ \@trnslt@save@translation@for{#1}{#2}{\@trnslt@current@language}}
+
+\def\@trnslt@save@translation@for#1#2#3{%
+ \edef#1{%
+ \@trnslt@if@translation{#2}{#3}
+ {\csuse{@trnslt@word@#2@\@trnslt@language{#3}}}
+ {}%
+ }}
+
+% --------------------------------------------------------------------------
+% \LoadDictionary and \LoadDictionaryFor
+\newrobustcmd*\LoadDictionary[1]{%
+ \@trnslt@load@dictionary@for{#1}{\@trnslt@current@language}}
+\@onlypreamble\LoadDictionary
+
+\newrobustcmd*\LoadDictionaryFor[2]{%
+ \@trnslt@load@dictionary@for{#1}{#2}}
+\@onlypreamble\LoadDictionaryFor
+
+\def\@trnslt@load@dictionary@for#1#2{%
+ \AtBeginDocument{%
+ \InputIfFileExists{#1-\@trnslt@language{#2}.trsl}
+ {\@trnslt@info{loading dictionary `#1' for `#2'.}}
+ {\@trnslt@warning{File `#1-\@trnslt@language{#2}.trsl' not found.}}%
+ }}
+
+\newrobustcmd*\ProvideDictionaryFor[2]{%
+ \@trnslt@provide@dictionary@for{#1}{#2}}
+\@onlypreamble\ProvideDictionaryFor
+
+\def\@trnslt@provide@dictionary@for#1#2{%
+ \def\@trnslt@dictionary@name{#2}%
+ \def\@trnslt@dictionary@lang{#1}%
+ \@ifnextchar[
+ {\@trnslt@provide@dictionary@version}
+ {\ProvidesFile{#2-#1.trsl}[(#1 translation file `#2')]}}
+
+\def\@trnslt@provide@dictionary@version[#1]{%
+ \ProvidesFile
+ {\@trnslt@dictionary@name-\@trnslt@dictionary@lang.trsl}%
+ [(\@trnslt@dictionary@lang\space translation file `\@trnslt@dictionary@name') #1]}
+
+% --------------------------------------------------------------------------
+% predefined languages
+\DeclareLanguage{albanian}
+\DeclareLanguage{bulgarian}
+\DeclareLanguage{catalan}
+\DeclareLanguage{croatian}
+\DeclareLanguage{czech}
+\DeclareLanguage{danish}
+\DeclareLanguage{dutch}
+\DeclareLanguage{english}
+\DeclareLanguage{finnish}
+\DeclareLanguage{french}
+\DeclareLanguage{german}
+\DeclareLanguage{greek}
+\DeclareLanguage{hebrew}
+\DeclareLanguage{hungarian}
+\DeclareLanguage{icelandic}
+\DeclareLanguage{italian}
+\DeclareLanguage{norwegian}
+\DeclareLanguage{polish}
+\DeclareLanguage{portuges}
+\DeclareLanguage{romanian}
+\DeclareLanguage{russian}
+\DeclareLanguage{serbocroatian}
+\DeclareLanguage{slovak}
+\DeclareLanguage{slovenian}
+\DeclareLanguage{spanish}
+\DeclareLanguage{swedish}
+\DeclareLanguage{turkish}
+\DeclareLanguage{ukrainian}
+
+\DeclareLanguageAlias{Albanian}{albanian}
+\DeclareLanguageAlias{Bulgarian}{bulgarian}
+\DeclareLanguageAlias{Catalan}{catalan}
+\DeclareLanguageAlias{Croatian}{croatian}
+\DeclareLanguageAlias{Czech}{czech}
+\DeclareLanguageAlias{Danish}{danish}
+\DeclareLanguageAlias{Dutch}{dutch}
+\DeclareLanguageAlias{Finnish}{finnish}
+\DeclareLanguageAlias{francais}{french}
+\DeclareLanguageAlias{Francais}{francais}
+\DeclareLanguageAlias{canadien}{french}
+\DeclareLanguageAlias{Canadien}{canadien}
+\DeclareLanguageAlias{French}{french}
+\DeclareLanguageAlias{american}{english}
+\DeclareLanguageAlias{American}{american}
+\DeclareLanguageAlias{australian}{english}
+\DeclareLanguageAlias{Australian}{australian}
+\DeclareLanguageAlias{british}{english}
+\DeclareLanguageAlias{British}{british}
+\DeclareLanguageAlias{canadian}{english}
+\DeclareLanguageAlias{Canadian}{canadian}
+\DeclareLanguageAlias{English}{english}
+\DeclareLanguageAlias{UKenglish}{english}
+\DeclareLanguageAlias{USenglish}{english}
+\DeclareLanguageAlias{austrian}{german}
+\DeclareLanguageAlias{Austrian}{austrian}
+\DeclareLanguageAlias{German}{german}
+\DeclareLanguageAlias{germanb}{german}
+\DeclareLanguageAlias{naustrian}{austrian}
+\DeclareLanguageAlias{ngerman}{german}
+\DeclareLanguageAlias{Greek}{greek}
+\DeclareLanguageAlias{polutonikogreek}{greek}
+\DeclareLanguageAlias{Hebrew}{hebrew}
+\DeclareLanguageAlias{Hungarian}{hungarian}
+\DeclareLanguageAlias{magyar}{hungarian}
+\DeclareLanguageAlias{Magyar}{magyar}
+\DeclareLanguageAlias{Icelandic}{icelandic}
+\DeclareLanguageAlias{Italian}{italian}
+\DeclareLanguageAlias{norsk}{norwegian}
+\DeclareLanguageAlias{Norsk}{norsk}
+\DeclareLanguageAlias{Norwegian}{norwegian}
+\DeclareLanguageAlias{nynorsk}{norwegian}
+\DeclareLanguageAlias{Nynorsk}{nynorsk}
+\DeclareLanguageAlias{Polish}{polish}
+\DeclareLanguageAlias{brazil}{portuges}
+\DeclareLanguageAlias{Brazil}{brazil}
+\DeclareLanguageAlias{brazilian}{portuges}
+\DeclareLanguageAlias{Brazilian}{brazilian}
+\DeclareLanguageAlias{Portuges}{portuges}
+\DeclareLanguageAlias{portuguese}{portuges}
+\DeclareLanguageAlias{Portuguese}{portuguese}
+\DeclareLanguageAlias{Romanian}{romanian}
+\DeclareLanguageAlias{Russian}{russian}
+\DeclareLanguageAlias{Serbocroatian}{serbocroatian}
+\DeclareLanguageAlias{Slovak}{slovak}
+\DeclareLanguageAlias{Slovenian}{slovenian}
+\DeclareLanguageAlias{Spanish}{spanish}
+\DeclareLanguageAlias{Swedish}{swedish}
+\DeclareLanguageAlias{Turkish}{turkish}
+\DeclareLanguageAlias{Ukrainian}{ukrainian}
+
+\endinput \ No newline at end of file