Translation methods and use cases

TMajesty supports a wide type of configuration that it should satisfy every kind of needed. These are the basic translation modes that you can mix and match according to your needs:

Flag translation

This is the most commonly used function in a translation bot. It is based on a member’s reaction to a message. Simply by react to a message that we want to translate with a flag nation and TMajesty interact by responding with a new message that contains the translation of the original message content into the flag nation language.

Let’s see an example:

This is a Flag Translation with a simple style template

This one adopt the default standard style that has more enrichment like link to original message (Jump to original message!) and other info about wich user have requested the translation and who is the author of original message.

Tip

You can choice what kind of template TMajesty must use in all Flag translations by this command:

Syntax

Option

/setup flag-style

Simple or Default

Auto-Translation at User level (server wide)

This method activates an automatic translation feature for the selected user. So every time the user who has this feature enabled writes a message, TMajesty will translate it into the selected target language. This mode is active for users at serverwide level.

Note

Everytime that you read here “..at serverwide level..” , it means that action/translation will be done in all channels where TMajesty has the right permissions to do it (i.e.: View channel, Send message …) If you don’t want TMajesty to translate into certain channels, you can write no-translation in its topic (refer to “No translation”).

Tip

Due to Discord’s limitations, <Language Option> will only show you the first 25 items in the list of all supported languages. So if you don’t see your preferred language, type a few letters of its name and Discord will filter the entire list for you and show you the available options.

Syntax

Option User

Option Language

Forced (optional)

/setup auto-user

<user>

<language>

Yes or No

Tip

Forced (optional) parameter should be used to tell TMajesty if all messages of the user must always be translated to target language [Forced = Yes] or not to translate them if source language is equal to target language [Forced = No]. This is very usefull because users often try to write messages also in target language (they want to learn language), so TMajesty avoid to duplicate a message that should be already understood by readers.

Note

Take in mind that with Forced option set to No , TMajesty need always try to translate the source message to identify the language source. Then chars charging is always done. On the other side, the channels will be more clean to the readers and this could be very useful in high traffic channels.

To deactivate this feature for a user, just to type this command:

Syntax

Option User

/setup auto-off-user

<user>

Tip

If you need to list which members have auto-translation enabled, just type this command below:

Syntax

/setup auto-user-list

Auto-Translation at Role level (server wide)

This method activates an automatic translation feature for all the user that they are members of a special Role. So every time these kind of users write a message, TMajesty will translate it into the defined target language. This mode is active for users at serverwide level.

Note

Everytime that you read here “..at serverwide level..” , it means that action/translation will be done in all channels where TMajesty has the right permissions to do it (i.e.: View channel, Send message…) If you don’t want TMajesty to translate into certain channels, you can write no-translation in its topic (refer to “No translation”).

There is no specific command to activate this auto-translation mode, just to create a Role in you server with a special syntax and add the users that we want TMajesty translate, into it.

Let’s explain with a typical usage example:

We have 200 members in our server but 60 of these are of Chinese origin an then we need to translate all of them to English because our server has this language as preferred. We need this kind of translation in all channels.

Well, we can use this mode and then we are going to create a special role like this:

tmajesty-auto-en where “en” represent the language target code (English)

Then just to add all Chinese users to this Role so when TMajesty intercept their messages and verify their Role, it understand that the messages must be translated to english.

Note

This translation mode has an implicit option Forced = No and then with referring to example above, if user write a message in English, TMajesty do not post the translation message. (Please refer to Note 1)

The rule for creating and naming this special Roles is:

``tmajesty-auto-xx``

xx must be a special code that represent the target language

These are all the special codes for all TMajesty supported languages:

Flag

Language

special code

🇦🇱

Albanian

sq

🇸🇦

Arabic

ar

🇧🇩

Bengali

bn

🇧🇬

Bulgarian

bg

🇨🇳

Chinese(Simpl.)

zh

🇹🇼🇭🇰

Chinese(Tradit.)

tw

