defmodule YandexTranslate do alias YandexTranslate.Client def languages(), do: Client.call(:listLanguages, %{}) def detect(params) when is_map(params), do: Client.call(:detectLanguage, params) def detect(text) when is_binary(text), do: Client.call(:detectLanguage, %{text: text}) def translate(params) when is_map(params), do: Client.call(:translate, params) def translate(text, targetLanguageCode) when is_binary(text) and is_binary(targetLanguageCode), do: Client.call(:translate, %{texts: [text], targetLanguageCode: targetLanguageCode}) def translate(text, targetLanguageCode, sourceLanguageCode) when is_binary(text) and is_binary(targetLanguageCode) and is_binary(sourceLanguageCode), do: Client.call(:translate, %{ texts: [text], targetLanguageCode: targetLanguageCode, sourceLanguageCode: sourceLanguageCode }) end