Is it possible to keep my translation together with original text?

Define two macros, and swap their definitions as needed

\newcommand{\inRussian}[1]{#1}

\newcommand{\inEnglish}[1]{}

or define one macro

\newcommand{\EngOrRus}[2]{#1}

and change #1 to #2 when you want to switch language.


I'd usually convert the LaTeX file to a PO file (using po2a) and use a dedicated translation tool like Virtaal, Russian LaTeX file can then be generated from the translated PO file. Later when the English is changed the translation can easily synced using standard PO merging tools. Well, it sounds too complicated but it is fairly scalable, besides I do things like that nearly daily, so that is my natural choice.


You can use the comment package for this and define environments for each language. This supports longer text parts and might be more efficient as a macro.

\documentclass{article}
% (still needs font and input encoding for Russian text)
\usepackage{comment}
% change that the other way around to activate Russian language:
\includecomment{English}
\excludecomment{Russian} 


\begin{document}
\begin{English}
The technology described in the article is very complex.
\end{English}
\begin{Russian}
Технология, описанная в статье, очень сложна.
\end{Russian}
\end{document}

Note that this seems not to work inside the documentation text of a DTX file, most likely because of the changed catcode of %. But this isn't relevant for normal documents like yours.