Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A Ruby library that adds language translation methods to strings, backed by the Google Translate API.
branch: master

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 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


  • 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.

Something went wrong with that request. Please try again.