Метод определения языка вызывает клиентский метод определения языка и возвращает код языка. Теперь почти всё волшебство происходит в методе перевода, мы устанавливаем поле notificationText пустым, поскольку мы хотим очистить любое старое сообщение. Затем мы проверяем, не пусто ли свойство sourceText (то есть текст для перевода), если это так, то мы отображаем сообщение об ошибке. Затем мы приступаем к проверке, если sourceLanguage пуст (это язык текста, который мы хотим перевести), то это означает, что мы хотим определить язык, поэтому мы вызываем функцию обнаружения языка и возвращаем язык, на котором он написан. Далее нам нужно перевести текст, декодировать ответ, поскольку ответ содержит некоторые HTML-коды, и, наконец, мы проверяем словарь поддерживаемых языков, чтобы найти имя обнаруженного языка, поскольку функция обнаружения языка возвращает код языка (например, en, es, de, fr), но не фактическое имя. Поэтому, как только мы узнаем язык, мы выводим уведомление, отображающее язык, с которого был переведён текст. Следуя последнему случаю условного оператора, если оба аргумента sourceLanguageиsourceText не пусты, то мы переходим к обычному переводу без каких-либо дополнительных задач.