根据巴别语言翻译单词

根据巴别语言翻译单词

我有一个要用法语或英语的模板,babel 中是否有一个名称来定义“第 x 页,共 yy 页”的“of”,然后我想将其自动翻译为“第 x 页,共 y 页”

如果没有,有没有办法根据在 babel 中选择的语言设置名称。

答案1

我想到两个包:(translator来自beamer捆绑)和translations我将为两者分别展示一个例子,输出如下:

第一页: 在此处输入图片描述 第二页: 在此处输入图片描述


以下是translations版本:

\documentclass{article}
\usepackage[ngerman,french,english]{babel}
\usepackage[lastpage,user]{zref}

\usepackage{translations}
% used when a language is used for which no translation exists:
\DeclareTranslationFallback{page-of-pages}
  {page~\thepage\ of~\zpageref{LastPage}}

% translations:
\DeclareTranslation{German}{page-of-pages}
  {Seite~\thepage\ von~\zpageref{LastPage}}
\DeclareTranslation{French}{page-of-pages}
  {page~\thepage\ sur~\zpageref{LastPage}}
\DeclareTranslation{English}{page-of-pages}
  {page~\thepage\ of~\zpageref{LastPage}}


\begin{document}
\selectlanguage{ngerman}
\GetTranslation{page-of-pages}

\selectlanguage{french}
\GetTranslation{page-of-pages}

\selectlanguage{english}
\GetTranslation{page-of-pages}

\newpage
\selectlanguage{ngerman}
\GetTranslation{page-of-pages}

\selectlanguage{french}
\GetTranslation{page-of-pages}

\selectlanguage{english}
\GetTranslation{page-of-pages}

\end{document}

这是与 类似的版本translator。请注意,它需要通过提供选项来了解语言,这里通过将它们声明为类选项来完成:

\documentclass[ngerman,french,english]{article}
\usepackage{babel}
\usepackage[lastpage,user]{zref}

\usepackage{translator}
\newtranslation[to=German]{page-of-pages}
  {Seite~\thepage\ von~\zpageref{LastPage}}
\newtranslation[to=French]{page-of-pages}
  {page~\thepage\ sur~\zpageref{LastPage}}
\newtranslation[to=English]{page-of-pages}
  {page~\thepage\ of~\zpageref{LastPage}}


\begin{document}
\selectlanguage{ngerman}
\translate{page-of-pages}

\selectlanguage{french}
\translate{page-of-pages}

\selectlanguage{english}
\translate{page-of-pages}

\newpage
\selectlanguage{ngerman}
\translate{page-of-pages}

\selectlanguage{french}
\translate{page-of-pages}

\selectlanguage{english}
\translate{page-of-pages}

\end{document}

答案2

对于有限的范围,可以手动完成:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,french]{babel}
\usepackage{lastpage}

\makeatletter
\newcommand{\pageofpages}{%
  \@ifundefined{pageof@\languagename}
    {page \thepage\ of \pageref{LastPage}} % a default
    {\@nameuse{pageof@\languagename}}%
 }
% English is already default
% \newcommand{\pageof@english}{page \thepage\ of \pageref{LastPage}}
% French
\newcommand{\pageof@french}{page \thepage\ sur \pageref{LastPage}}
\makeatother

\begin{document}

\pageofpages\newpage

\selectlanguage{english}
\pageofpages\newpage

\pageofpages

\selectlanguage{french}\pageofpages

\end{document}

相关内容