80 Language Translation Class

English (what the default text was in the sample code) to Irish.

Matt, I’ve an idea, for the purposes of clearing this up: hardcode your class so that it translates from English to, say, French. Then you can remove the call to Google’s servers which you say is only done for language detection.

Presumably then, Little Snitch would show me no traffic at all - as you say it can’t see your magic “invisible” network traffic.

Call translate.google.com with an encoded url like

http://translate.google.com/?sl=&eotf=0&tl=ga&text=The%20SimTranslator%20can%20automatically%20detect%20the%20source%20language%20if%20one%20has%20not%20been%20specified.%20With%20a%201MB%20size%20limit%2C%20entire%20documents%20can%20be%20translated%20or%20individual%20words%20and%20lines%20of%20text.%20Choose%20a%20foreign%20language%20to%20translate%20this%20text%2C%20and%20press%20the%20translate%20button%20to%20see%20how%20the%20SimTranslator%20works.%20Remember%2C%20not%20all%20fonts%20contain%20unicode%20glyphs%20for%20every%20language%2C%20so%20you%20may%20need%20to%20choose%20a%20different%20font%20to%20display%20the%20translation.%2041%20of%20the%2080%20languages%20will%20work%20with%20most%20standard%20latin%20fonts.%20If%20a%20glyph%20cannot%20be%20displayed%20by%20the%20font%2C%20you%20will%20see%20the%20unicode%20key%20code%20displayed.

Should give you the same results

Actually, in English its connaisseur… French has an o version… derived from connatre… And I’m using a mobile device that auto corrects (and fails quite a bit actually). And I dont know why anyone presumes im ever mad. I don’t get mad it’s pointless… At the end of the day I remember we will all die, and none of it will have mattered in the end.

As for that link… refresh it enough times or go over googles limit (does it work?).

Apologies, correction the Xojo iOS compiler was started in 2012 (NDS) but has been in planning since 2008 (discussion in RB magazine… first mention 2007).

[quote=76595:@Matthew Combatti][/quote]

So what do you intend to do with the encoding issue in your class ?

Working on that :slight_smile: adding an auto detect for fonts as well so the user doesn’t even have to worry about glyphs existing or not :slight_smile:

Great :slight_smile:

BTW : Connoisseur - Wikipedia
Connaisseur is the French spelling :wink:

No better or worse than the app does. But you already knew I knew that would be the case.

As for when iOS was actually started being worked on discussion in a mag isn’t work.
I DO work on the product and DO have access to SVN for the company and I can tell you exactly when we started.
It wasn’t 2008, 2009, 2010 or 2011.
Really

I usually stay out of topics like this one, but curiosity got the better of me and I did some of my own research, and I was pretty surprised by the results. In the interest of going on record for the community to help people avoid making the mistake of purchasing this class, here are my results:

Matt is claiming that his class does NOT use Google translate at all except to detect the language, and that instead it connects to langnet.simulanics.com.

Taking him on his word and working on this premise, I shut down everything else on my computer that generates network traffic, and fired up wireshark. With this tool, I can capture ALL traffic (encrypted and otherwise) that comes into and out of my network interfaces. Then I can inspect every single packet captured to see what data they contain. For encrypted packets, this data will be garbled nonsense. For non-encrypted packets, this data is perfectly readable.

I then sorted through the data looking for any connections to langnet.simulanics.com. This domain resolved to 69.195.124.109 for me, so I simply filtered the packet capture list for either a source or destination of this IP. There were none. Nada. Zip. Zilch. If the translation work is actually performed by this domain, why was there never a connection made?

I received a translation in the demo app, but the app NEVER connected to the claimed domain. That’s odd.

So I further inspected the traffic manually to see what else I had captured - lo and behold, there is a LOT of traffic to / from the IP address 173.194.33.97 (which is a google-owned IP address as confirmed by several DNS lookup tools). And these packets are not encrypted. So I read them.

Here’s a screenshot of one such packet:
(click here to see it full size)

I know that may be a bit hard to read (especially if you are not familiar with Wireshark or packet inspection in general), but the selected packet in this screenshot is a part of the response from Google to a translate request using their own webpage, not the Google API. In other words, it sure appears that this class is throwing the translation work against translate.google.com, by simulating a web browser going to that page, entering the search terms, submitting the request and then parsing the response.

So this leaves me scratching my head a bit… why would Matt claim that his app is using some other service when it is so incredibly obviously and blatantly scraping google? I don’t know anything about google’s terms of service for their translate engine, but I’m pretty sure that this violates it.

I’d love a competent technical explanation from Matt that explains exactly how what is going on here is other than what I (and others) have discovered. Because this appears to be nothing more than lies about what the class does wrapped in diversions to get you to purchase a license to a product that is likely going to wind up getting whoever uses it in some Google hot water. If such an explanation is readily available, I’ll be happy to join in congratulating Matt in the awesome achievement of what he claims he has done. But from where I sit, it appears most of his claims on this product are false.

I guess someone could just update their hosts file to hijack the Google translate domain and return some bogus results to see if his class still works or not… (or even hijack his domain and see if it fails)…

Kimball, you must have missed the bit where Matt said he was magically able to hide network traffic.

I’ve already suggested a two minute change to his code that would immediately prove his claims, but he’s ignored it. He just has to temporarily hard code the language selections. Then, it won’t need to contact Google for language detections. Boom!

It has the same languages as Google. It produces precisely the same translations as Google. It contacts Google. Come on, it’s $40 to use translate.google.com, right Matt? Although, it’s a generous 50% off, if you act fast!

Matt, now that I read your manifesto, I humbly apologize for explaining how difficult it is and how much effort it demands to write language engines. FYI Dragon was not a competitor but acquired by L&H.

How a simple clarifaction question from Gavin can wake up (and keep up in my case as it’s 2:15am in Belgium :slight_smile: a whole Xojo community. Shame on you @Gavin Smith!

Gavin - I didn’t miss it, which made it all the more surprising when I discovered he didn’t even bother using a HTTPSecureSocket for his scraping to at least attempt to “hide” the traffic.

See, if he’d come to XDC and been in my sockets session, he would have realized how important it is to encrypt data at the transport layer… :wink:

Gavin, he might be able to hide the network traffic, but the hosts file translates the domain name to an IP address… I use it to block out ad networks (re-route everything to 127.0.0.1)… So even with the hidden network activity it will still use the hosts file, unless he hardcoded the IP address…

This is very disappointing.

Which ?

sits back, gets popcorn

I’m always disappointed by blatant dishonesty.

I agree. I genuinely find it quite sad. But it needed to be called out as money is being charged for it.

I have no involvement nor interest in this class in any case, but I think you all did a great service to the community. Well done.