\def\translatorversion{0.10} \ProvidesPackage{translator}[2005/03/25 ver \translatorversion] % Copyright 2003 by Till Tantau . % % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License Distributed from CTAN % archives in directory macros/latex/base/lppl.txt. \RequirePackage{keyval} \def\trans@languages{English} \define@key{translator}{babel name}{\def\trans@alias{#1}} \newcommand\uselanguage[2][]{% \g@addto@macro\trans@languages{,#2}% \let\trans@alias\@empty% \setkeys{translator}{#1}% \ifx\trans@alias\@empty% \else% \expandafter\def\csname tr@ml@\trans@alias\endcsname{#2}% \fi% } \input{utiles/translator-language-mappings} \define@key{translator}{to}{\def\trans@to{#1}} \newcommand\iftranslationdefined[4][]{% \def\trans@to{\trans@defaultto}% \setkeys{translator}{#1}% \expandafter\ifx\csname tr@@@\trans@to @#2\endcsname\@undefined% \let\trans@next=\@firstoftwo% \else% \let\trans@next=\@secondoftwo% \fi% \trans@next{#3}{#4}% } \newcommand\deftranslation[3][]{% \def\trans@to{\trans@defaultto}% \setkeys{translator}{#1}% \expandafter\def\csname tr@@@\trans@to @#2\endcsname{#3}% } \newcommand\newtranslation[3][]{% \iftranslationdefined[#1]{#2}{% \PackageError{translator}{Translation of ``#2'' already defined.}{}% }% {% \deftranslation[#1]{#2}{#3}% }% } \newcommand\renewtranslation[3][]{% \iftranslationdefined[#1]{#2}{% \deftranslation[#1]{#2}{#3}% }% {% \PackageError{translator}{Translation of ``#2'' not defined.}{}% }% } \newcommand\providetranslation[3][]{% \iftranslationdefined[#1]{#2}{% }% {% \deftranslation[#1]{#2}{#3}% }% } \DeclareRobustCommand\translate[2][]{% \edef\trans@to{\languagename,English}% \setkeys{translator}{#1}% \let\trans@trans\@empty% \let\trans@list\@empty% \@for\trans@lang:=\trans@to\do% {% \expandafter\ifx\csname tr@ml@\trans@lang\endcsname\relax% \else% \expandafter\let\expandafter\trans@lang\expandafter=\csname tr@ml@\trans@lang\endcsname% \fi% \edef\trans@list{\trans@list,\trans@lang}% }% \@for\trans@lang:=\trans@list\do% {% \expandafter\ifx\csname tr@@@\trans@lang @#2\endcsname\relax% \else% \ifx\trans@trans\@empty% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter\trans@trans \expandafter\expandafter\expandafter{\csname tr@@@\trans@lang @#2\endcsname} \fi% \fi% }% \ifx\trans@trans\@empty% \def\trans@trans{#2}% \fi% \trans@trans% } \def\trans@dictionaries{} \newcommand\usedictionary[1]{% \g@addto@macro\trans@dictionaries{\usedictionary{#1}}% } \def\trans@defaultto{English} \AtBeginDocument{% \renewcommand\usedictionary[1]{% \@for\trans@lang:=\trans@languages\do{% \ifx\trans@lang\@empty% \else% \expandafter\ifx\csname ver@#1-\trans@lang.dict\endcsname\relax% \edef\trans@temp{% \def\noexpand\trans@defaultto{\trans@lang}% \noexpand\InputIfFileExists{#1-\trans@lang.dict}{}{}% \def\noexpand\trans@defaultto{\trans@defaultto}% }% \trans@temp% \fi% \fi% }}% \trans@dictionaries% } \def\ProvidesDictionary#1#2{% \begingroup \catcode`\ 10 % \@makeother\/% \@ifnextchar[%] {\@providesdictionary{#1}{#2}}{\@providesdictionary{#1}{#2}[]}% } \def\@providesdictionary#1#2[#3]{% \wlog{Dictionary: #1, Language: #2 #3}% \expandafter\xdef\csname ver@#1-#2.dict\endcsname{#3}% \endgroup% } \endinput