Translator Plugin Pro provides automatic multiple engine failover support. What does it mean to you as a blogger?
First let's understand how Translator Plugin Pro translates your blog. We rely on multiple external translation engines like Google and Babelfish to do the actual translation. We provide several functionalities and filters on top of their raw output and present the processed content as integral part of your own blog. Currently we use 4 translation engines in Translator Plugin Pro and 5 translation engines in Translator Plugin Gold. These engines can sometimes fail due to multiple reasons, some temporary, some requires variety of actions on our part to make it happy again.
We monitor the responses provided by the different translation engines we use. We analyze the errors and take appropriate actions in real-time depending on the error condition. We also pro-actively balance the load on translation engines.
We have done extensive research to identify and test appropriate responses for each type of errors to keep these engines happy about your blog. In other words your blog shouldn't abuse their services. If your blog is popular it is likely to request many pages for translation in quick succession. Each engine has criteria beyond which it trips at which point it can temporarily (for a fixed period as configured by the engine) or permanently (Engine 5 only) ban further translations from your site. We have extensively tested the engine and manage the load to each engine independently. We also take appropriate corrective actions depending on the engine as well as the error condition.
On failure we transparently switchover to backup alternative engine(s) to provide translation. All available engines for that language will be tried till we are successful. If, in very rare cases, all the engines fail we provide a multi-lingual custom error message. From your users standpoint it will be just like any other page; while we may have worked through several engines to provide him with the translation service.
We also provide intelligent caching with our brand-new caching engine to further reduce the load on translation engines and your site. More on intelligent caching below.
In short we have left no stone unturned to provide you with maximum availability of translation services. Translator Plugin Pro is an activate-and-forget plugin. After activation, it continue to silently work without any need for monitoring or maintenance.
Additionally in Translator Plugin Gold we support websites with multiple IP addresses as well as provide Tor support to further minimize the apparent load from your blog to translation engines, thereby significantly increasing the translation service availability of very high load sites; not to mention that we provide support for 32 languages and an additional translation engine for greater failover support.
Continuous availability of translation service is a key objective. Frequent queries to translation engines can overload their services and they in turn can disable translations from your site for short (24 hours) or long duration. We have several features in place to reduce the load on translation engines like, for example:
Translator Plugin Gold comes with premium features for reducing the apparent load on translation engines:
Most popular websites, running on dedicated servers, has multiple IP addresses which can be leveraged in Translator Gold. If you have, for example, 5 IP addresses then you can specify all of these addresses in Translator Gold options which will then be used to distribute your calls to the translation engine. So, for example, if you use 5 IP addresses then the effective load from one IP address will be reduced to 1/5 of the actual load thereby greatly reducing the chance of tripping the high load detectors on translation engines.
We support proxying your request to translator engines through the tor network. This helps to anonymize the translation requests and frees you from load limitations imposed by translation engines on specific IP addresses. We also support HTTP proxying.
Translator Plugin Gold ships with 5 translation engines so if one or more engine fails then the other available engines can takeover the translation load without affecting your site and users.
Inspite of all the protections mentioned above, should any translation engine go down or refuse to serve new translation requests for any reason, we take it offline to prevent it being bombarded with new requests for a period of time which we have determined that it takes to recover. This allows the engine to recover and resume translations again.
Translator Plugin Pro cache was re-designed from ground-up in version 5. Previously we used WordPress' Object Caching Engine (bundled with WordPress) which doesn't work so well in resource constrained sites. Also it didn't serve our need to have semi-permanent cache for translated pages and provide robust caching infrastructure for Translator Pro & Gold moving forward. Our primary design objectives in designing the new caching engine were as follows:
Translation speedup is the primary goal of any caching effort but there is more. Translating a page requires us to submit the content, after pre-processing, to a translation engine like Google, who then sends us the translated version of the page. The content is then post-processed and delivered to the client / requester. This process involves database queries and network traffic, each of which can add up if your site becomes / is popular. The goal of caching is not only significantly speedup delivery of translated pages but also to reduce network traffic and database queries as much as possible.
Availability of service is a key goal. Frequent queries to translation engines can cause overload of their services and they in turn can disable your site for a time period or more, which is clearly undesirable. So not only do we need to speedup translation on your site we also need to keep the translation engines happy by managing their load within their acceptable limits. We have done extensive tests to understand and satisfy the limits of each translation engines we use. We also provide automatic failover support so if one engine fails we move over transparently to another and so on till we are able to satisfy the request or run out of engines (rarely). We have as such provided 4 translation engines for redundancy. It is possible that they may change their limits down the road which is why we have made their configurations accessible from the options panel. Translator Plugin Gold also manages the load on translation engines with multiple IP, tor and proxy support, described before under Load Balancing.
Intelligent caching makes caching more relevant and effective. In WordPress the traditional model of caching is as used in wp-cache 2 plugin. It invalidates the cache on first sign of change and creates it from scratch again. It is very inefficient and ineffective for sites with frequent changes and / or frequent comments. Each new post, updated post, new comment, updated comment etc. will invalidate the cache and start all over again. It is surely an overkill. For example older posts do not change at all when a new post is created or even modified. We developed various ways for optimizing this scenario. The primary objective is to ensure that translated pages are available for all requested content, either by translation (see availability issue above) or from cache, even if the translated page is not always from the latest revision. Certain pages like index pages are prioritized for faster refresh. The cache is continuously refreshed one page at a time in the background. Our intelligent caching engine achieves over 90% cache hits on average. There are technologies in place to ensure that higher priority is given to humans than robots / spiders etc.
Manual Control is provided to individually delete the translated pages from cache or to delete the whole cache (not normally recommended).
The cached pages are compressed in database to minimize space requirements. However since you will have a maximum of 14 times (you can reduce the number by reducing the number of translations you provide) the amount of content, compressed for space reduction, as the original number of pages you need to have space allocated for the MySQL database to store it. If you have limited space for the database then you should either switch hosting provider (I recommend WestHost) or you should reduce the number of translations you provide. None of our clients so far faced any issue with database size, so I wouldn't worry too much about it.