# How to change the tablename and reflect also when using cleveref?

I have the following example document where I'm using polyglossia and cleveref. The default name for table in spanish is cuadro. How can I change it into tabla and propagate this change to cleveref?

Here is what I tried:

\documentclass[10pt,a4paper]{article}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
\gappto\captionsspanish{\renewcommand{\tablename}{Tabla}}
\usepackage{cleveref}
%\crefname{table}{tabla}{tablas}
%\Crefname{table}{Tabla}{Tablas}
\begin{document}
Teste \Cref{tbl01}.
\begin{table}[h]
\caption{Teste.}
\label{tbl01}
\begin{tabular}{lll}
a & b & c \\
d & e & f \\
g & h & i
\end{tabular}
\end{table}
\end{document}


I've also tried with the commented lines. In both cases, the result was:

• As pointed out in the comments here, you have to load cleveref before polyglossia. But then you miss all the translations…
– NBur
Feb 5 '21 at 15:14
• Maybe you should use babel instead of polyglossia.
– NBur
Feb 5 '21 at 15:16
• @NBur changing the order makes it even worse... instead of Cuadro you'll get Table. The cleveref documentation also exemplifies loading babel before cleveref.
– LEo
Feb 5 '21 at 16:24

It seems there are some incompatibilities between polyglossia and cleveref (see this question and the comments).

You can solve your problem with babel:

\documentclass[10pt,a4paper, spanish]{article}
\usepackage{babel}
\usepackage{cleveref}
\crefname{table}{tabla}{tablas}
\Crefname{table}{Tabla}{Tablas}
\begin{document}
Teste \Cref{tbl01}.
\begin{table}[h]
\caption{Teste.}
\label{tbl01}
\begin{tabular}{lll}
a & b & c \\
d & e & f \\
g & h & i
\end{tabular}
\end{table}
\end{document}


Note that the language is specified as an option of the document class.

• Instead of redefining the tablename for spanish, I just found a very simple solution here! But you do need to use crefname.
– NBur
Feb 5 '21 at 17:02
• I switched from babel to polyglossia... so I was looking for a solution still using polyglossia.
– LEo
Feb 5 '21 at 19:35