Para saber el idioma como no cojas el idioma del sistema accediendo a la variable correspondiente del entorno, y también puedes usar locales para así tener varios paquetes de mensajes y según el idioma del sistema usar un paquete u otro.
Que yo sepa no hay funciones que te digan el idioma de un texto. Tendrías que hacerte tú un algoritmo.
El algoritmo que yo conozco consiste en lo siguiente: imagina que tienes un texto español que empieza "En_un_lugar ...". Vas leyendo el texto con las letras de dos en dos y vas contando cuantas veces aparece cada combinacion, es decir
En, n_, _u, un, n_, _l, lu, ug, ga, ar ...
Al final te quedas con las 10 o 15 combinaciones que más se han repetido y te las guardas bien guardaditas como "español"
Repite esto con cada uno de los idiomas que quieras reconocer y ya estás en condiciones de hacer tu algoritmo.
Cuando tengas un texto nuevo del que quieras reconocer el idioma, haces la misma "cuenta" y buscas en tus tablas con qué "idioma" tiene más coincidencias.
Por ejemplo, en inglés te saldrán muchas "th" (de los articulos the, this, that, etc) pero en español no tendrás ninguna. También tendrás muchos "wh" (who which, what....)
Espero que te sirva de ayuda.