从章节标题和书签的角度来看,translator
包中的翻译字符串的行为不同,取决于它们是直接在文件中定义.tex
还是在字典中定义:在后一种情况下,章节标题和书签都只显示翻译字符串的键而不是翻译。
案件好的,都在章节标题和书签中
在以下 MCE 中,翻译后的字符串直接定义在.tex
文件中用于章节标题通过\translatelet
宏:
\documentclass[english]{article}
\usepackage{translator}
\usepackage{babel}
\usepackage{hyperref}
%
\deftranslation[to=English]{key-from-document}{translation from document}
%
\translatelet\MacroFromDocument{key-from-document}
%
\begin{document}
\section{\MacroFromDocument}
Indirect (macro) use of \verb|\translate| (from document).
\end{document}
本案是
- 好的,在章节标题中,
- 好的,在书签中,
因为两处都出现了“翻译自文档”的翻译
案件好的在章节标题中,但是不行在书签中
在以下 MCE 中,翻译后的字符串直接定义在.tex
文件中用于章节标题直接与 \translate
:
\documentclass[english]{article}
\usepackage{translator}
\usepackage{babel}
\usepackage{hyperref}
%
\deftranslation[to=English]{key-from-document}{translation from document}
%
\begin{document}
\section{\translate{key-from-document}}
Direct use of \verb|\translate| (from document).
\end{document}
此案是:
- 在章节标题中可以:其中出现了“文档翻译”的翻译,
- 不是书签中的内容正常:翻译已被键“key-from-document”所取代。
案件不行在章节标题和书签中
在以下 MCE 中,翻译后的字符串字典中定义用于章节标题通过\translatelet
宏和直接与 \translate
:
\begin{filecontents}{mydictionary.dict}
\ProvidesDictionary{mydictionary}{English}
\deftranslation{key-from-dictionary}{translation from dictionary}
\end{filecontents}
%
\documentclass[english]{article}
\usepackage{translator}
\usepackage{babel}
\usepackage{hyperref}
%
\deftranslation[to=English]{key-from-document}{translation from document}
\translatelet\MacroFromDictionary{key-from-dictionary}
%
\begin{document}
\section{\MacroFromDictionary}
Indirect (macro) use of \verb|\translate| (from dictionary).
\section{\translate{key-from-dictionary}}
Direct use of \verb|\translate| (from dictionary).
\end{document}
此案是:
- 不是在章节标题中可以:翻译被键“key-from-document”替换,
- 不是书签中没问题:翻译被键“key-from-document”替换。
所有错误情况都与超链接警告有关:“PDF 字符串中不允许使用标记(PDFDocEncoding):[...] 在输入行中删除“\translate”[...]”但我不知道如何解决它。
答案1
以下似乎有效。我有
- 将词典重命名为
mydictionary-English
- 添加
\usedictionary {mydictionary}
到序言中
最后一个案例的代码:
编辑:抱歉,我只检查了章节标题,而不是书签;书签又是另一个问题。间接使用没问题,但直接使用(受保护的)\translate
宏就不合hyperref
我的心意了。
\documentclass[english]{article}
\usepackage{translator}
\usepackage{babel}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents*}{mydictionary-English.dict}
\ProvidesDictionary{mydictionary}{English}
\deftranslation{key-from-dictionary}{translation from dictionary}
\end{filecontents*}
\usedictionary {mydictionary}
\begin{document}
\translatelet\MacroFromDictionary{key-from-dictionary}
\section{\MacroFromDictionary}
Indirect (macro) use of \verb|\translate| (from dictionary).
\section{\translate{key-from-dictionary}}
Direct use of \verb|\translate| (from dictionary).
\end{document}