Version 0.8.0 – Attack of the APIs

When APIs fight

Well ahead of the deadline posed by Google Translate API to stop working, we were finally able to compile this new release. This one followed a long period of problems that were presented by the older version, mainly because of the fact that Google decided to pose limitations on usage before their deadline which caused the previous versions support requests to surge to new heights. The Google change also triggered an API limit in the Bing translation API, since users were switching engines, which overloaded the Transposh hard coded API key for Bing.

However, we survived this period to provide you with our latest and greatest version. This version fixes these problems be providing a bypass (Proxy for Google and temp keys for MSN) and it also allows you to use your own key directly (thanks to Randy from spyware help center for providing us with his key for testing) which will take precedence over those other methods. While doing this we were able to dramatically improve the infrastructure of the plugin, changing the way AJAX calls were performed to a method that is native to WordPress (e.g. if your admin page works, it should probably work as well). While doing that we were able to reduce javascript code needed for the backend while allowing the translate all feature to work much faster (and supporting Apertium too!).

At this point we had a solid version, which seemed like a good thing to release, but no, we had to have some other features in, so we finally decided to tackle the issue of multiple widgets support (and title selection too, yippee!). Seems quite straight forward? but no, this caused a major rewrite of our widget infrastructure as well. Actually improving it quite drastically with changing the way css was added, and the way the widgets notified the servers of change in language (we now avoid a useless POST call to the server). While writing that we were lucky enough to stumble upon a PHP5.3 to PHP5.2 incompatibility issue with a set of other problems which held our release back another week. We want to thank the many users that have put up with our beta releases and helped us find problems that were hidden under layers of code and complexity.

We also took this opportunity to change our terms slightly, if you are displaying Google ads from AdSense on your translated pages, we will take 1/1000 of that space for use with our own adsense code, so if Transposh is helping you generate a revenue of $10K you will be buying us coffee! So thanks! To clarify things a bit, we don’t create additional ad space on your page, and we won’t insert any ads or change your layout, if you have no ads, we do nothing. If you think that this is asking too much, you may simply delete our plugin, whistle a soft tune, and be on your way. If you want a commercial license, we don’t sell them yet, but they’ll probably cost more.

Other changes to this version include:

  • Added Catalan and Hindi support for Bing – speaks for itself.
  • Dropdown widget improved css – it actually looks much better now.
  • Support for Memcached – if APC and other opcode caches were too much for you, now you may use memcached and have a lot of fun.
  • Better 404 page handling (don’t create new links to non-existing pages) – meaning the google crawler will hassle your site less.
  • Fix caching on rackspace cloudsites – they had x-cache installed for opcode cache, but with no user memory, which caused a surge in logfiles – now fixed.
  • Many more minor fixes – We might count those, but we don’t have enough fingers.
  • Turkish Translation by Semih Yeşilyurt.

We hope you’ll enjoy this version, and as always, waiting for your comments, ideas, suggestions and flames.

