A Ruby library that adds language translation methods to strings, backed by the Google Translate API.
Switch branches/tags
Nothing to show
Pull request Compare This branch is 1 commit ahead, 72 commits behind jimmycuadra:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



to_lang is a Ruby library that adds language translation methods to strings, backed by the Google Translate API.


Simply run gem install to_lang.


To use to_lang, require the library, then call ToLang.start with your Google Translate API key. At this point you will have access to all the new translation methods, which take the form to_language, where “language” is the language you wish to translate to.

Google Translate attempts to detect the source language, but you can specify it explicitly by calling methods in the form to_language_from_source_language, where “source_language” is the source language. These methods are generated dynamically and will not appear in a call to String.new.methods until they have been called once. Strings will, however, respond_to? these methods prior to their dynamic definition.

The dynamic methods are simply syntactic sugar for String#translate, which you can use directly as well.


Load and initialize to_lang:

require ‘to_lang’

Translate some text to Spanish:

“Very cool gem!”.to_spanish
=> “Muy fresco joya!”

A case where the source language is ambiguous:

“a pie”.to_spanish
=> “a pie”
“a pie”.to_spanish_from_english
=> “un pastel”

Using String#translate directly:

“hello world”.translate(‘es’)
=> “hola mundo”
“a pie”.translate(‘es’, :from => ‘en’)
=> “un pastel”

Supported Languages

to_lang adds the following methods to strings. Each of these methods can be called with an explicit source language by appending _to_source_language to the method name.

  • to_afrikaans
  • to_albanian
  • to_arabic
  • to_basque
  • to_belarusian
  • to_bulgarian
  • to_catalan
  • to_simplified_chinese
  • to_traditional_chinese
  • to_croatian
  • to_czech
  • to_danish
  • to_dutch
  • to_english
  • to_estonian
  • to_filipino
  • to_finnish
  • to_french
  • to_galician
  • to_german
  • to_greek
  • to_haitian_creole
  • to_hebrew
  • to_hindi
  • to_hungarian
  • to_icelandic
  • to_indonesian
  • to_irish
  • to_italian
  • to_japanese
  • to_latvian
  • to_lithuanian
  • to_macedonian
  • to_malay
  • to_maltese
  • to_norwegian
  • to_persian
  • to_polish
  • to_portuguese
  • to_romanian
  • to_russian
  • to_serbian
  • to_slovak
  • to_slovenian
  • to_spanish
  • to_swahili
  • to_swedish
  • to_thai
  • to_turkish
  • to_ukrainian
  • to_vietnamese
  • to_welsh
  • to_yiddish


API documentation can be found at rubydoc.info.


  • Add Unicode support for Ruby 1.8. to_lang currently works safely only under 1.9.

Feedback and Contributions

Feedback is greatly appreciated, as are patch contributions. Feel free to fork the project and send me a pull request.