Wie bereits in den Kommentaren angerissen sind `biblatex`s Lokalisierungsfähigkeiten zwar sehr weitgehend, erlauben aber *out of the box* nicht in allen Fällen die chirurgische Präzision, die man sich vielleicht wünschen würde.
So ist es mit dem `langid`-Feld zwar möglich, die Sprache eines Eintrages umzuschalten, man schaltet dann aber den *gesamten* Eintrag um. Mit `autolang=other` würden dann beispielsweise alle Strings wie "und" in der Autorenliste oder "S." in der Seitenzahl in der `langid`-Sprache ausgegeben. Es mag Menschen geben, denen das gefällt; ich finde, es macht ein Literaturverzeichnis sehr unruhig, wenn zwischendrin "and", "en" oder "et" statt "und" steht. Ich würde noch akzeptieren, dass es sinnvoll ist, bestimmte Informationen wie die Auflage in der Originalsprache zu setzen, aber den ganzen Eintrag würde ich nicht in der Originalsprache setzen. Prinzipiell gilt ein ähnliches Problem, wenn man nur `autolang=hyphen` nutzt. Man kann dann entscheiden, ob die Teile des Eintrages in der Originalsprache oder die in der Dokumentensprache korrekt getrennt werden. Beides ist so einfach nicht möglich. Siehe z.B. auch <https://github.com/plk/biblatex/issues/757>
Ich würde versuchen, das gesamte Literaturverzeichnis grundsätzlich in der Dokumentensprache zu setzen und dann für die relevanten Felder auf die in `langid` angegebene Sprache zu wechseln, um die Silbentrennung korrekt vollziehen zu können.
Bei TeX.SX habe ich in <https://tex.stackexchange.com/q/444016/35864> eine Lösung vorgestellt, die zeigt wie man es hinbekommt, dass alle Felder in `langid`-Sprache ausgegeben werden, während der Rest in der Dokumentensprache bleibt. Ich bin mir fast sicher, dass es da an einigen Ecken und Enden noch Bedarf gibt, die Methode etwas zu verfeinern, aber als *proof of concept* taugt sie vielleicht schon.
Alternativ stelle ich hier eine Idee vor, bei der die `langid` für jedes Feld einzeln in der `.bib`-Datei angegeben werden muss. Gezeigt und implementiert ist das hier nur für `title` bei `@book`-Einträgen (und für andere Typen, die das generische `title`-Format nutzen), aber es lässt sich auf beliebige andere Felder anwenden. Die genutzten *named annotations* sind ein neues Feature von `biblatex` 3.12/Biber 2.12.
\documentclass[french,british,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=alphabetic, sortcites=true, maxbibnames=99, useprefix=true, dateabbrev=true]{biblatex}
% idea by Martin Scharrer
% https://tex.stackexchange.com/users/2975/martin-scharrer
% https://tex.stackexchange.com/a/15014/35864
\newenvironment{eotherlanguage}[1]{%
\begingroup
\edef\tmpa{\endgroup\noexpand\otherlanguage{#1}}%
\tmpa
}{\endotherlanguage}
\newenvironment{ehyphenrules}[1]{%
\begingroup
\edef\tmpa{\endgroup\noexpand\hyphenrules{#1}}%
\tmpa
}{\endhyphenrules}
\DeclareFieldFormat{title}{%
\hasfieldannotation[title][langid]
{% expandable low-level access to annotation, \getfieldannotation
% is not expandable because it has optional arguments :-(
\letcs\thislangid{abx@annotation@literal@field@title@langid}%
\begin{eotherlanguage}{\thislangid}
\mkbibemph{#1}%
\end{eotherlanguage}}
{\mkbibemph{#1}}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{kroeger,
author = {Fred Kröger},
title = {The Temporal Logic of Programs: Foo},
title+an:langid = {="french"},
publisher = {Springer-Verlag},
date = {1987},
isbn = {978-3-642-71551-8},
doi = {10.1007/978-3-642-71549-5},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{worman,kroeger}
\printbibliography
\end{document}
Bei der Idee habe ich mich von <https://github.com/plk/biblatex/issues/594> inspirieren lassen.
Es bleibt zu erwähnen, dass es vor einigen Jahren, die Idee gab, eine *multiscript*-Version von `biblatex` zu entwickeln, die ähnliche Dinge zumindest vereinfachen sollte, siehe Z.B. <https://github.com/plk/biblatex/issues/416>. Leider ist das Projekt in letzter Zeit eingeschlafen.
----
Da ich es in den Kommentaren auch erwähnt hatte: Die Sortierung wird von `langid` nicht beeinflusst. Sie wird gewöhnlich von der Hauptsprache des Dokuments oder von der Option `sortlocale` gesteuert. Das kann man bei <https://gist.github.com/moewew/bab770efd51bdeede466059a583b5cfd> nachvollziehen.