조건부 텍스트 번역을 최적화하는 방법은 무엇입니까?

조건부 텍스트 번역을 최적화하는 방법은 무엇입니까?

나는 프랑스어로 쓰여진 단편소설을 작업 중이고 영어로 된 짧은 대화도 많이 포함되어 있습니다. 한 친구는 각주를 통해 영어 내용을 프랑스어로 번역하는 것이 잠재적인 독자들에 대한 예의일 수 있다고 제안했습니다. 그러나 MWE에 표시된 대로 전역 매개변수를 변경하여 두 버전을 쉽게 제공하고 싶습니다.그리고각주 없이. 취한 접근 방식이 최적인지 궁금합니다. 더욱이 나는 완전히 프랑스어로 된 세 번째 버전을 만들려고 노력 중입니다. 즉, 영어 텍스트를 각주 내용으로 바꾸고 글꼴도 \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}

관련 정보