Learn R Programming

Table of Contents

Overview

The polyglotr package is a language translation tool for the R programming language. It provides convenient functions to translate text using different (free) translation services. This vignette will guide you through the usage of the package and demonstrate how to translate text and files in various languages.

Currently, the package has functions to communicate with the following services:

Why polyglotr?

polyglotr stands out as a versatile and user-friendly translation tool for R users. Here's why you should consider using it:

  1. No Authentication Hassle

    • Access multiple translation services without API keys or complex authentication.
    • Start translating immediately after installation, with no sign-ups or accounts.
  2. Multiple Services, One Package

    • Use various translation services (Google, Mymemory, Linguee, Pons, QCRI, Wikimedia) through a single interface.
    • Easily switch between services to compare translations or find the best fit.
  3. R-Native Solution

    • Integrate translation capabilities into your R workflows and data analysis pipelines.
    • Benefit from R's data manipulation strengths while translating.
  4. Flexibility and Scalability

    • Translate single phrases, large datasets, or entire files with equal ease.
    • Create multilingual datasets using built-in functions.
  5. Open Source and Community-Driven

    • Continuous improvements and updates driven by user feedback and contributions.
    • Adapt the package to your needs by accessing and modifying the source code.
  6. Comprehensive Documentation

    • Get started quickly with extensive documentation, vignettes, and examples.
    • Access a wide range of use cases and best practices.

By choosing polyglotr, you're opting for a powerful, flexible, and user-friendly translation solution that integrates seamlessly with your R environment, all without the barriers of authentication or service-specific setups.

Features

  • Translate text using multiple free translation services
  • Batch translation capabilities
  • Language detection
  • Create translation tables for multiple languages
  • File translation
  • Easy-to-use interface for different translation APIs
  • NEW: Interactive Shiny web application for non-R users

To see which functions are available, please refer to the reference page of the polyglotr package. The reference page provides a comprehensive list of functions available in the package, organized by category.

Additionally, the package includes vignettes that provide more detailed information on how to use the functions in the package.

Installation

To install the package:

# The easiest way is to get polyglotr from CRAN
install.packages("polyglotr")

# Alternatively, install the development version from GitHub
# install.packages("remotes")
remotes::install_github("Tomeriko96/polyglotr")

Quick Start

Here's a minimal example to get you started:

library(polyglotr)

# Translate a simple phrase using Google Translate
text <- "Hello, world!"
translation <- google_translate(text, target_language = "fr")
print(translation)

# Translate using Apertium (no API key required)
translation_apertium <- apertium_translate(text, target_language = "es", source_language = "en")
print(translation_apertium)

Shiny Web App

polyglotr includes a web application for translation services, accessible to users without R programming knowledge.

Launching the App

library(polyglotr)
launch_polyglotr_app()
# Or with custom settings
launch_polyglotr_app(port = 3838, launch.browser = TRUE)

App Features

  • Multiple translation services: Google Translate, MyMemory, PONS, Linguee, QCRI, Apertium, Wikimedia Cloud
  • Language detection
  • Dynamic language selection based on service
  • User-friendly dashboard interface
  • No coding required

Installation Requirements

To use the Shiny app, install these additional packages:

install.packages(c("shiny", "shinydashboard", "DT"))

Usage

To demonstrate the usage of the polyglotr package, let's consider an example where we translate a list of texts into multiple languages using the create_translation_table function.

texts <- c("Hello, how are you?", 
           "I love programming!", 
           "This is a test.")

languages <- c("es", 
              "fr", 
              "de")


create_translation_table(texts, languages)


#>        Original_word                     es
#> 1 Hello, how are you?     ¿Hola, cómo estás?
#> 2 I love programming! ¡Me encanta programar!
#> 3     This is a test.    Esto es una prueba.
#>                           fr                       de
#> 1 Bonjour comment allez-vous?   Hallo, wie geht's dir?
#> 2        J'adore programmer ! Ich liebe Programmieren!
#> 3              C'est un test.        Das ist ein Test.

Documentation

Contribution

Contributions are welcome! If you'd like to contribute, please:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use polyglotr in your research, please cite it as follows:

Iwan, T. (2023). polyglotr: Multilingual Text Translation in R. R package version 1.0.0.
https://github.com/Tomeriko96/polyglotr

Related Projects

  • googleLanguageR: R client for the Google Translation API, Cloud Natural Language API, Cloud Speech API, and Cloud Text-to-Speech API

Copy Link

Version

Install

install.packages('polyglotr')

Monthly Downloads

905

Version

1.7.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Tomer Iwan

Last Published

July 23rd, 2025

Functions in polyglotr (1.7.0)

wikimedia_detect_language

Detect the language of a text
translate_to_morse_audio

Translate English Text to Morse Code with Audio
translate_to_morse

Translate Text to Morse Code using the FunTranslations API
wmcloud_translate

Translate content using WMCloud
wikipedia_get_language_names

Get language names
apertium_translate

Translate text using Apertium
google_get_supported_languages

Get Supported Languages
google_supported_languages

Google Supported Languages
apertium_get_language_pairs

Get Apertium Language Pairs
google_is_valid_language_code

Check if a language code is valid
google_translate

Translate text using Google Translate
google_translate_long_text

Translate Long Text Using Google Translate
batch_translate

Batch Translation Function
create_translation_table

Create a Translation Table
create_transliteration_table

Create a Transliteration Table
launch_polyglotr_app

Launch polyglotr Shiny App
linguee_translation_examples

Provide translation examples using Linguee Translation API
microsoft_supported_languages

Get the set of languages currently supported by the Microsoft Translator API
language_detect

Detect Language using Google Translate API
google_transliterate

Transliterate a single word or a sentence to the required language.
linguee_word_translation

Translate word using Linguee Translation API
linguee_external_sources

Retrieve external sources using Linguee Translation API
%>%

Pipe operator
pons_translate

Translate text using PONS
mymemory_translate

Translate text using mymemory translate
restore_urls_from_placeholders

Restore URLs from placeholders in a translated text
translate_file

Translate File
pons_dictionaries

Get the list of available dictionaries from PONS API
qcri_translate_text

QCRI Translate Text
replace_urls_with_placeholders

Replace URLs in a sentence with placeholders
qcri_get_language_pairs

QCRI Get Language Pairs
qcri_get_domains

QCRI Get Domains
qcri_api_key

Get the QCRI API key from the environment variable