Merge pull request #1735 from IanWONeill/master

chat-translator: add additional languages.
This commit is contained in:
Tyler Bochard
2019-10-09 00:49:38 -04:00
committed by GitHub
2 changed files with 33 additions and 14 deletions

View File

@@ -39,7 +39,7 @@ import org.apache.commons.lang3.ArrayUtils;
@PluginDescriptor( @PluginDescriptor(
name = "Chat Translator", name = "Chat Translator",
description = "Translates messages from one Language to another.", description = "Translates messages from one Language to another.",
tags = {"translate", "language", "english", "spanish", "dutch", "french"}, tags = {"translate", "language", "english", "spanish", "dutch", "french", "welsh", "german"},
type = PluginType.UTILITY type = PluginType.UTILITY
) )
@Singleton @Singleton
@@ -221,8 +221,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
try try
{ {
//Automatically check language of message and translate to selected language. String translation = translator.translate("auto", this.publicTargetLanguage.toShortString(), message);
String translation = translator.translate("auto", this.publicTargetLanguage.toString(), message);
if (translation != null) if (translation != null)
{ {
final MessageNode messageNode = chatMessage.getMessageNode(); final MessageNode messageNode = chatMessage.getMessageNode();
@@ -264,7 +263,15 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
{ {
try try
{ {
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, translator.translate("auto", config.playerTargetLanguage().toString(), message)); if (config.playerTargetLanguage() == Languages.GERMAN)
{
// This is 'sort of' needed as German will translate the / and it will send to public-chat instead of clan-chat.
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, "/" + translator.translate("auto", config.playerTargetLanguage().toShortString(), message));
}
else
{
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, translator.translate("auto", config.playerTargetLanguage().toShortString(), message));
}
} }
catch (Exception e) catch (Exception e)
{ {
@@ -278,13 +285,13 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
try try
{ {
//Automatically check language of message and translate to selected language. //Automatically check language of message and translate to selected language.
String translation = translator.translate("auto", this.playerTargetLanguage.toString(), message); String translation = translator.translate("auto", this.playerTargetLanguage.toShortString(), message);
if (translation != null) if (translation != null)
{ {
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, translation); client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, translation);
clientThread.invoke(() -> clientThread.invoke(() ->
client.runScript(CHATBOX_INPUT, 0, translation)); client.runScript(CHATBOX_INPUT, 0, translation));
} }
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, ""); client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, "");
} }
@@ -316,4 +323,4 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
this.playerChat = config.playerChat(); this.playerChat = config.playerChat();
this.playerTargetLanguage = config.playerTargetLanguage(); this.playerTargetLanguage = config.playerTargetLanguage();
} }
} }

View File

@@ -1,24 +1,36 @@
package net.runelite.client.plugins.chattranslation; package net.runelite.client.plugins.chattranslation;
import lombok.Getter;
public enum Languages public enum Languages
{ {
ENGLISH("en"), ENGLISH("English", "en"),
DUTCH("nl"), WELSH("Welsh", "cy"),
SPANISH("es"), DUTCH("Dutch", "nl"),
FRENCH("fr"); SPANISH("Spanish", "es"),
FRENCH("French", "fr"),
GERMAN("German", "de");
@Getter
private final String name;
private final String shortName; private final String shortName;
Languages(String shortName) Languages(String name, String shortName)
{ {
this.name = name;
this.shortName = shortName; this.shortName = shortName;
} }
public String toShortString()
{
return shortName;
}
@Override @Override
public String toString() public String toString()
{ {
return shortName; return name;
} }
} }