Há tempos, para me facilitar traduzir conversas em tempo real fiz um programa em VBA em que escrevia o texto fosse lá em que lingua fosse e ele traduzia em texto e voz para inglês ou outra lingua.
Utilizava o motor de tradução do google para traduzir (embora com todas as insuficiências que são conhecidas).
O motor de tradução do google consegue detetar com bom resultado o idioma inserido.
Então tive a ideia de criar um programa VBA para o outlook que permite responder a um email na lingua em que ele foi escrito. Isto para ser utilizado naquelas mensagens de ausência.
Eu conseguia que o google le-se a mensagem e identificasse o idioma de input e devolve-se (output) a mensagem traduzida na lingua pre-definida, mas não conseguia que ele me indicasse qual a lingua do input, já que a lingua do output é sempre a mesma.
Então criei um algoritimo engraçado e que funciona mais ou menos assim:
No fim da frase de input (subject e body do email) escrevi a palavra amor sendo que o output será love caso a detecção do idioma esteja correto. Senão detetar faz um loop e muda a palavra amor para outra lingua.
Quando a palavra amor devolver love, significa que estou no idioma certo. Então o algoritmo fica a saber qual foi o idioma que usou na palavra amor e devolve a mensagem no idioma correto. :-)