In practice, users may encounter text in a language they don’t recognize. However, the current specification requires the source language to be specified when requesting a translation. In this case, I use und to indicate that the language is unknown, allowing the translation server to attempt automatic language detection. The server can also declare this capability using a combination such as source_lang="und" and destination_lang="en" to indicate that it supports automatic language detection when translating into English. Another tricky issue is that XEP-0171 lists supported translations as language pairs. If a translation engine supports 20 languages in both directions, that means 400 entries, which is far too many. Modern translation services usually list supported source and target languages separately and have a separate option for automatic language detection.