Biblatex, multi lingual references and backref
We can try and remember the language active at the beginning of the bibliography and restore that for printing the back references.
The command \biblang
is defined analogous to \mainlang
and can be used to typeset text in the language surrounding the bibliography.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french,american]{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=authoryear,
language=auto, autolang=other,
backref=true,
]{biblatex}
\usepackage{hyperref}
\makeatletter
\newcommand*{\blx@biblangname}{\bbl@main@language}
\AtBeginBibliography{%
\edef\blx@biblangname{\languagename}%
}
\newcommand*{\biblang}{%
\select@language{\blx@biblangname}}
\DeclareFieldFormat{parens:biblang}{%
\mkbibparens{\biblang{#1}}}
\renewbibmacro*{pageref}{%
\iflistundef{pageref}
{}
{\printtext[parens:biblang]{%
\ifnumgreater{\value{pageref}}{1}
{\bibstring{backrefpages}\ppspace}
{\bibstring{backrefpage}\ppspace}%
\printlist[pageref][-\value{listtotal}]{pageref}}}}
\makeatother
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{dupont-2018,
author = {Dupont, Jean and Dupond, Pierre},
title = {Ce livre: un livre en français},
year = 2018,
langid = {french},
}
@book{doe-2017,
author = {Doe, John and Doe, Jerry},
title = {This book: an american book},
year = 2017,
langid = {american}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\section{American/Américain section}
Some citations: \cite{dupont-2018,doe-2017}.
\printbibliography
\newpage
\begin{otherlanguage}{french}
\section{Section en Français}
Quelques citations: \cite{dupont-2018,doe-2017}.
\printbibliography
\end{otherlanguage}
\end{document}