Source

beamer / base / translator / translator.sty

Full commit
Vedran Miletić d02a7cf 

















Vedran Miletić 14743c4 
Vedran Miletić d02a7cf 
















Joseph Wright 22f1e50 



Vedran Miletić d02a7cf 












Joseph Wright 22f1e50 
Vedran Miletić d02a7cf 










Joseph Wright 22f1e50 
Vedran Miletić d02a7cf 










Joseph Wright 019ce03 





Vedran Miletić d02a7cf 



Joseph Wright 019ce03 
Vedran Miletić d02a7cf 












Joseph Wright 019ce03 
Vedran Miletić d02a7cf 





Joseph Wright 019ce03 
Vedran Miletić d02a7cf 

Vedran Miletić 14743c4 
Vedran Miletić d02a7cf 


















































% Copyright 2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the documentation file for more details.

\def\translatorversion{1.10}

\ProvidesPackage{translator}[2010/06/12 ver \translatorversion]

\RequirePackage{keyval}

\def\trans@languages{English}

\newcommand\uselanguage[2][]{%
  \g@addto@macro\trans@languages{,#2}%
}

\newcommand\languagealias[2]{%
  \expandafter\def\csname tr@ml@#1\endcsname{#2}%
}

\input{translator-language-mappings}

\newcommand\languagepath[1]{\def\trans@languagepath{#1}}
\def\trans@languagepath{\languagename,English}

\define@key{translator}{to}{\def\trans@to{#1}}

\newcommand\iftranslationdefined[4][]{%
  \def\trans@to{\trans@defaultto}%
  \setkeys{translator}{#1}%
  \begingroup\expandafter\expandafter\expandafter\endgroup
  \expandafter\ifx\csname tr@@@\trans@to @#2\endcsname\relax%
    \let\trans@next=\@secondoftwo%
  \else%
    \let\trans@next=\@firstoftwo%
  \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}%
  }%
}

\begingroup
\lccode`\A=`\- %
\lowercase{%
  \endgroup
  \def\trans@marker{-A}%
}

\newcommand\translatelet[3][]{%
  \edef\trans@to{\trans@languagepath}%
  \setkeys{translator}{#1}%
  \let\trans@trans\trans@marker%
  \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 @#3\endcsname\relax%
    \else%
      \ifx\trans@trans\trans@marker%
        \expandafter\expandafter\expandafter\def
        \expandafter\expandafter\expandafter\trans@trans
        \expandafter\expandafter\expandafter{\csname tr@@@\trans@lang @#3\endcsname}%
      \fi%
    \fi%
  }%
  \ifx\trans@trans\trans@marker%
    \def\trans@trans{#3}%
  \fi%
  \let#2=\trans@trans%
}



\DeclareRobustCommand\translate[2][]{%
  \translatelet[#1]\trans@temp{#2}%
  \trans@temp%
}



\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