Angsuman’s Translator Plugin Pro For WordPress 2.x.y BlogsBy Angsuman Chakraborty, Gaea News Network
Monday, August 14, 2006
Translator Plugin Pro provides automatic machine translation of your blog in 13+1 languages - English, German, Spanish, Russian, Arabic, Dutch, Swedish, Greek, French, Italian, Portuguese, Japanese, Korean, Chinese Simplified and Chinese Traditional.
It also comes with lifetime free upgrades and 6 months of free support*. We stand 100% behind our product.
You get all your blog pages automatically translated in 13+1 additional languages which makes your blog instantly accessible to a much wider worldwide audience (around 2.5 billion according to Ethnologue data). Each of these translated pages are on your site like your original pages, indexed by all major search engines, including but not limited to Google, Yahoo, MSN etc. Check pages indexed by Google for our Anaconda Theme site, which uses this plugin.
Translator Plugin Pro is designed to work in wide variety of hosting environment (from shared hosting to big dedicated servers) and restrictions. For example it works with or without curl support (uses fopen), with or without safe mode, empty or specified open_basedir cosnfiguration, any kind of WordPress permalink structure etc. It works on all standard platforms and even on rather uncommon ones likes IIS on Windows.
The plugin can also be deployed as a WordPress widget, thereby eliminating any need to manually modify your templates. You can simply drag-and-drop the translator to display on your sidebar at your chosen location. There is an additional widget to display the statistics. The plugin works perfectly on non-widgetized themes too and provides the same capability through custom tags.
Our motto is to leverage your environment for best capability as much as possible but also provide the same capability, through our hard work (coding) in constrained environments too.
Whatever is your environment, we will work with you to get it running. In 99.5% of the cases it simply works out of the box. For the remaining 0.5% special cases we are here to help you to get it running (free support* for 6 months and unlimited upgrades). See what our customers are saying about Angsuman’s Translator Plugin Pro and our support.
We pre-process and post-process the translated data to ensure as closeness as possible to the original page content and layout. We have tried to provide you the best automatic machine translation within the limits of today’s machine translation technology and in many cases we have overcome and improved upon the translated output. We use four translation engines to provide you with the best possible machine translation. Additionally we provide transparent automatic failover even when one or more engine fails to still serve translated pages as usual.
We re-engineered the plugin to provide nice, search-engine friendly URL’s which seamlessly blends with your site structure. It will work irrespective of your site’s permalink structure or even the default structure.
The translated pages are intelligently cached (configurable) for dramatic performance improvement. In version 5 we have re-written the caching engine for context-sensitive intelligent caching.
Inspite of large amount of functionality, it doesn’t require any configuration (or expertise) to setup and use. Even your grandmother can use it. The Translator options page has been re-designed with Basic and Advanced tabs for easier configuration, for new and advanced users alike.
Please check my blog (on top of right navigation bar) for an example of the plugin (uses Translator Gold with 32 languages).
Get the software today and instantly provide translated versions of your blog in 13+1 different languages.
- Automatic machine translation in 13+1 different languages. Four independent translation engines are used (including but not limited to Google, Babelfish etc.) to get the best possible translation we could find for each language.
- Provides search engine friendly nice url for translated pages which are bookmarkable and belongs to your site. For example if your url is http://test.taragana.net/ then the url of your Portuguese version of your page will be http://test.taragana.net/pt/ and your Japanese version of your page will be http://test.taragana.net/ja/
- Automatic multiple-pages translation. Your user needs to select the language of your choice once and he will be subsequently provided with translated version of all pages of the blog. So he can browse any number of pages within your blog, all automatically translated.
- Bookmarkable. The translated pages are bookmarkable in any browser or in third party tools and services like del.icio.us. They are indistinguishable from any other pages in your site. While browsing your site using a boomark to any translated page enables your user to seamlessly browse your entire site in translated version only. So for example if your user chooses to bookmark Spanish version of a page. Then in future he would be able to view any pages in your site in Spanish without any action on his part.
- Selectable translation engines. You can currently choose between Google & Babelfish translation engines independently for each language. In future we plan to add more engine.
- Selectable translation modes. You can choose between two transaltion mode provided by each engines.
- Selectable url pre-processing. This allows you to fine-tune your translation quality
- External site translation protection. The older translator could be misused to translate pages from other sites and also fetch pages from other sites using your bandwidth. Translator Pro prevents such theft. It uses temporary redirect (good for you) to direct the user to untranslated version of external sites.
- Choice of flag to represent English language. You can choose between American and English flag.
- Can optionally turn-off linkback / attribution to my site. However keeping the linkback would be highly appreciated.
- Portions of posts / pages can be easily excluded from being translated. We also provide a quicktag (aka button) to easily exclude selected blocks of text. It works in both WYSIWYG & text mode.
- Four display formats are provided for maximum flexibility of display. The default format is a long table format which is around 170 pixels wide and 25 pixels in height. You can also display it in short table format, list or even unformatted (for formatting using stylesheet).
- Full customizability. No code change is required. We have worked hard to ensure you don’t have to make any changes to the translator pro code. Any customization can be easily done by using the provided options including multiple display formats and CSS.
- Smaller size. The translator plugin file is compressed to achieve 40% size reduction.
- Replaceable flags. The default flags shipped with Translator plugin can be easily replaced with your own versions. This allows you to create look-and-feel for your blog with your unique flags, makes your translator special from the others.
- Widgetized. Tranlsator Pro can be used as a WordPress Widget, allowing you to place in your sidebar without making any changes to the template.
- (Much) Faster. The translator plugin uses object caching to achieve significant performance improvement. You can configure the duration of the cache (and disable it too). In short your translated pages will load much faster on average.
- Works in intranet / behind firewall.
- curl independentTranslator plugin pro works with or without curl support.
- Security. We prevent the plugin from being used by other sites / blogs to prevent misuse and overloading of your servers.
§ User Guide
- Unzip the zip file provided to you by email.
- Upload the directory (whose name starts with translator_) to your
- Log in to WordPress.
- Click Plugins from the main menu.
- Scroll to find the name of the plugin - Angsuman’s Translator Plugin Pro, and click Activate.
You are almost done. Now you need to make this plugin visible on your blog. There are two simple methods. The first method is available for widget enabled blogs only and allows you to simply drag-and-drop your translator widget to your sidebar from widget configuration panel.
The second method requires you to add a tag in your template where you want to display your translator.
Method 1 - For WordPress widget enabled 2.x blogs
If you have previously installed the WordPress Widget plugin and your theme is widget enabled like Anaconda theme, then you can simply drag and drop Translator widget to your sidebar.
You are done!
Method 2 - For all WordPress 2.x blogs
You need to modify the appropriate template (normally sidebar.php) of your active theme to include the following code anywhere you want:
<?php if(function_exists(’tgCreateTranslatorBar’)) tgCreateTranslatorBar(); ?>
Note: You can use the translator bar anywhere in your template. For example, if you want it to display somewhere in the header then most likely you will have to modify
header.php file of your theme.
To add it to the footer you have to modify footer.php file of your theme. Normally the files named above will be exactly as described. However if you use an esoteric theme which doesn’t follow the convention then you need to consult the documentation for your theme.
Or you can simply email us and we will help you out. Remember:
Now you can view your blog and see the translator bar displayed. Click on some of the flags to see that your pages are being properly translated.
If you would like to make some changes then please read the configuration section below. In any case I think you should at least browse the section to find out all the cool features available to you.
User Interface & Configuration
Note: Please read this section after you have installed the plugin as described above.
Translator Plugin options are grouped into two convenient sections: Basic and Advanced.
The basic section is all that you will probably need. The advanced section is targeted for experienced bloggers and anyone who wants advanced customization of their plugin.
You are welcome to delve into both and tweak as much as you like. Enjoy!
The first section you will notice under the basic section is Statistics. It is divided into Page Hits and Cache sub-sections.
In Page Hits you are provided with the total translation requests made to Translator Plugin so far and then the percentage of those requests which are from humans; the remaining are from bots / automated agents / web spiders / web crawlers.
In the cache section you can see the total pages served from cache, cache hits - translation requests which could be satisfied from cache, cache miss - translation requests which were served by call to translation engine as the page was not in cache. You can expect over time, based on our experience, cache hits to be around 90%.
You can select the display format for Translation flags in this section. In Translator Plugin flags are used as icons for language to translate to. For example you can click on the German flag to translate any page to German. Subsequent pages in the same blog, by following the links, will automatically be translated to German for you. So effectively your user needs to select their language only once. They can also bookmark the page. For example any German user of our blog should bookmark http://blog.taragana.com/index.php/de/ instead of our default home page.
Note: You can always click on the flag representing the base language of your blog to switch back to the untranslated version of your blog. For example, in my English language blog you can click on the US flag (repsenting English language) to switch back anytime to original version of a page on my blog. This provides seamless integration of your original version with the translated versions of your blog.
Translator Plugin Pro comes with four in-build display formats - Table Short, Table Long, List and None.
The Table Short format (default) displays the flag in multiple rows with a maximum of seven flags per row; formatted using HTML table. This looks good on standard 160 px (or more) wide sidebars. It displays an optional attribution.
The Table Long format uses HTML table to display all the flags in a single row. This is better suited for header or footer section. It also, like Table Short format, displays an optional attribution.
The List format displays the flags in a standard HTML List. This is normally used for custom styling of the flags using CSS.
The None format uses the default flow layout for positioning the flags according to available space. This creates a very compact layout. The None format is also useful when you want to position the flags individually using CSS. For example we use the None format to create a dynamic logo for taragana blog network which you can currently see on our test site.
For full customization of the flags you should use the translator API. Translator API allows you to customize every aspect of the display. In fact we developed the standard display format described above using the translator API.
CSS Style Guide
Note: Understanding and using this requires basic knowledge of CSS. It is entirely optional and should be used only by advanced users.
The translator can be extensively styled using CSS. Each flag has an (unique) id which can be used to style them individually. They are as follows:
|Latin Amercian Spanish||flag_es_MX|
- In the long table and short table format the first row has the class - tgTranslatorFirstRow
- In the short table format the second row has the class - tgTranslatorSecondRow. The subsequent rows are successively - tgTranslatorThirdRow, tgTranslatorFourthRow and tgTranslatorFifthRow. This allows you to uniquely style each row.
- The attribution row has the class - tgTranslatorAttribution
- The ul element of unordered list has the class - tgTranslatorList.
You can replace the provided flags with your own set. Simply replace the images in images directory under your translator plugin directory. In other words looks for the images in wp-content/plugins/translator/images directory. The flags are named as flag_[language code].gif. Two exceptions:
1. The American flag is named flag_en.gif
2. The British flag is named flag_br.gif
There is no artificial constraint on image size. You can have any flag images that look nice on your blog.
Note: Smaller image size will be faster to download for your viewers.
Flags representing English Language
We have also provided you with a convenience method to switch flag representing English language. You can decide which country flag (US or UK) you want to use for representing English language in this section.
Attribution / Linkback
You can prevent linkback to Taragana or Translator Pro by selecting “Off” in this section. While we would love a linkback from you, you are fully entitled to turn off attribution / linkback to our site.
Translator Widget Title
Translator widget displays the translator bar and can be used from any widget enabled theme. This simplifies deployment.
In this section you can specify the title of Translator widget display. This is useful when you are using Translator as a widget in a widgetized theme like Anaconda.
Translator Statistics Widget Title
Translator statistics widget displays Translator statistics summary on your blog. Check Simple Thoughts blog for an example.
In this section you can specify the title of Translator statistics widget display.
This concludes description of the basic section.
The advanced section delves deeper into the guts of the translation plugin and has all the fun stuff that gets me tingling.
Translating a page is time, bandwidth and resource consuming task both for the translation engine as well as your server.
Translator plugin caches your page requests so it doesn’t have to repeatedly request translation of the same page over and over again thereby increasing your load and that of the engines for no good reason. A cached translated page can be served almost instantaneously and improves user experience. The caching engine occasionally marks a page as stale and marks it for future refresh based on intelligent staleness determining algorithm. The stale pages are refreshed every 5 minutes (default). You can also change the duration of refresh from Miscellanous->Page Refresh Interval section. You can read more about the caching engine here:
Understanding Intelligent Caching Engine in Translator Plugin Pro / Gold 5.0
Delete page from cache
Clear full cache
You are strongly recomended not to delete all translated pages from page cache. You are instead recomended to delete individual pages from cache, as required.
Clearing the cache places huge load on translation engines which may then even decide to ban your site from future translations. Some engines may block you for life while others block for a limited time period like a day. However it is always better to play safe, don’t you think?
Successive Request Delay Time
Translator Pro has a load-balancing strategy to even out the load on translation engines by delaying successive requests to the same translation engine. The default time is set based on extensive testing of the translation engine limits as it is today. However you may want to increase the time if you face problems with any translation engine or simply to play safe. In any case reducing the time limit is not advisable. The minimum time is set as default to protect from overloading translation engine, which can cause temporary or permanent banning (only Engine 5) of your website by translation engine. Increasing the time too much may affect user experience.
You can also distribute the load by dividing the languages between multiple preferred engines.
Translator Gold has two advanced load balancing strategy.
Load Distribution: Multiple IP Addresses
Many sites (mostly on dedicated and colocation servers, sometimes on VPS too) have multiple IP addresses allocated to the same machine. My site, for example, has 5 usable IP addresses.
In translator Gold you can specify multiple IP addresses to reduce the load on translation engines from a single IP address (of your blog). Most translation engine has built-in load-protection mechanism which limits requests from single IP address within pre-determined time period; on overload it triggers various protection schemes. Specifying multiple IP addresses allows you to reduce the perceived load from your blog to the translation engines because Translator plugin distributes the requests uniformly between these addresses.
Load Distribution: Tor Network
Translator Gold allows you to fetch translated data over anonymizing tor network. This allows you a virtual pool of large IP addresses, thereby reducing the effective load on a single IP address (your own). However Tor network may be less reliable than multiple IP address scheme decribed above and also there may be slightly more delay in fetching the translated pages. However it is still a solid alternative if you don’t have multiple IP addresses. Also pages are cached and failed requests are not cached. So in time your cache will be able to adequately serve most of your needs.
To use the Tor network you need to either setup a host (your server is a very good choice) or use a publicly available tor server. Set the host name (ip address is fine) and port in Proxy settings and set the proxy type as Socks5. You are done!
Translator plugin can also be used on blogs behind the firewall like on corporate intranets by providing the proxy details.
Specify the host and port and select the proxy type as HTTP. If you are not sure about the host and port, please ask your system administrator.
Language & Engine Configuration
In Wordpress you can specify the language of your blog by setting the value of WPLANG in wp-config.php. Please select the language of your blog here only if it is different from WPLANG settings. In any case the settings here will override the settings in WP_LANG for translator plugin.
For non-English blogs Translator Gold is recommended as more languages are available
Translation Engine Configuration
This is the heart of Translator plugin. Here you can select the languages you want to translate your pages to. In Translator Pro you are limited to 14 languages whereas in Translator Gold you have a choice of 32 languages. If you are on a resource constrained environment you may want to activate the languages in small batches.
You can also select your preferred engine for translating to a language. If translation in your preferred engine fails for some reason then the translator plugin will automatically switch to another available engine for the language-pair till it succeeds or it runs out of engines to use.
Read more in Translator Plugin Pro / Gold 5.0: Multiple Engine Failover Support
It is recommended not to use the data method unless absolutely necessary as Google has reduced the quantity of data translated in data mode. Data method is available only with Google engine and while it is faster, choosing the url method is always a safe bet. However for blogs behind firewall only data method is available. We use the data method for preliminary testing. Also for blogs with Adsense/YPN ads, Google with data method enabled should be avoided. It can however be used if you enclose your ads within skip translation tags.
Engine 3 is available only for Translator Gold users. Also the following languages are available only for Translator Gold users - Brazilian Portuguese, Bulgarian, Croatian, Czech, Danish, Finnish, Hungarian, Icelandic, Latin American Spanish, Filipino, Polish, Romanian, Serbian, Slovenian, Swedish, Welsh, Turkish and Latin.
Engine 5 shouldn’t be chosen as the preferred engine as it is sensitive to high load and is the only engine that can ban your site for very long period if you make them angry. It is however fine as backup engine.
Norwegian is available for Pro users only from Engine 5. It is switched off by default for Pro users but can be switched on here. For Gold users Norwegian is supported by both Engine 3 (default) and Engine 5.
Engine 4 (WorldLingo), provides translation for limited data. So it shouldn’t be chosen as the preferred engine unless absolutely required. Also for non-English blogs often Engine 4 is the only choice for certain languages. It is advisable for non-English bloggers to purchase Translator Gold (limited edition so get it now) for getting wider choice of languages and engines.
For K2 based themes you should use Babelfish with URL method, where available, and with pre-process URL enabled. Other non-Google engines are fine too.
If you face any problems with display ads or certain sections of your site then you should enclose such sections with skip-translation tags. Skip translation tags prevent any section from being sent to translation engine and translated (and maybe mangled).
For Translator Pro and Gold we have done extensive testing to identify load limits and error conditions of each engine and it has been configured to keep all of them happy (based on their current limits) and understand and take appropriate actions for error conditions, if any.
Extensions to Include for Translation
Sometimes SEO minded bloggers add an extension to their post pages like .htm or .html using custom permalinks capability of WordPress. In such cases you should use this section to include extensions like .htm or .html for translation.
Page Refresh Interval
With every refresh only one stale translated page in cache is scheduled to be refreshed. Stale pages are translated pages which have been cached but due to some condition (like the post has been changed or it is an index page and new articles have been posted etc.) has been identified by the caching engine as stale.
Unavailable Page Handling
You can selectively turn off the display of any language(s) in Language & Engine Configuration tab. However the translator may be asked to translate pages in which display has been turned off by web crawlers who have cached the url or by humans who have bookmarked the url. in such cases the default action is to provide translation of such pages. However you may choose to either display an error page with HTTP 404 header or (temporary or permanent) redirect to the original (untranslated) page by selecting the option from the list.
Compatibility mode enables using the plugin for WordPress blogs hosted on IIS server in Windows platform. This may negate some of the SEO effect as it uses query based url format instead of nice url format. Don’t use it unless you need it.
The key requirement was supporting cases where both domain.com as well as www.domain.com was used to represent the same blog. We support such cases for free.
You can also use this facility to get a single copy of Translator plugin which will work for your multiple blogs.
1. You will still need to buy separate license for each blog (unless they are of www.blog.com and blog.com variety, pointing to the same blog) or opt for unlimited license.
2. By default you will get one copy of the plugin for each purchased blog, configured to work only for that blog.
§ Uninstallation Guide
- Log in to WordPress.
- Click Plugins from the main menu.
- Scroll to find the name of the plugin - Angsuman’s Translator Plugin Pro, and click Deactivate.
This disables the plugin. You can also delete the directory, whose name starts with translator, from wp-content/plugins directory for permanent removal.
BTW: We don’t expect anyone to ever having to uninstall the plugin, so we would be very curious to know about the reason.
Please purchase* Angsuman’s Translator Plugin Pro here (Cost: 30$) to get the plugin by email:
Note: Please provide your blog url (compulsory; allows us to generate your copy) and email (will only be used to send your copy of the plugin and to contact you in case of any problems in processing your request) to allow us to process your request.
Note: Processing your order may take maximum of one business day. We customize each plugin for your domain to prevent misuse by other sites. We are working to reduce this time.
We spent enormous amount of time and effort to provide you with a high quality product. We stand fully behind the product and commit to support the product for all our users for upto six-months and provide lifetime free upgrades.
WordPress is becoming more and more complex with each release and so are the wide variety of plugins. To give an example the nice permalinks feature is variously implemented by plugins. For example UTW implements it differently than wp-email plugin. And they both do it differently than WP core code.
I have made the plugin to work with both. In the process I realized that such problems can happen in the future with so many plugin author’s going their own way and with newer and often incompatible changes in WordPress code. We want to support such issues in future as and when they arise.
All of these cost time and money. In the past we found we couldn’t provide adequate support for our free efforts. That really hurts us as we highly value our customers and are deeply concerned about their needs.
After much thought and soul-searching we have decided to add a moderate cost to the product to offset our expenses and to allow us to continue to support and enhance it.
Please email your defects and support requests to:
Note: This plugin works and is supported only on WordPress 2.x blogs. We use 2.x API to provide enhanced functionality to this plugin.
Note: We cannot provide (free or paid) support for blogs with adult images / video / content or images / video / content not generally suitable for workplace. Please ask us if you are not sure whether your blog falls in that category.
In short the plugin code is not GPL. We do not allow modification of the source-code, nor do we permit redistribution or reverse-engineering. Please refer to the license page for details.
- What are customers saying about the software quality and support?
- What is automatic machine translation?
- How to enable Translator cache for faster performance?
- What are the benefits of caching?
- Does Translator Plugin Pro require curl support?
- Can Translator be used with safe_mode enabled?
- Can Translator be used with open_basedir set?
- How to use Translator in Windows on IIS server?
- How to select English flag?
- How to return to original (un-translated) page?
- How to turn off link back / attribution?
- Can a single copy be used on multiple domains?
- How to configure display of the flags?
- How to use Translator behind firewall?
- How to configure Translator to use http proxy server?
- How to cache translated pages?
- How to use translator as wordpress widget?
- Is Angsuman’s Translator Pro plugin under GPL?
- Can I modify the source code?
- Can I redistribute the plugin?
- Why is it not free?
- Where can I report defects?
- How can I get support?
- How do I prevent portion of post / page / blog from being translated?
- How can I show some content only in translated pages? or How can I show a message in translated pages (translated in the appropriate language) that the page has been machine translated?
- How can I exclude some content from being displayed in translated pages?
- How to prevent AdSense ads from getting stripped in translated pages?
- Who is Angsuman?