Beamer newtheorem translation
As it has been already explained, Beamer
uses translator
(its particular babel
system). If the dictionary
exists, you can active the system introducing the language name in beamer
options: \documentclass[spanish]{beamer}
. This way spanish
is applied to beamer-translator
system and babel
. If spanish
is passed only as babel
option, you need to apply it for beamer
with \uselanguage{spanish}\languagepath{spanish}
.
So with an example like:
\documentclass[spanish]{beamer}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\newtheorem{proposition}[theorem]{Proposition}
\begin{document}
\begin{frame}
\begin{proposition}
Foo
\end{proposition}
\begin{theorem}
Foo2
\end{theorem}
\end{frame}
\end{document}
you'll get
As you can see, theorem
is translated but proposition
is not. Why? Because theorem, corollary, fact, lemma, problem, solution, definition and example environments are already provided by beamer
but not proposition
. And how are all these environments declared? Take a look at beamerbasetheorems.sty
\newtheorem{corollary}[theorem]{\translate{Corollary}}
\newtheorem{fact}[theorem]{\translate{Fact}}
\newtheorem{lemma}[theorem]{\translate{Lemma}}
\newtheorem{problem}[theorem]{\translate{Problem}}
\newtheorem{solution}[theorem]{\translate{Solution}}
All of them make explicit use of translate
command as cfr suggested in his answer. You can do the same:
\newtheorem{proposition}[theorem]{\translate{Proposition}}
There's no need for \deftranslation
because proposition
is already defined in translator
dictionarys.
The following likely won't work in the real world so you'll have to try it and see. However, it does at least produce the right result for the MWE.
\documentclass{beamer}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\uselanguage{Spanish}
\languagepath{Spanish}
\newtheorem{proposition}[theorem]{\translate{Proposition}}
\begin{document}
\begin{frame}
\begin{proposition}
Foo
\end{proposition}
\end{frame}
\end{document}