From 3b0d1527c22af22304a7886a395b8f5fce902da4 Mon Sep 17 00:00:00 2001 From: "Ian W. ONeill" Date: Mon, 7 Oct 2019 13:55:26 +0100 Subject: [PATCH] chat-translator: add additional languages. chat-translator: easier language selection in config. --- .../ChatTranslationPlugin.java | 21 ++++++++++----- .../plugins/chattranslation/Languages.java | 26 ++++++++++++++----- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java index 3d58db65bb..2d2d2723c5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java @@ -39,7 +39,7 @@ import org.apache.commons.lang3.ArrayUtils; @PluginDescriptor( name = "Chat Translator", 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 ) @Singleton @@ -221,8 +221,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener try { - //Automatically check language of message and translate to selected language. - String translation = translator.translate("auto", this.publicTargetLanguage.toString(), message); + String translation = translator.translate("auto", this.publicTargetLanguage.toShortString(), message); if (translation != null) { final MessageNode messageNode = chatMessage.getMessageNode(); @@ -264,7 +263,15 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener { 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) { @@ -278,13 +285,13 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener try { //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) { client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, translation); clientThread.invoke(() -> - client.runScript(CHATBOX_INPUT, 0, translation)); + client.runScript(CHATBOX_INPUT, 0, translation)); } client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, ""); } @@ -316,4 +323,4 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener this.playerChat = config.playerChat(); this.playerTargetLanguage = config.playerTargetLanguage(); } -} +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/Languages.java b/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/Languages.java index 3ec7b3ad81..05206c40e7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/Languages.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/Languages.java @@ -1,24 +1,36 @@ package net.runelite.client.plugins.chattranslation; +import lombok.Getter; + public enum Languages { - ENGLISH("en"), - DUTCH("nl"), - SPANISH("es"), - FRENCH("fr"); + ENGLISH("English", "en"), + WELSH("Welsh", "cy"), + DUTCH("Dutch", "nl"), + SPANISH("Spanish", "es"), + FRENCH("French", "fr"), + GERMAN("German", "de"); + @Getter + private final String name; private final String shortName; - Languages(String shortName) + Languages(String name, String shortName) { + this.name = name; this.shortName = shortName; } + public String toShortString() + { + return shortName; + } + @Override public String toString() { - return shortName; + return name; } -} +} \ No newline at end of file