diff --git a/README.md b/README.md index 4ecccde..3d0a409 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ by adding `localizator` to your list of dependencies in `mix.exs`: ```elixir def deps do [ - {:localizator, "~> 0.1.5"} + {:localizator, "~> 0.1.6"} ] end ``` diff --git a/lib/translator/microsoft.ex b/lib/translator/microsoft.ex index f4871be..20fe6dc 100644 --- a/lib/translator/microsoft.ex +++ b/lib/translator/microsoft.ex @@ -17,6 +17,17 @@ defmodule Localizator.Translator.Microsoft do end end + @impl true + @spec detect(map) :: {:ok, locale} | {:error, message} + def detect(map) when is_map(map) do + {:ok, sample} = Map.fetch(map, List.first(Map.keys(map))) + + case MicrosoftTranslator.detect(sample) do + %{languageCode: locale} -> {:ok, locale} + %{} -> {:error, "Couldn't detect language"} + end + end + @impl true @spec translate(text, to, optional_from) :: {:ok, text} | {:error, message} def translate(text, to, from \\ nil) diff --git a/lib/translator/yandex.ex b/lib/translator/yandex.ex index e7aa582..b2ac203 100644 --- a/lib/translator/yandex.ex +++ b/lib/translator/yandex.ex @@ -17,6 +17,17 @@ defmodule Localizator.Translator.Yandex do end end + @impl true + @spec detect(map) :: {:ok, locale} | {:error, message} + def detect(map) when is_map(map) do + {:ok, sample} = Map.fetch(map, List.first(Map.keys(map))) + + case YandexTranslate.detect(sample) do + %{languageCode: locale} -> {:ok, locale} + %{} -> {:error, "Couldn't detect language"} + end + end + @impl true @spec translate(text, to, optional_from) :: {:ok, text} | {:error, message} def translate(text, to, from \\ nil) diff --git a/mix.exs b/mix.exs index 408c17b..8c1ca3d 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule Localizator.MixProject do def project do [ app: :localizator, - version: "0.1.5", + version: "0.1.6", elixir: "~> 1.10", start_permanent: Mix.env() == :prod, deps: deps()