I have a lot of text data and want to translate it to different languages.
Possible ways I know:
- Google Translate API
- Bing Translate API
The problem is that all these services have limitations on text length, number of calls etc. which makes them inconveniente in use.
What services / ways you could advice to use in this case?
We used http://www.berlitz.co.uk/translation/ We'd send them a database file with the english, and a list of the languages we required, and they'd use various bilingual people to provide the translations. They also used voice-actors to provide WAV files for our telephone interface.
This was obviously not as fast as automated translation, and not free, but I think this sort of service is the only way to be sure your translation makes sense.
Break your big text into tokenized strings then pass each token through the translator via a loop. Store the translated output in an array and once all tokens are translated and stored in the array put them back together and you will have a completely translated document.
EDIT: 4/25/2010
Just to prove a point I threw this together :) It is rough around the edges, but it will handle a WHOLE lot of text and it does just as good as Google for translation accuracy because it uses the Google API. I processed Apple's entire 2005 SEC 10-K filing with this code and the click of one button (took about 45 minutes). The result was basically identical to what you would get if you copied and pasted one sentence at a time into Google Translator. It isn't perfect (ending punctuation is not accurate and I didn't write to the text file line by line), but it does show proof of concept. It could have better punctuation if you worked with Regex some more.
EDIT: 4/26/2010 Please try it before you downvote, I would not have posted it if it didn't work good.
Use MyGengo. They have a free API for machine translation - I don't know what the quality is like, but you can also plug in human translation for a fee.
I'm not affiliated with them nor have I used them, but I've heard good things.
It's pretty simple, there are few ways:
Here is an example (of second one):
Method:
Method Call:
String translatedText = TranslateTextEnglishSpanish("hello world");
Result:
translatedText == "hola mundo";
What do you need is just get all languages parameters and use them in order to get translations you need.
You can get thous values using Live Http Headers addon for firefox.