# Welcome

Welcome to the documentation of Smoogle Translate! The bot that translates messages on Discord for free.

## Getting Started

To translate right away without setting up auto translate, use `?` with a language code to translate to that language.

&#x20;<img src="/files/-LZS-z-IVvhaZfbkksfS" alt="" data-size="original"> <img src="/files/-LZS0-oBJKnhKZXuMZC7" alt="" data-size="original">&#x20;

**Optional**: Use the `!` prefix with a language code to use that language source language is. Without this option, the default is to auto detect the source language.

<img src="/files/-LZS02Y66WIVO-V4WAaW" alt="" data-size="original">&#x20;

## Permissions

The bot requires **Send Messages** and **Embed Links** permissions to run properly.

## Questions, comments, and bug reports

Join the [support server](https://discord.gg/G53U373) and create a ticket by running `/open [description]`

## Status

&#x20;[![](https://discordbots.org/api/widget/471542070817849355.svg)](https://discordbots.org/bot/471542070817849355)

[Show your support by voting for the bot](https://discordbots.org/bot/471542070817849355/vote) :)


# Language Code List

Full list of languages supported by the bot. Use the language code for the bot's commands.

| Name                            | Code  |
| ------------------------------- | ----- |
| Arabic • العربية                | ar    |
| Chinese • 中文                    | zh-cn |
| Dutch • Nederlands              | nl    |
| English                         | en    |
| French • français               | fr    |
| German • Deutsch                | de    |
| Hebrew • עִבְרִית‎              | iw    |
| Hindi • हिन्दी                  | hi    |
| Indonesian • Bahasa Indonesia   | id    |
| Italian • italiano              | it    |
| Japanese • 日本語                  | ja    |
| Korean • 한국어 \[韓國語]             | ko    |
| Persian • فارسى                 | fa    |
| Polish • polski / polszczyzna   | pl    |
| Portuguese • português          | pt    |
| Romanian • limba română / român | ro    |
| Russian • Русский               | ru    |
| Spanish • español               | es    |
| Swedish • Svenska               | sv    |
| Turkish • Türkçe                | tr    |


# Full Command List

## Free Commands

These commands are free for an unlimited number of translations.

| Command          | Description                                                                                                         | Usage                                                                                                          |
| ---------------- | ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `?[lang]`        | Translates a message to that language. Use `!` to force it to use a source language.                                | <p><code>?ja Hello</code><br><code>?ja !en How are you?</code></p>                                             |
| `tr?auto`        | Auto translate messages from your account, by channel or server. Multiple languages can be set on paid plan only.   | <p><code>tr?auto ja</code><br><code>tr?auto on ja</code><br><code>tr?auto on ja #channel1 #channel2</code></p> |
| `tr?auto status` | Check auto translate settings on your account                                                                       |                                                                                                                |
| `tr?auto off`    | Turns off auto translate that was turned on by `tr?auto`                                                            | <p><code>tr?auto off</code></p><p><code>tr?auto off #channel1 #channel2</code></p>                             |
| `tr?codes`       | Get a list of valid language codes                                                                                  |                                                                                                                |
| `tr?help`        | Get help information                                                                                                |                                                                                                                |
| `tr?doctor`      | Diagnose issues that may cause the bot to not run properly on your server.                                          |                                                                                                                |
| `tr?reset`       | A "factory reset" of the bot. Removes all settings set by all commands (including premium commands) on your server. |                                                                                                                |

## Premium (Paid) Commands

These commands are enabled with a paid subscription ($5 per month). They are recommended for users who have large Discord servers, or need to translate to multiple languages at a time.

| Command                                      | Description                                                                                                 | Usage                                                                                                                                                                  |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`tr?autoall`](/premium-commands/tr-autoall) | Auto translate messages for **all or other accounts**, by channel or server. Multiple languages can be set. | <p><code>tr?autoall ja</code><br><code>tr?autoall on ja</code><br><code>tr?autoall ja #channel1 #channel2</code><br><code>tr?autoall on ja @user1 #channel1</code></p> |
| [`tr?link`](/premium-commands/tr-link)       | Forward translations from one channel to another. `tr?unlink` does the opposite.                            | `tr?link #channel-in #channel-out`                                                                                                                                     |
| [`tr?ocr`](/premium-commands/tr-ocr)         | Extract and translate text from images using optical character recognition (OCR)                            | `tr?ocr ja [link or attachment]`                                                                                                                                       |
| `tr?images`                                  | Allows forwarding of all images/attachments to channels that are linked with `tr?link`                      | <p><code>tr?images on</code></p><p><code>tr?images off</code></p><p><code>tr?images status</code></p>                                                                  |

### Other Features

Paid users can also set multiple languages at a time (per channel or server) for all auto translate commands.


# API

Information about Smoogle's Translation API

Smoogle's goal has always been to make machine translations affordable and accessible for everyone around the world.

As part of this goal, we are providing access to the API that uses Smoogle's translation engine for only **$20 (USD) for an unlimited number of characters**, making it one of the cheapest translation APIs in the world.

### How to Access

Request access to the API by visiting the [support server](https://discord.gg/G53U373) and creating a ticket. Once you have access, you'll be given instructions for generating keys for both testing/development and production.


# FAQ

## What translate engine does it use? Does it use Google/Bing/Yandex Translate?

The bot uses our own translator engine, which was developed using [OpenNMT](https://github.com/OpenNMT) libraries.

## I need the translator for an important event. How can I ensure speed and accuracy during that time?

If you are running an event where speed and accuracy of the translator are absolutely necessary, contact me by joining [support server](https://discord.gg/G53U373) and create a ticket.

What I can do is basically create a seperate bot that will exist for the duration of the event (this keeps the traffic isolated from the main bot). If you have a preference of translator engines/APIs, I can customize it to your needs. Just keep in mind that the additional hosting costs and customizations will come at an additional cost.

## How do I translate a single message?

Use `?` with a language code to translate to that language.

For example, `?de This message will be translated to German`

## How to I translate a single message another user has sent?

You can react to the message with a flag emoji, which will translate it to that country's official language.

## How do I translate everything I say into another language?

Use `tr?auto`  to automatically translate everything you say into another language.

## Can I translate everything I say into multiple languages?

Yes, however this requires a premium subscription, and you must be an administrator of your server for it to work.

For example, `tr?auto de` and `tr?auto fr` will translate to German *and* French, instead of just switching to French translations.

## Can I limit the automatic translations of my messages to specific channels only?

Yes you can. Use `tr?auto` with a channel for it to work on only that channel.

For example, `tr?auto de #german` and `tr?auto fr #french` will translate to German and French on the `#german` and `#french` channels respectively.

## Can I translate all messages in the server regardless of user?

Yes, by using `tr?autoall`. However this requires a premium subscription, and you must be an administrator of your server for it to work.

For example, `tr?autoall de` will turn on server wide and user wide translations into German.&#x20;

You can also limit translations to a specific channel(s), such as `tr?autoall de #channel1 #channel2`

## Can I make different language translations go into their own channels?

Yes, by using `tr?channel`. However, this requires a premium subscription, and you must be an administrator of your server for it to work.

For example, `tr?channel de #channel1 #channel2` will forward any translations to German to `#channel1` and `#channel2`, instead of the channel of the original message.

## Privacy Policy

<https://smoogle.gg/privacy>


# Server

Server-wide automatic translations of your own messages.

Run `tr?auto on [language code]` to enable automatic translations server-wide for your account.

&#x20;<img src="/files/-LZS0gVf0c4zLbF6pXCc" alt="" data-size="original"> &#x20;

(Optional) Use the `!` prefix with a language code to tell it what the source language is. Without this option, the default is to auto detect the source language.

&#x20;<img src="/files/-LZS0iVZeb9Cc_Vjsp5D" alt="" data-size="original">&#x20;


# Channels

Channel-specific automatic translations of your own messages.

You can also auto translate to specific channels by tagging them in the same command. In this example, it will auto translate my messages in two channels to French.

&#x20;<img src="/files/-LZS1J5phGACqX7uVPf1" alt="" data-size="original">&#x20;

Run `tr?auto` status to see what your auto translate settings are.

&#x20;<img src="/files/-LZS1Kv-Q-RltIceAjh4" alt="" data-size="original">&#x20;


# Flag reactions

Translate messages by reacting with a flag emoji.

You can translate messages by reacting to one using a flag emoji. This will translate to that country's official language.

&#x20;<img src="/files/-LZS2tyjmX62qTyPcBkX" alt="" data-size="original">&#x20;


# Overview

Features in this section are part of a paid subscription.

Because of the potential load the commands in this section can have on the bot's server, they are paid commands that are included as part of a monthly subscription. The subscription costs **$5 (USD) a month**.

Along with the premium commands, benefits include faster auto translations and the ability to setup complex auto translate circuits for your server.

You must be an **administrator** of your server for the commands to work on that server.

Payments are currently done through [Stripe](https://stripe.com/) and [PayPal](https://www.paypal.com/). The commands are enabled as soon as the payment process completes for the first month (which happens immediately).

## How to enable premium/paid features

Visit <https://smoogle.gg/premium> and login to Discord. After logging in, it will take you back to the page where you can enable them through Stripe or PayPal.

![](/files/-LZS59NZ5K-5PH2bWZSI)

Once you submit, it will create the subscription and charge for the first month, and the commands will instantly work on Discord.

## How to cancel subscription

Canceling your subscription depends on the payment method used.

* For **Stripe**, please [create a ticket on the support server](https://discord.gg/G53U373).
* For **PayPal**, go to your PayPal account and cancel the subscription, which will automatically update the setting on the Discord side.

Please be sure you want to enable premium commands before doing so. Generally, I will not give refunds. I also reserve the right to cancel subscriptions for any reason, as well as the right to refuse or give refunds for any reason.

For any other questions, please [create a ticket on the support server](https://discord.gg/G53U373). Do *not* email.


# tr?autoall

Automatic translations that are applied to all members of a server.

This functions similar to `tr?auto`, but allows the bot to translate **everyone's** messages on a server. `tr?auto` only does it for the person who ran the command.

It also has priority over `tr?auto` settings. That means, if applicable, it overrides settings made by `tr?auto`. This gives you finer control over how you want messages to be translated, and for whom.

In this example, it is used to translate everyone's messages to Japanese on *#my-channel*

&#x20;<img src="/files/-LZS44EYUZpYXJIngbcT" alt="" data-size="original">&#x20;

Check your server's settings like so.&#x20;

<img src="/files/-LZS4A5kMIU5_FYxW0zq" alt="" data-size="original">&#x20;

## Usage

#### To turn it on

`tr?autoall on [language code] (optional @users) (optional #channels)`

If `@user` is specified, auto translate for a specific user. Otherwise, auto translate for all users.

If `#channel` is specified, auto translate for a specific channel. Otherwise, auto translate for all channels.

Multiple users and channels can be specified at the same time.

`tr?autoall` status (optional @user)

Show `tr?autoall` settings for the server or user.

#### To turn it off

`tr?autoall off (optional @users) (optional #channels)`

Turns off auto translate for the server, specific users, and/or specific channels.


# tr?link / tr?unlink

Forward translations from one channel to another.

This command allows forward automatically translated messages from one channel to another. This can also be configured to forward messages in all or specific languages.

{% tabs %}
{% tab title="Forward translations" %}

#### Syntax

> tr?link #channel-in #channel-out (optional list of #channel-outs) (optional list of languages)

Run `tr?link #channel-in #channel-out` to forward translations from `#channel-in` to `#channel-out`. Specify languages to only forward messages being translated to those languages.

<div align="left"><img src="/files/-LffCSqu8jv4b1RSP9Fu" alt="At least two channels are required. The first channel is the &#x22;source&#x22; channel, the second channel (or more) are set as the channels to forward messages to."></div>
{% endtab %}

{% tab title="Turn off forwarding" %}

#### Syntax

> tr?unlink #channel-in (optional list of #channel-outs)

Run `tr?unlink #channel` to turn off forwarding from that channel. You can also specify one or more `#channel-outs` to only remove forwarding between those channels.

<div align="left"><img src="/files/-LffE3WsBIj_FswYzXmg" alt="Run &#x22;tr?link status&#x22; to see active forwarding settings "></div>
{% endtab %}
{% endtabs %}

### FAQ

> What is the difference between the tr?link and tr?channel commands?

Currently, the only difference is that `tr?channel` forwards messages from **all** channels instead of specific ones.

> Where are the instructions for the command when I run the tr?help?

Run `tr?link help` for the instructions.

<div align="left"><img src="/files/-LffAtydoAlXKNFUt-hB" alt="tr?link and tr?unlink information and command syntax."></div>


# tr?ocr (beta)

Extract and translate text from images using optical character recognition (OCR)

This command extracts text from an image and optionally translate the text. The image can either be an attachment or a link.

This is a beta feature and functionality may change over time.

#### Detect / Extract Text

Specify the language you want to detect from the image.&#x20;

<div align="left"><img src="/files/-Lgd5Yjynu16QHf29kob" alt="Example: tr?ocr ja [link or attachment]"></div>

#### Translate Text

Translate text by specifying the image's language, then the destination language.

<div align="left"><img src="/files/-Lgd5pGhYqZ6x5eElLoZ" alt="Example: tr?ocr ja en [link or attachment]"></div>

#### PSM Adjustment

The PSM determines how the text is detected from the image. The default is 11 (psm-11).

This is useful if you want to detect vertically aligned text, text that's formatted as one singular block, or want to just play around with the values to help increase accuracy.

The table below are a list of valid PSM values to use in the command.

| Value  | Description                                                                    |
| ------ | ------------------------------------------------------------------------------ |
| psm-0  | Orientation and script detection (OSD) only.                                   |
| psm-1  | Automatic page segmentation with OSD.                                          |
| psm-2  | Automatic page segmentation, but no OSD, or OCR                                |
| psm-3  | Fully automatic page segmentation, but no OSD.                                 |
| psm-4  | Assume a single column of text of variable sizes.                              |
| psm-5  | Assume a single uniform block of vertically aligned text.                      |
| psm-6  | Assume a single uniform block of text.                                         |
| psm-7  | Treat the image as a single text line.                                         |
| psm-8  | Treat the image as a single word.                                              |
| psm-9  | Treat the image as a single word in a circle.                                  |
| psm-10 | Treat the image as a single character.                                         |
| psm-11 | Sparse text. Find as much text as possible in no particular order. (Default)   |
| psm-12 | Sparse text with OSD.                                                          |
| psm-13 | Raw line. Treat the image as a single, raw text line. For debug purposes only. |

#### PSM Usage Example

<div align="left"><img src="/files/-Lgd86IQkcXgXXWt9ec7" alt="Example: Add psm-6 to the command"></div>

#### Confidence Filter Adjustment

Adjusting the confidence filter may be helpful if the bot isn't extracting all the text that's in the image. By using a lower value, the bot will extract text that it's less "confident" about. Keep in mind that this may also include garbage data as well.

The range is 0-100, and the default is 90. Similar to PSM, add the value with a "conf-" prefix, such as `conf-85` to use a confidence level of 85.

#### Confidence Filter Example

<div align="left"><img src="/files/-LgdFwGavPd6oVnFgxul" alt="Setting a lower value can increase the chance it will grab the entire sentence, but it may also include garbage data as well. "></div>


# Improved tr?auto

Users who have a paid subscription will have an improved version of the tr?auto command.

## Multiple languages

Multiple languages can be set per channel (or server-wide) so that each message can be translated to more than one language instantly.&#x20;

<img src="/files/-LZS8luzKbAliEpnOQjX" alt="" data-size="original">&#x20;

## Configure for other users

It will also allow you to setup `tr?auto` on other users besides yourself.

<div align="left"><img src="/files/-LZS97aU3W26j6ip9SYF" alt=""></div>

## Attachment forwarding

Translating a message with an attachment will also include the attachment in the translation.

<div align="left"><img src="/files/-M7UIKlpTDe7m6X9S1bX" alt=""></div>


