Class JoshuaNetworkTranslator
- java.lang.Object
-
- org.apache.tika.language.translate.AbstractTranslator
-
- org.apache.tika.language.translate.JoshuaNetworkTranslator
-
- All Implemented Interfaces:
Translator
public class JoshuaNetworkTranslator extends AbstractTranslator
This translator is designed to work with a TCP-IP available Joshua translation server, specifically the REST-based Joshua server.
If you were to interact with the server via curl a request would look as follows
{code curl http://localhost:5000/joshua/translate/english \ -i -H "Content-Type: application/json" \ -X POST -d '{"inputLanguage": "Spanish", "inputText": "vuelo"}' -v }
Joshua requires input to be pre-formatted into sentences, one per line, so this translation implementation takes care of that.
-
-
Constructor Summary
Constructors Constructor Description JoshuaNetworkTranslator()
Default constructor which first checks for the presence of thetranslator.joshua.properties
file.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isAvailable()
String
translate(String text, String targetLanguage)
Make an attempt to guess the source language viaAbstractTranslator.detectLanguage(String)
before making the call totranslate(String, String, String)
String
translate(String text, String sourceLanguage, String targetLanguage)
Initially then check if the source language has been provided.-
Methods inherited from class org.apache.tika.language.translate.AbstractTranslator
detectLanguage
-
-
-
-
Constructor Detail
-
JoshuaNetworkTranslator
public JoshuaNetworkTranslator()
Default constructor which first checks for the presence of thetranslator.joshua.properties
file. We check if the remote server is available on each translation process. This check is not a remote call, but instead a check for null value within of a local variable represetning the value forjoshua.server.url
, which should be populated within thetranslator.joshua.properties
file.
-
-
Method Detail
-
translate
public String translate(String text, String sourceLanguage, String targetLanguage) throws TikaException, IOException
Initially then check if the source language has been provided. If no source language (or a null value) has been provided then we make an attempt to guess the source using Tika's
OptimaizeLangDetector
. If we are still unable to guess the language then we return the source text.We then process the input text into a new string consisting of sentences, one per line e.g. insert \n between the presence of '.'
- Parameters:
text
- The text to translate.sourceLanguage
- The input text language (for example, "en").targetLanguage
- The desired language to translate to (for example, "fr").- Returns:
- The translation result. If translation is unavailable, returns the same text back.
- Throws:
TikaException
- When there is an error translating.IOException
- See Also:
(java.lang.String, java.lang.String, java.lang.String)
-
translate
public String translate(String text, String targetLanguage) throws TikaException, IOException
Make an attempt to guess the source language viaAbstractTranslator.detectLanguage(String)
before making the call totranslate(String, String, String)
- Parameters:
text
- The text to translate.targetLanguage
- The desired language to translate to (for example, "hi").- Returns:
- The translation result. If translation is unavailable, returns the same text back.
- Throws:
TikaException
- When there is an error translating.IOException
- See Also:
Translator.translate(java.lang.String, java.lang.String)
-
isAvailable
public boolean isAvailable()
- Returns:
- true if this Translator is probably able to translate right now.
- See Also:
Translator.isAvailable()
-
-