条件付きテキスト翻訳を最適化する方法は?

条件付きテキスト翻訳を最適化する方法は?

私はフランス語で書かれた短編小説を執筆中です。この小説には英語の短い会話がいくつか含まれています。友人から、脚注で英語の内容をフランス語に翻訳することが、読者への礼儀になるかもしれないと提案されました。しかし、MWEに示されているようにグローバルパラメータを変更することで、両方のバージョンを簡単に提供したいと考えています。そして脚注なし。採用したアプローチが最適かどうか疑問に思います。さらに、完全にフランス語の 3 番目のバージョンを作成しようとしています。つまり、英語のテキストを脚注の内容に置き換え、フォントを\emph通常のフォントに変更します。フォントは、英語のテキストとフランス語のコア ドキュメントを区別するために使用します\emph

これを行う実用的な方法はありますか、それともやりすぎでしょうか?

\documentclass[a5paper]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{ifthen}
\usepackage[english, french]{babel}

\def\lang {e} %variable used for conditional translated footnotes

\begin{document}
\selectlanguage{english}

\begin{enumerate}

\item \emph{--- The manager needs to see you before you leave}
\ifthenelse{\equal{\lang}{}} {}{\footnote{\selectlanguage{french}   Monsieur, le patron veut vous voir avant votre départ !}}!

\selectlanguage{french}
Je tournai la tête et levai les yeux vers le visage de la serveuse. 

\item \emph{--- The manager needs to see you before you leave}
\ifthenelse{\equal{\lang}{e}} {}{\footnote{\selectlanguage{french}Monsieur, le patron veut vous voir avant votre départ !}}!
\selectlanguage{french}
Je tournai la tête et levai les yeux vers le visage de la serveuse. 
\end{enumerate}
\end{document} 

答え1

最後の質問に簡単に答えると、やりすぎではありませんが、快適ではなく、そのため少し非実用的です。次の例 (あなたの試みも含まれています) では、要求に応じてアプローチを最適化するマクロを定義しました。\englphraseこれは のように機能します\englphrase[french translation]{english text}。オプションの引数で指定した場合にのみ、フランス語の翻訳を含む脚注が追加されます。

\documentclass[a5paper]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{ifthen}
\usepackage[english, french]{babel}

\def\lang{e} %variable used for conditional translated footnotes

\let\markforphrase\emph
\newcommand{\englphrase}[2][]{%
\selectlanguage{english}
\markforphrase{#2}%
\if\relax\detokenize{#1}\relax\else\footnote{\selectlanguage{french} #1}\fi
\selectlanguage{french}
}

\begin{document}
\selectlanguage{english}

\begin{enumerate}

\item \emph{--- The manager needs to see you before your leave!}
\ifthenelse{\equal{\lang}{}} {}{\footnote{\selectlanguage{french}   Monsieur, le patron veut vous voir avant votre départ !}}

\selectlanguage{french}
Je tournai la tête et levai les yeux vers le visage de la serveuse.

\item \emph{--- The manager needs to see you before your leave!}
\ifthenelse{\equal{\lang}{e}} {}{\footnote{\selectlanguage{french}Monsieur, le patron veut vous voir avant votre départ !}}
\selectlanguage{french}
Je tournai la tête et levai les yeux vers le visage de la serveuse.
\end{enumerate}

%A demonstration of the optimized approach
\medskip\hrule\medskip
\parindent=0in

---\englphrase[Monsieur, le patron veut vous voir avant votre départ!]{The manager needs to see you before your leave!}

Je tournai la tête et levai les yeux vers le visage de la serveuse.

---\englphrase{The manager needs to see you before your leave!}

Je tournai la tête et levai les yeux vers le visage de la serveuse.
\end{document}

編集:\transltnoff重要な点を見逃していました。本の英語版とフランス語版の両方を簡単に提供するために、翻訳をグローバルにオフにするようなものも必要です。以下を試してください。

\newif\iftransltn
\transltntrue
\let\transltnoff=\transltnfalse %this is just to make the macro sound intuitive
\let\markforphrase=\emph
\newcommand{\englphrase}[2][]{%
\foreignlanguage{english}{\markforphrase{#2}}% thanks egreg :-)
\iftransltn%
  \if\relax\detokenize{#1}\relax\else
    \footnote{#1}
  \fi%
\fi%
}

%\transltnoff

答え2

最終的に、次の解決策を思いつきました。

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

\def\lang {ef} %variable used for conditional text e=english, f=french, ef=english with translated footnotes

\newcommand{\CondText}[2]{%
\ifthenelse{\equal{\lang}{e}} {{\selectlanguage{english}\emph{#1}}} {}
\ifthenelse{\equal{\lang}{ef}} {{\selectlanguage{english}\emph{#1}}
\footnote{\selectlanguage{french} #2}} {}
\ifthenelse{\equal{\lang}{f}} {{\selectlanguage{french} #2}}{}
}%

\begin{document}
\CondText {--- Sir, the manager needs to see you before you go !} {--- Monsieur, le patron veut vous voir avant votre départ !}
\end{document}

関連情報