نخست اینکه
\renewcommand{\citedash}{$-$}
اشتباه است و باید با
\renewcommand{\citedash}{--}
جایگزین شود. بین دو عدد ما علامت منها قرار نمیدهیم بلکه en-dash قرار میدهیم (فصل ۲ کتاب تک کنوث را ببینید).
در مورد پرسش اصلی باید بگم که دستور شرطی \if@nonlatin
تعیین میکنه که شما داخل محیط غیرلاتین هستید یا خیر. بنابراین کد زیر باید مشکل شما رو حل کنه.
\renewcommand*{\backrefalt}[4]{%
\ifcase #1 %
No citations.% use \relax if you do not want the "No citations" message
\or
(\citepagename #4).%
\else
(\citepagesname #4).%
\fi%
}
\makeatletter
\newcommand*{\citepagename}{%
\if@nonlatin
ارجاع داده شده در صفحه
\else
Cited on page
\fi
}
\newcommand*{\citepagesname}{%
\if@nonlatin
ارجاع داده شده در صفحههای
\else
Cited on pages
\fi
}
\makeatother
توجه کنید که دستورات \citepagename
و \citepagename
دستورات تازهای هستند که من تعریف کردم همچنین شما باید تعریف دستور \backrefalt
را مطابق تعریف من تغییر بدهید.