🇭🇷

Croatian

hr

🇨🇿

Czech

cs

🇩🇰

Danish

da

🇳🇱

Dutch

nl

🇬🇧🇺🇸🇺🇲

English

en

🇪🇸🇪🇦

Español

es

🇪🇪

Estonian

et

🇫🇮

Finnish

fi

🇫🇷

French

fr

🇩🇪

German

de

🇬🇷

Greek

el

🇮🇳

Hindi

hi

🇭🇺

Hungarian

hu

🇮🇩

Indonesian

id

🇮🇹

Italian

it

🇯🇵

Japanese

ja

🇰🇿

Kazakh

kk

🇰🇷

Korean

ko

🇱🇻

Latvian

lv

🇱🇹

Lithuanian

lt

🇳🇴

Norwegian

nb

🇮🇷🇹🇯🇦🇫

Persian

fa

🇵🇱

Polish

pl

🇵🇹

Portuguese

pt

🇷🇴

Romanian

ro

🇷🇺

Russian

ru

🇸🇰

Slovak

sk

🇸🇮

Slovenian

sl

🇸🇪

Swedish

sv

🇹🇭

Thai

th

🇹🇷

Turkish

tr

🇺🇦

Ukrainian

uk

🇵🇰

Urdu

ur

🇻🇳

Vietnamese

vi

Tip

And how we can manage all the Chinese members that they need to understand who writes in English ? Well, they can use the Natural Translation function wich we will talk about later in this Wiki

Auto-Translation at Channel level

This method adds automatic translation into preferred languages for all messages posted by users/members in a specific #Channel. You can enable this method using the command below:

Tip

Due to Discord’s limitations, <Language Option> will only show you the first 25 items in the list of all supported languages. So if you don’t see your preferred language, type a few letters of its name and Discord will filter the entire list for you and show you the available options.

Command

Option Channel

Option Language

auto-delete (optional)

/setup auto-channel

<channel>

<language>

No, 5min, 10min, 30min

Running the above command adds a language to the channel. You can add up to 7 different languages. Note that the more languages you add, the more characters will be charged for each message posted by a user.

Tip

If you need to delete a language, just disable automatic channel translation with the command /setup auto-off-channel. Then re-configure it with only the languages you need.

To verify what #channels have this type of configuration, just to type /stats command. You will see this info in the bottom of second message.

Tip

auto-delete is an optional parameter (Default = No) and could be very useful when your goal is to maintain clean the channel. With this command, you can decide whether to keep the original message or to delete it after xx minutes and to keep only the translated one.

Note

This type of feature has a higher priority than the other methods above (user level and role level). So, if a user has Auto translation at user level or Auto translation at role level set, the target languages of his messages to the specific #Channel will always be set to the target languages of Auto translation at channel level.

Synched Channels auto-translation

This is another most common usage of TMajesty translator. With this feature you can configure up to 9 #channels all with their specific target language and synchronize them with each other. Let’s try to show you a simple use case.

Whe have a Discord server with a channel named #chit-chat where all users can send message and communicate toghether. The main language is English. Now we want to open our server to other native language people (French, German and Spanish) and do not want to use Flag translation or other methos above.

Well, Synched Channels auto-translation can help us. The first thing to do is to create (duplicate) our #chit-chat channel for the number of additional languages and enrich the channels name with something that represent the language used inside (i.e.: Flag):

#chit-chat –> rename in: #chit-chat-🇬🇧

also duplicate it in:

Now we have this new #channels tree:

Now configure all these four channels assigning it to a slot, defining a target language and a cluster by /setup sync-channel command:

Command

Channel number

Discord #Channel

Target Language

Cluster

/setup symc-channel

<channel number>

<discord channel>

<language>

<cluster>

repeat this above command for every channel that you want to synch toghether. By default, if you do not specify a cluster, TMajesty assign the channel configured to the cluster #1.

Then type /stats command and you will see this new configuration:

Tip

