BingTranslator
A simple Elixir interface to Bing's translation API
Installation
If available in Hex, the package can be installed as:
Add bing_translator to your list of dependencies in mix.exs:
def deps do
[{:bing_translator, "~> 0.2"}]
end
Ensure bing_translator is started before your application:
def application do
[applications: [:bing_translator]]
end
Getting a Client ID and Secret
To sign up for the free tier (as of this writing), do the following:
- Go here
- Sign in with valid MSN credentials.
- On the right side, click 'SIGN UP', under the $0.00 option.
- Read and accept the terms and conditions and click the big 'SIGN UP' button.
- Create a new application. Fill in a unique client ID, give it a valid name, give it a valid redirect URI (not actually used by the Bing Translator API, so it can be anything) and hit 'CREATE'.
- Click on the name of your application to see the info again. You'll need the 'Client ID' and 'Client secret' fields.
Usage
# Specify all arguments
BingTranslator.configure("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", false)
# Or... Specify only required arguments
BingTranslator.configure("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
# Or... If already sets key and secret in config.exe
BingTranslator.configure
spanish = BingTranslator.translate("Hello. This will be translated!", [from: "en", to: "es"])
# without :from for auto language detection
spanish = BingTranslator.translate("Hello. This will be translated!", to: "es")
locale = BingTranslator.detect("Hello. This will be translated!") # => "en"
languages = BingTranslator.supported_language_codes # => ["ar", "bs-Latn", "bg", "ca", "zh-CHS",,,,,]
# The speak method calls a text-to-speech interface in the supplied language.
# It does not translate the text. Format can be 'audio/mp3' or 'audio/wav'
audio = BingTranslator.speak("Hello. This will be spoken!", language: :en, format: "audio/mp3", options: "MaxQuality")
Configuration
The default behaviour is to configure using the application environment:
In config/config.exs, add:
config :bing_translator,
client_id: "YOUR_CLIENT_ID",
client_secret: "YOUR_CLIENT_SECRET",
skip_ssl_verify: false
Documentation
Thanks
This gem is inspired from Codeblock/bing_translator-gem and roomorama/bing_translator