mhando 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.

zvisinei, 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 Bingspeaks for itself.
  • Dropdown widget improved cssit actually looks much better now.
  • Support for Memcachedif 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 cloudsitesthey had x-cache installed for opcode cache, but with no user memory, which caused a surge in logfilesnow fixed.
  • Many more minor fixesWe might count those, but we don’t have enough fingers.
  • Turkish Translation kubudikidza Semih Yeşilyurt.

Tinovimba zvauchasangana kunakirwa shanduro iyi, uye sezvo nguva dzose, waiting for your comments, ideas, suggestions and flames.

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


  1. anoti

    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 🙁

    • anoti

      Hello There,

      Ehe, a bugplease 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

        • anoti

          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 anoti

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

          • anoti

            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 anoti

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

          • anoti

            Ehe, 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_cssI think this will be too much work, so going with the hackerish way is not such a bad idea.

            good night

    • anoti

      Chekutanga, 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 forX translate API Keywhere 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 😉

      Rombo rakanaka

  2. yann anoti

    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?

    • anoti

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

    • anoti

      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. wo – 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. anoti

    Mhoro, first of all thanks for your wonderful plugin. Chepiri, 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 anoti

    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. anoti

    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 mitauro, but is that the same as if it werehostedin 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

    • anoti

      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

  6. anoti

    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?

  7. anoti

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

    Word of cautiondo 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 displaysit will become a white browser screen.

    • anoti


      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.

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

      Rombo rakanaka

  8. anoti

    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?


  9. anoti

    Chekutanga, 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"]Mhoro[/tp] and it will display Bonjour. Or, is there some other way to accomplish this?


  10. anoti

    tsime, I didnt hear anything back. zvisinei, 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.

    wo, 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.


  11. anoti




  12. Stacy & James anoti

    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

  13. anoti


    We were not able to find a supported in-memory caching engine, installing one can improve performance. Check Transposh FAQs




    • anoti

      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.

      Rombo rakanaka

  14. anoti






    • anoti

      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

  15. anoti





  16. anoti





  17. anoti





  18. Giovanni anoti

    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?

    • anoti

      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

kero email haangazozikamwi ichibudiswa. Raida minda anozivikanwa *