Due to Discord’s limitations, <Language Option> will only show you the first 25 items in the list of all supported languages. So if you don’t see your preferred language, type a few letters of its name and Discord will filter the entire list for you and show you the available options.

We can see the first 4 channels slot configured with its #channels and related language. From now, if a user write a message in just one of these channels, TMajesty translate it into each others channels using the target language set.

Tip

TMajesty keeps the status and links between messages and translations for 3 days, so if the author or the admins edit or delete a source message, TMajesty will also edit or delete all related translation messages. In addition, if a user react to one of these related messages, his/her reaction will be propagated to the other relate messages.

Clusters Channels auto-translation

Related to synched Channel automatic translation mode, TMajesty supports the Cluster feature. A cluster is a set of isolated synchronised channels (at least 2) that use the synchronised translation mode. If we need to create others set of synchronized channels we need to isolate every group by assigning it to a cluster. TMajesty support:

  • up to 9 channels

  • up to 3 clusters

Since any cluster must have at least 2 channels, therefore we can have a maximum of 3 clusters of 3 channels each. We can assign all 9 channels to only 1 Cluster also. Below a list of possible combinations using the max number of available channels (anyway, you can use less channels…):

Combination

Cluster 1

Cluster 2

Cluster 3

1

9 channel

2

7 channel

2 channel

3

5 channel

2 channel

2 channel

4

4 channel

3 channel

2 channel

5

3 channel

3 channel

3 channel

Any time you assign a channel to a slot channel by /setup sync-channel command, if you do not specify a cluster number, it will be assigned by default to Cluster #1. Then if you need to move it to other Cluster, just to type this command below, select the cluster and then click the buttons of available blue channels thet we want to move to the new cluster.

Command

Option cluster number

/setup cluster

<cluster>

We will go to use our example above of four #chit-chat channels to move 2 of these channels to Cluster 2. Then after type the cluster command selecting Cluster 2, TMajesty respond with this message and configuration schema:

Note

We can move ONLY BLUE channels because this color identify channels correctly configured and obviously assigned to other cluster. However, we are going to click #chit-chat-🇪🇸 and #chit-chat-🇫🇷 and then move it to Cluster 2.

Now we have this new one configuration, with 2 clusters of 2 channels each one synched toghether, but isolated from other cluster.

Caution

Remember the concept of how TMajesty charges chars. Using many synchronised channels can consistently increase the level of character consumption.

Natural Language translation

This function could be used by users and also the admins. It set the Natural Language of a user. This means that the users, by using an APP Command, may be able to translate every message in their natural language. Client Discord has special command it can be customized and used in an interaction with a message. Below a screenshot from PC Discord Client (APP commands are available on Mobile Client too):

Translate to Natural is the APP command that we are talking about.

There are 2 independent commands to set up Natural Language. One for the members and one for the admins (often members are not able to setup themselves and then with the admin command you can do it on their behalf ).

Tip

Due to Discord’s limitations, <Language Option> will only show you the first 25 items in the list of all supported languages. So if you don’t see your preferred language, type a few letters of its name and Discord will filter the entire list for you and show you the available options.

Type of command

Command

Option Member

Language

Users commmand

/set-natural

--

<language>

Admins commmand

/set-members-natural

<member>

<language>

The very good thing about this feature is the use of Ephemeral Message (this is possible because we are interacting with an APP command), so all the natural translations are only visible to the user who has requested it. With Ephemeral Message you improve the channel cleanliness and readability. Here an example of Natural Translation.

As you can see from the cyan arrow, the message is of type Ephemeral.

Note

To show members that you have set a natural language, simply type this command: /list-natural

Type of command

Command

Admins commmand

/list-natural


Note 1: Forced parameter should be used to tell TMajesty if all messages of the user must always be translated to target language [Forced = Yes] or not to translate them if source language is equal to target language [Forced = No]. This is very usefull because users often try to write messages also in target language (they want to learn language), so TMajesty avoid to duplicate a message that should be already understood by readers.