\documentclass{article}
\usepackage{xepersian}


\settextfont[Scale=1.3]{XB Niloofar} 
\setlatintextfont[Scale=1.1]{Linux Libertine}


\defpersianfont\fontFa[Scale=.8]{XM Traffic}
\deflatinfont\fontEn[Scale=.9]{Adobe Arabic}
\begin{document}
\baselineskip = .85cm

اگر من متن فارسی و \lr{English}  بنویسم بر طبق دستوراتی که در بالا تعریف شده، الان شما متن فارسی را با فونت {\lr{XB Niloofar}}  و متن انگلیسی را با فونت {\lr{Linux Libertine}} خواهید دید. 

{\fontFa
اکنون شما این متن را با فونت {\lr{XM Traffic}} خواهید دید. ولی متن انگلیسی را با همان فونت {\lr{Linux Libertine}}. 
}


الان شما متن فارسی را با همان فونت {\lr{{\fontEn{XB Niloofar}}} می بینید، در حالی که متن انگلیسی فونت {\lr{{\fontEn{Adobe Arabic}}} است.

اما چیزی که من می خواهم این است:

{\fontFa
اکنون شما این متن را با فونت {\lr{\fontEn{XM Traffic}}} خواهید دید. ولی متن انگلیسی را با  فونت {\lr{\fontEn{Adobe Arabic}}}. 
}

ولی این طوری مجبورم به ازای هر دستور {\lr{lr}} فونتش را نیز تعریف کنم. نمی شود کاری که در این قسمت به طور خودکار کلمات انگلیسی را خودش فونت دلخواه من بکند. 

یعنی این که که من می خواهم فونت انگلیسی و فارسی کل متن من همان فونت ها {\lr{XB Niloofar}} و {\lr{Linux Libertine}} باشد. اما در برخی جاهای متن مثلا در جداول و یا برخی مواقع، می خواهم یک محیط تعریف کنم که فقط آن قسمت متن فونت فارسیش بشود {\lr{XM Traffic}} و فونت انگلیسیش بشود، {\lr{Adobe Arabic}}. 


\end{document}