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. #1 by DDART on November 29, 2011 - 7:18 am

    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 :(

    • #2 by ofer on November 29, 2011 - 7:42 am

      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

      • #3 by DDART on November 29, 2011 - 10:10 am

        Thank you! Yes this is debug code! But now displays listbox and I want to display flags. How to do it wrong so that flags are displayed.

        • #4 by ofer on November 29, 2011 - 12:15 pm

          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'));

          • #5 by DDART on November 29, 2011 - 12:39 pm

            Thank you!
            Everything has worked perfectly :)

          • #6 by Matt on November 29, 2011 - 12:45 pm

            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

          • #7 by ofer on November 29, 2011 - 8:45 pm

            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

          • #8 by asf on November 29, 2011 - 1:06 pm

            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.

          • #9 by ofer on November 29, 2011 - 11:43 pm

            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

  2. #10 by Giovanni on November 29, 2011 - 9:55 am

    Thanks for the work you do for us.
    Can you clarify where to find the API KEY to insert the plugin?
    Thank you.

    • #11 by ofer on November 29, 2011 - 12:08 pm

      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

  3. #12 by yann on November 29, 2011 - 4:51 pm

    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?

    • #13 by ofer on November 29, 2011 - 8:46 pm

      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

  4. #14 by Fabrice Meuwissen on November 29, 2011 - 11:10 pm

    so better to wait for the new 0.81 version ? if we don’t want to patch manually ?

    • #15 by ofer on November 29, 2011 - 11:25 pm

      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…

  5. #16 by Ezio on November 30, 2011 - 1:41 am

    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?


    • #17 by ofer on November 30, 2011 - 7:01 pm

      Please use the contact form and we’ll work with you on fixing this, probably a new conflict with other plugins

    • #18 by Thomas on November 30, 2011 - 9:44 pm

      Ezio, can you check if the popup window is now displaying at the end of your page without style?

  6. #19 by Matt on November 30, 2011 - 7:53 am

    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?

    • #20 by ofer on November 30, 2011 - 7:00 pm

      You need to change the code that called the widget, it was explained above

  7. #21 by Cristina on November 30, 2011 - 9:59 am

    Hello, I just installed the new version 0.8.0, but now nothing works… do? thanks!

    • #22 by ofer on November 30, 2011 - 7:02 pm

      Please contact us directly and we’ll try to fix it

      • #23 by Cristina on December 5, 2011 - 12:54 pm

        Thanks for your whole team: I solved the problem canbe JQuery and the script that connected :)

  8. #24 by deborah gamble on November 30, 2011 - 4:07 pm

    Transposh doesn’t display properly in version 0.8.0 Is there a fix?

    • #25 by ofer on November 30, 2011 - 7:05 pm

      Hello there, seems like a CSS issue, contact us directly to work on a fix

  9. #26 by Glenn Newland on November 30, 2011 - 5:44 pm

    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

    • #27 by ofer on November 30, 2011 - 7:08 pm

      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

      • #28 by Glenn Newland on December 2, 2011 - 9:56 am

        OK Ofer, I have contacted you directly. Subsequently, I have also removed Disallow: /index.php/* from my robots.txt file. Maybe this was the cause?

        • #29 by ofer on December 2, 2011 - 10:06 am

          No, the cause is missing database tables, I have written to you directly about the issue with how to solve it.

  10. #30 by Charlie on December 1, 2011 - 12:38 am

    Hi Transposh peeps,
    Great update. Is there a way of making the flags any bigger? They look a bit lost on the white background.
    Thanks as always.

  11. #32 by limos on December 1, 2011 - 6:01 am

    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 :(

    • #33 by ofer on December 1, 2011 - 12:25 pm

      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

  12. #34 by Anders on December 2, 2011 - 10:53 am

    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?

    • #35 by ofer on December 2, 2011 - 11:29 am

      Your theme is loading a jQuery1.3.2 (which is ancient), fix it and will be so very happy

      • #36 by Anders on December 2, 2011 - 1:18 pm

        Thanks for reply! Do you have any idea how to do that?

        • #37 by ofer on December 2, 2011 - 3:21 pm

          Change theme
          Edit current theme files to remove the include (probably in header)
          Delete the file itself or replace it

  13. #38 by limos on December 3, 2011 - 6:39 pm

    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.

    • #39 by ofer on December 4, 2011 - 8:19 am


      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

  14. #40 by Jijo Sunny on December 4, 2011 - 6:25 am

    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!

  15. #42 by Tom on December 4, 2011 - 10:28 am

    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?


  16. #43 by Fernanda on December 6, 2011 - 3:02 am

    Has someone having the same problem?
    It does not translate anymore

    • #44 by ofer on December 7, 2011 - 1:10 am

      If you still have problems, don’t hesitate to use the contact form on this site, and we’ll do our best to help

  17. #45 by Tom on December 6, 2011 - 5:23 am

    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.


  18. #46 by wukungfu on December 6, 2011 - 4:12 pm

    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 該如 請問?

    • #47 by ofer on December 7, 2011 - 1:08 am

      Hello There,

      My guesses will be problems with memory, or double gzipping issue

      Good luck

  19. #48 by Stacy & James on December 6, 2011 - 5:55 pm

    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

  20. #49 by wukungfu on December 7, 2011 - 9:49 am

    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

    • #50 by ofer on December 7, 2011 - 12:02 pm

      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

  21. #51 by wukungfu on December 7, 2011 - 1:09 pm


    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!

    • #52 by ofer on December 7, 2011 - 1:28 pm

      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

  22. #53 by wukungfu on December 7, 2011 - 1:26 pm

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

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

    ^ ^ Xie Xie 幫忙 斷的 你不

    • #54 by ofer on December 7, 2011 - 1:30 pm

      You can add them if you wish, follow instructions on their appropriate sites, but for now this is not needed

  23. #55 by wukungfu on December 7, 2011 - 2:02 pm

    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

    • #56 by ofer on December 7, 2011 - 2:24 pm

      That’s because your theme is loading a very old jQuery (1.3.2), so edit it and see that it will work

  24. #57 by wukungfu on December 7, 2011 - 2:27 pm

    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 這麼

  25. #58 by Giorgio on December 7, 2011 - 3:38 pm

    Happy ….get it to work …

    Beautiful plug-in ….

    Great job Ofer…


  26. #59 by wukungfu on December 8, 2011 - 2:11 pm

    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 你

  27. #60 by Angel on December 11, 2011 - 1:24 am

    The spaces before and after bolded text disappear in the translations.

    Can you see it here?

    • #61 by Angel on December 11, 2011 - 1:28 am

      well, i think is using the strong tag instead the bold

    • #62 by ofer on December 12, 2011 - 1:33 am

      I actually think it should work fine, no reason it should not, please provide a url where it is not

  28. #63 by Angel on December 12, 2011 - 8:22 pm

    You can see in
    and in all translated pages that the first “strong” sentence is with the error, but in
    (the original)
    is correct

  29. #64 by Giovanni on December 13, 2011 - 10:26 am

    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?

    • #65 by WWWDN on December 29, 2011 - 11:59 am

      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?

(will not be published)