在我的某个模板中,我需要加载babel
文件.cls
,因为.cls
文件中的某些功能依赖于 babel。但是,我想为用户保留设置任何他想要的语言的灵活性。因此,我考虑建议在宏中全局设置语言选项\documentclass[<options>]{class}
。当只使用一种语言时,这种方法很有效,但可能需要定义一种主要语言和一种次要语言。Babel 有一个内置功能可以做到这一点,它是关键字main
。所以你可以说是\usepackackage[ngerman, main=english]{babel}
。因为我想全局设置选项,我尝试了\documentclass[ngerman, main=english]{babel}
,但似乎不起作用。Babel 会忽略main=english
并以德语打印所有本地化字符串。
\documentclass[ngerman, main=english]{article}
\usepackage{babel}
\begin{document}
\begin{abstract}
Test
\end{abstract}
\end{document}
概要
如果translations
包被加载,并且仅main=english
作为全局选项给出,则使用后备翻译,再次表明,main=english
如果全局提供该选项,babel 会忽略它。
\documentclass[main=english]{article}
\usepackage{babel}
\usepackage{translations}
\DeclareTranslationFallback{translate}{Fallback}
\DeclareTranslation{english}{translate}{English}
\DeclareTranslation{german}{translate}{German}
\begin{document}
\GetTranslation{translate}
\end{document}
倒退
为什么全局选项没有传递给 babel(或被后者忽略),以及我如何才能全局定义哪种语言应该成为文档的主要语言以及应该加载哪些其他语言?