Photo cred: Alexander Smagin
first run in the directory
//NOTE we need to have google cloud dependency library installed to run google cloud-translate
gem install google-cloud
gem install google-cloud-translate
bundle add google-cloud-translate
Read here for information about setting up google cloud api for your rails app: https://cloud.google.com/ruby/docs/setup
Setting up authentication:
To run the client library, you must first set up authentication by creating a service account and setting the appropriate environment variables.
Lets get into it!
application.rb
# Imports the Google Cloud client library
require "google/cloud/translate"
Obtain a project_id & json key from google : https://cloud.google.com/docs/authentication/production?authuser=1#auth-cloud-implicit-ruby
you will get your project_id this page, as well as download a copy of the json key you will need
now that you have your key create this file config/local_env.yml
local_env.yml
CLOUD_PROJECT_ID: 'your_project_id'
GOOGLE_APPLICATION_CREDENTIALS: 'config/google_cloud.json'
now create a google_cloud.json file inside of /config
and paste the json file that you received from google into it .
(it will look something like this)
google_cloud.json
{
"type": "service_account",
"project_id": "randomApp",
"private_key_id": "04e0c8e8470",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBg...p0Tg7WibPz76wqUFpGj/qshvY2pqFc2H94\nxkgZT44GHXagW5WOW5ofXJo=\n-----END PRIVATE KEY-----\n",
"client_email": "random@random.iam.gserviceaccount.com",
"client_id": "111111111111111",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/random%random.iam.gserviceaccount.com"
}
Now we need to add our new enviornment file as well as our JSON key into .gitignore
.gitignore
/config/local_env.yml
/config/google_cloud.json
Now we have to setup the rails app to read this environment file:
config.before_configuration do
env_file = File.join(Rails.root, 'config', 'local_env.yml')
YAML.load(File.open(env_file)).each do |key, value|
ENV[key.to_s] = value
end if File.exists?(env_file)
end
Hello world with Google Translate
# Your Google Cloud Platform project ID
project_id = ENV["CLOUD_PROJECT_ID"]
# Instantiates a client
translate = Google::Cloud::Translate.new project: project_id
# The text to translate
text = "Hello, world!"
# The target language
target = "ru"
# Translates some text into Russian
translation = translate.translate text, to: target
puts "Text: #{text}"
puts "Translation: #{translation}"
When you try to run your rails server you might get :
accessNotConfigured: Access Not Configured. Cloud Storage JSON API has not been used in project 12314123123123 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/storage-api.googleapis.com/overview?project=1231214123123 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry. (Google::Cloud::PermissionDeniedError)
make sure that it is enabled in your developer console just like the error says to do
if you get :
`rescue in execute': invalid: Unknown project id: 0 (Google::Cloud::InvalidArgumentError)
you might have the wrong project_id
set for your application
check the config/google_cloud.json
file for your project_id it will be in there
project_id = ENV["CLOUD_PROJECT_ID"]
language_code = 'en'
translate = Google::Cloud::Translate.new project: project_id
languages = translate.languages language.code
puts 'Supported languages:'
languages.each do |language|
puts '#{language.code} #{language.name}'
end
Great! now our rails server should be up and running with google cloud translation api !
sources:
GOOGLE TRANSLATION CLOUTH AUTH:
https://cloud.google.com/docs/authentication/production?authuser=1#auth-cloud-implicit-ruby
SETTING LOCAL KEYS IN RAILS:
https://qiita.com/alokrawat050/items/0d7791b3915579f95791
Top comments (5)
The Google Translate API is presently in its second Cheap Custom Essay form. As a major aspect of Google's bigger Cloud Machine Learning API family, the Translate API can translate text between a huge number of language sets.
As Google Translate API has now propelled, I glanced around for a gem we could rapidly connect and do my dissertation for me was shocked to discover just the google-api-ruby-customer which for our necessities appeared to accompany a great deal of dead weight.
Its really best article i have seen today, I appreciated your work and experience. Ladies Brown Blazer I would love to share your article to other networks. Thanks for sharing!
Wow. This is an outstanding article regarding a quick start with google translation API. I want to know more about this topic. I quickly learned how to enable the API rail server to access Google API.
theacademicpapers.co.uk/cheap-diss...
Some comments may only be visible to logged-in visitors. Sign in to view all comments.