En fait, la détection de la langue est déjà implémentée par `texdoc`. Elle s'appuie sur :
1. la langue favorite, basée sur la « locale » utilisée (variables système telles que `LANG` et `LC_ALL` sur systèmes Unix) et sinon configurable dans le fichier de configuration `texdoc.cnf` au moyen de `lang=⟨code⟩`, où `⟨code⟩` est constituée de 2 lettres, par exemple `fr` ;
2. les noms des fichiers PDF de documentation qui doivent être de la forme `⟨nom du package⟩-⟨lang⟩.pdf`.
Ici, ça ne marche donc pas pour `xlop` et `kpfonts` qui n'ont pas adopté la convention du point 2 (`xlop-doc` au lieu de `xlop` et `kpfonts-Doc-French` au lieu de `kpfonts-fr`) et la solution proposée par Paul permet de s'en sortir. Mais le mieux serait de suggérer aux auteurs de ces packages de corriger cela.
En revanche, ça devrait fonctionner par exemple avec le package `paresse` qui adopte la convention. Chez moi :
$ texdoc -l paresse
1 /usr/local/texlive/2015/texmf-dist/doc/latex/paresse/paresse-fr.pdf
= [fr] Package documentation (French)
2 /usr/local/texlive/2015/texmf-dist/doc/latex/paresse/paresse.pdf
3 /usr/local/texlive/2015/texmf-dist/doc/latex/paresse/paresse-en.pdf
= [en] Package documentation (English)
4 /usr/local/texlive/2015/texmf-dist/doc/latex/paresse/paresse-ex-en.pdf
= [en] Usage examples (English)
5 /usr/local/texlive/2015/texmf-dist/doc/latex/paresse/paresse-ex-fr.pdf
= [fr] Usage examples (French)
Please enter the number of the file to view, anything else to skip:
montre que `paresse-fr.pdf` est en tête de la liste : c'est bien la version française qui sera affichée par défaut.