P.S – Tested on WordPress 3.3 beta4, works great.


  1. says

    Short code call transposh widget does not work and causes fatal error –

    – Fatal error: Call to undefined method transposh_plugin_widget:: transposh_widget () in on line 407

    How do I fix this? The whole site is not working after the update because of this error :(

    • says

      Hello There,

      Yes, a bug – please replace the 407 line with:
      $GLOBALS['my_transposh_plugin']->widget->widget($args, $instance);
      and try again,

      It might also be worthwhile to know that you can send a param now defining the look of the plugin inside the $instance variable

        • says

          SInce I guess you are calling it like:
          You should now call it something like:
          transposh_widget(array(), array('title' => 'Translation', 'widget_file' => 'flags/tpw_flags.php'));

          • Matt says

            Hi I’m having the same problem. Where do I locate 407 line so I can replace it with the above debug code please? Thanks

          • says

            its in the transposh_widget.php in the wp directory of the plugin, if you can’t manage, use the contact us form on this site and we’ll send you a fixed version

          • asf says

            Thanks, but how to load CSS?
            I use transposh_widget(array(), array(‘title’ => ‘Translation’, ‘widget_file’ => ‘flags/tpw_flags.php’));
            Flags are now, however, does not load tpw_flags.css.

          • says

            Yes, this is a tricky part,

            there are two ways to handle this, one is that I will think of some way to correct it (clueless) and the other is to add the widget to a sidebar you are not displaying which will force the addition of the css.
            This code was indeed quite tricky because now css is added (and aggregates) for all active widgets, and there is no way to know for sure which sidebars will display on which page, so active widgets are considered.
            an alternative way will be to force the addition of the correct css in the actual correct place in the execution of the page, which means adding an action on wp_print_scripts and for which executing the widget class add_transposh_widget_css … I think this will be too much work, so going with the hackerish way is not such a bad idea.

            good night

    • says

      First, I will clarify that you currently do not need any keys and everything will work.
      I can tell you that the best way to find the keys is to use a search engine to find them, just look for “X translate API Key” where X is the name of your favorite one,
      I am not posting direct links because:
      1. They constantly change their urls, and don’t bother to update anybody, so I don’t want to mislead future readers
      2. I am not getting paid for referring to them, nor do I think it is needed that you do that
      3. I am being a bit lazy 😉

      Good luck

  2. yann says

    Really much more quick, congratulations.
    Nevertheless, I have a problem to create a sitemap who will consider all the languages. Do you have a solution for this problem?

    • says

      There is a patch available for Google XML Sitemaps plugin, and also – Version 4 beta of that Plugin needs no patch. You can find the patch on our trac site

    • says

      I promise there will be new bugs in 0.8.1 😉 but seriously, you can write me and I’ll send you a patched version, or patch it yourself. Also – most users are not using this feature, which can also be replaced by placing a widget copy in a sidebar and instead of inserting the widget code directly, inserting the sidebar…

  3. says

    Hello, first of all thanks for your wonderful plugin. Second, after the last update I’m unable to edit my translation. When I clich the edit button the page change in translate mode but I don’t have any popup window to modify. Can you help me?


  4. Matt says

    Hi there. I’ve corrected the bug but I can’t change the dropdown back to flags. Do I add the above code to the bottom of the widget.php or a different file?

  5. says

    Hi guys,

    I am greatful for all the work you have put into the new release, considering how hard the google API crisis might have been to deal with at first. WELL DONE!

    What I am curious about is how can I ensure my site is being listed in international search engines, in multiple language? I mean, thanks to transposh my site is now readable in 3 languages, but is that the same as if it were “hosted” in thoe languages or do I need to do something (like cache each page or create a multisite?)

    Thanks for the new release, and API fix.

    The Red Bicycle

    • says

      Hello Glenn

      You have a problem on your site which will not allow search engines to see your sites, my guess is a database issue, but it needs testing, contact us directly for working on fixing this

  6. says

    The new plugin broke my site after installing it today. I wish I had not upgraded because my entire site is down now if I enable the plugin :(

    • says

      Please try re-installing the plugin from, a fix for a breakage for users of the widget function was deployed, you can also contact us directly and we’ll help

  7. says

    Cant edit text with ver. 0.8, whats wrong?

    At this site have installed the plugin but can not edit any text at all?

    Have another site with an erlier version that works good, I have usel same settings with this one (0.8), but cant edit.

    I have insert à api key from Google (for browser)

    Anyone who knows?

  8. says

    Re-installed .80 version per instructions, and the site is still 100% broken if I enable the plugin.

    Word of caution – do not install this version, it may break your site like it did mine.

    I deleted the plugin folder, unzipped a fresh copy of 0.80 and still the entire site goes belly up. Nothing displays – it will become a white browser screen.

    • says


      I agree, never install any upgrades, everything might break, but to your point, look at the FAQ, this is probably the memory limit issue, but not that we see a reason why it should be connected to the upgrade.

      Now, if you want to get this issue resolved, try contacting us directly, we normally try to help. Sometimes we don’t

      Good luck

  9. says

    Thumbs up guys!
    The plugin is playing perfect than never before!
    Few things to clarify:
    1. Could you please explain how to add translated pages to sitemap? (I didn’t get it when you said about it in the previous comments).
    2. Is this okay with WP Super Cache?

    Thank you!

  10. says

    First, let me say, you have a great plugin. I am in the USA, working on a directory site in Morocco. The default language on the site is French. On this site, businesses may add a listing to the directory (standard post type) using a different language. For instance if a business were to add a listing in English, the plugin will translate the post (listing) into all the active languages, except the default language (because it believes it is French?). In other words, the English version and the French translation are both actually the same English version. The site owners want all of the posts to display in the default language; and be available in each of the active languages. Is there a shortcode to wrap the entire listing in, so it will display in the default language? (eg [tp translate="fr"]Hello[/tp] and it will display Bonjour. Or, is there some other way to accomplish this?


  11. says

    Well, I didnt hear anything back. However, I did figure out how to accomplish what I wanted to be able to do. Simply wrap the content in a div tag with a class of mylang.

    Also, FWIW, for anyone looking through the comments for any information on whether or not this plugin will translate custom post types. Even though the plugin does not recognize a theme’s custom post types, you can convert the plugin to work with custom post types, fairly quickly. You need to edit two files. You need to edit the on_ajax_tp_translate_all() function in transposh_admin.php and the on_admin_menu() function, in transposh_postpublish.php.


  12. says

    I first used this,Feeling is a great plug-ins.

    But,I am currently experiencing a problem,
    After installation,All of the pages appeared:
    Mistake 330 (net::ERR_CONTENT_DECODING_FAILED)

    What we resolve 該如 請問?

  13. Stacy & James says

    millions thanks Ofer for sharing your project.

    Apart from straight translation it does accept multi-languages domains if more than 1 default language is used in a domain.

    Thanks also for private help for small troubleshooting we had.

    all the best

  14. says

    Hello,Solution to our problem 找方 return current.

    I would like to ask the opening,會 appearance:
    “We were not able to find a supported in-memory caching engine, installing one can improve performance. Check Transposh FAQs”
    I have to ignore it,Shi made the return required 利運 處理 它才 以順 accepted?


    Other,I currently use a fixed address is a numeric type setting,范例:
    And set net effect of 這樣 嗎 會有?

    Look forward to quickly use the ~ Thank you for your help

    • says

      To your questions:
      1. You can safely ignore this warning, it only regards performance, the plugin will work without this
      2. The permalink structure will be kept.

      Good luck

  15. says


    About the error:
    Mistake 330 (net::ERR_CONTENT_DECODING_FAILED)

    ^ ^ After completion 來我 GZIP-關閉 就 resolution.

    Now successfully opened the plug-in,
    But I do not see in the sidebar like you translation tool,
    How to plug into my sidebar?

    Xie Xie 你,I feel quick success!

    • says

      Hello There,

      To put the plugin in the sidebar, go to your appearance menu and drag the transposh widget to the sidebar, choose the widget style you want and the title and that’s it

  16. says

    I see the background set to fill in:
    MSN API key
    Google API key

    请问 我 该去 哪边 申请 与 MSN GOOGLE API API?

    ^ ^ Xie Xie 幫忙 斷的 你不

  17. says

    Thank you,以顯 示了 於可 end.

    But,Why did I choose another language (for example: English),Yes transliteration under surface 卻沒 譯呢 page?

    My website:

    Thank you for the help ^ ^ great

  18. says

    I am sorry!

    I just had a sidebar plug-drag,
    I can use my own computer to see,
    But for other computers to use Shique see.

    什麼 這是 for?

    I am sorry,Multi-issue 這麼

  19. says

    Sorry,Can you please help me find my page is the problem?

    对于 jQuery,I have slightly adjusted.

    Currently enabled plugins,However the page, the article is not a complete translation,
    What we resolve 該如 請問?

    Xie Xie 你

  20. Giovanni says

    I’d like to continue to use your great plugin, but this sends the server on overload.
    I installed memcached and W3 Total Cache (only database cache enabled), but the results are disappointing.
    If active Transposh on a blog having 7.000 posts, this alone is enough to crash the CPU.
    Any suggestions?

    • says

      what are your server specs my budget server handles 3 huge websites with 20K+ posts each with transposh installed. Perhaps try a reverse proxy like Nginx?

Leave a Reply

Your email address will not be published. Required fields are marked *