Go Back   vb.org Archive > vBulletin Modifications > Archive > Modification Graveyard
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
vB Global Translator - Multiply your indexed pages & put search traffic on autopilot Details »»
vB Global Translator - Multiply your indexed pages & put search traffic on autopilot
Version: 1.7, by Dave Hybrid Dave Hybrid is offline
Developer Last Online: Dec 2013 Show Printable Version Email this Page

Category: Miscellaneous Hacks - Version: 3.8.x Rating:
Released: 06-14-2009 Last Update: 06-19-2009 Installs: 35
Uses Plugins Template Edits
Additional Files  
No support by the author.

vB Global Translator


Note - There are 2 versions of this script depending on your setup. This script is compatible with users running standard vBulletin and vBSEO only and all vB release versions. If you cannot install this I am more than happy to answer support questions.

So what does this do?

vB Global Translator automatically translates your forum into 28 other languages via the Google translate API, stores those translations in a MYSQL database then rewrites new URLs so you end up with 28 new pages for every current page.

So, if you have 10,000 pages, this MOD will translate those pages into 28 languages making a total of 280,000 pages in 28 languages. This results in a flood of international traffic and referrals from the search engines. If you are getting 1,000 visits a day from your 10,000 pages imagine how many referrals you will get from 280,000 pages!

The current languages this MOD works with are all supported by AdSense so you can expect your income to rise accordingly. I have this running on a 20,000 page forum and after a few months I have more than doubled my search engine traffic.

How do I Install?

Note - Please make sure you have CURL enabled on your server, it will be listed in you php.ini file. If in doubt ask your host.

First download the relevant package below for your setup.

Next you need to add a new MySQL database to your domain to store the translated pages. Open the database in phpmyadmin or similar and import the db.sql file to install the database tables. Once you have done that you need to select the 'wt_cache' table on the left then 'operations' from the top menu and change the storage engine to InnoDB, then click Go.

Add your new database details to translate.php then, if your forums base language is different to English, change your country code. Otherwise ignore this step.

Find:

Code:
REMOVED
Change en to:

Code:
REMOVED
Next save translate.php and upload that, translateflags.php and overloadcache.txt to your forum root, so if your forums are in a /forums/ folder upload these files there. Upload the flags folder to your domain root, thats the domain root.

CHMOD overloadcache.txt to 777

In your vBulletin admin panel add a new plugin with the following settings.

Hook Location: global_complete
Title: vB Global Translator
Execution Order: 5
Plugin PHP Code:

Code:
REMOVED
Save the plugin and activate.

In your vBulletin admin panel add another new plugin with the following settings.

Hook Location: global_start
Title: vB Global Translator Flags
Execution Order: 5
Plugin PHP Code:

Code:
REMOVED
Save and activate.

Finally add the code below to your template so the flags to select languages appear. This is typically the header, navbar or footer so that they display on every page.

Code:
REMOVED
Load Issues:

This script is can be quite server intensive for large sites. As you are adding links to all of these new pages from all of your current pages the search engine bots will crawl these 1,000's of new pages fast. As the MySQL trys to deal with the many, many translations and querys I have seen my server load spike a bit.

To combat this we have written in a condition that if server load is more than 1.5, the cache setting will disable and pages will be read live from the Google API and no database writing will take place.

If you feel this setting too high/low you can change it by finding the variable below in translate.php and editing accordingly. The only reason to change this is if - A) You are on a slow server and it is overloaded/crashing or B) You have a very fast server and it can handle more, this will mean your site will get fully cached faster resulting in faster page load times when people re-visit the translated pages.

Code:
if(floatval(getServerLoad()) >= 1.5)
One final thing to remember is while your site is being cached and data written to the new database read access times to already cached pages may vary. Uncached pages need to be translated and this can take time when translating a fresh page. Cached pages may load fast or slow depending on whether your server is under load or not as when under load read access from the database is disabled. You just need to be patient and wait until your site is fully cached which will vary between site size, server spec and how often search bots crawl your pages.

Please rate and click install

THANK YOU!

Version History:

v1.7

* Removed ioncube encryption to bring script inline with vBulletin.org rules

v1.6

* Fixed nofollow block on flag links for users with vbseo sites
* Fixed adsense ads showing for translation services etc. by adding section targeting ignore tags

v1.5

* Fixed database speed issues by using InnoDB instead of MyISAM
* Code encrypted with ioncube

v1.0

* Script base version

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #272  
Old 06-25-2009, 10:14 PM
NLP-er's Avatar
NLP-er NLP-er is offline
 
Join Date: Aug 2008
Location: Wrocław
Posts: 1,353
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

And another problem - my site is in polish, I set $fl = 'pl'; but when hitting polish flag instead going to same page it translates it From polish to polish - it looks awful and also polish special letters disappears (i see rectangles instead).
Reply With Quote
  #273  
Old 06-25-2009, 10:16 PM
NLP-er's Avatar
NLP-er NLP-er is offline
 
Join Date: Aug 2008
Location: Wrocław
Posts: 1,353
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sorry for spamming - I have 1st at night right now and it's hard to think

But it's best time to do things like installing your mod

So next thing - is it possible to also translate vbSEO links?
Why after translation main page all links goes to normal languege? Can you make those going to actual language?
Reply With Quote
  #274  
Old 06-25-2009, 10:17 PM
Dave Hybrid's Avatar
Dave Hybrid Dave Hybrid is offline
 
Join Date: Mar 2007
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by NLP-er View Post
Installed

But have a problem - with special letters. In Polish we have ąęśćł?żź an words with those are not translated, just appears without this letters.

So "Społeczność" is shown as "Spoeczno" instead of beeing translated to "Society" or "Community".

I'm pretty sure that google should translate it, and I think that this is some encoding issue. Any solution?
So your base language is Polish and when transalting to all other languages some polish words are skipped, correct.

What about on my test site going from english to polish, are the words correct?

http://www.blogboost.org/showthread.php?t=1&hl=pl

Thanks.
Reply With Quote
  #275  
Old 06-25-2009, 10:18 PM
Dave Hybrid's Avatar
Dave Hybrid Dave Hybrid is offline
 
Join Date: Mar 2007
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by NLP-er View Post
Sorry for spamming - I have 1st at night right now and it's hard to think

But it's best time to do things like installing your mod

So next thing - is it possible to also translate vbSEO links?
Why after translation main page all links goes to normal languege? Can you make those going to actual language?
No, and there is no need, this has been discussed before.

If the script did that it would translate your registration, login everything and that would cause problems.

This translates pages for bots and traffic, not users.
Reply With Quote
  #276  
Old 06-25-2009, 10:21 PM
Dave Hybrid's Avatar
Dave Hybrid Dave Hybrid is offline
 
Join Date: Mar 2007
Posts: 463
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by NLP-er View Post
And next thing - when we solve this how to flush all the cache, so it will be translated again but correctly??
The script does this automatically.

I have noted all your other issues and agree, they will be fixed in next update, after we finish improving the database speed for large sites.
Reply With Quote
  #277  
Old 06-25-2009, 10:29 PM
NLP-er's Avatar
NLP-er NLP-er is offline
 
Join Date: Aug 2008
Location: Wrocław
Posts: 1,353
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dave Hybrid View Post
So your base language is Polish and when transalting to all other languages some polish words are skipped, correct.

What about on my test site going from english to polish, are the words correct?

http://www.blogboost.org/showthread.php?t=1&hl=pl

Thanks.
Not some words ony those which have special letters like ąęśćł?żź. Many languages has such.

I also sow in code that actual language is skipped during translation, but still something goes wrong - special letters disappears and result is like in wrong encoding, so I think that even skipped encoding is changes - maybe in headers. It should be just same link under flag without hl parameter and then we will have no problem with that. But still with translation of words with special letters.

Speed is really awful, but I still think that its good idea - after cache it will give better places in google (i think so) and maybe better clicks in advertisements, because I will not have to cut off links about same theme - in other countries it's not my competition :P So there will be more good advertise in adSense.

Great job and waiting for fast bug correction :up:
Reply With Quote
  #278  
Old 06-25-2009, 10:33 PM
NLP-er's Avatar
NLP-er NLP-er is offline
 
Join Date: Aug 2008
Location: Wrocław
Posts: 1,353
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dave Hybrid View Post
What about on my test site going from english to polish, are the words correct?

http://www.blogboost.org/showthread.php?t=1&hl=pl
It's correct.

As I wrote I think there is encoding problem. You have everything in UTF8 so it is ok to show any language. But when someone starts i.e. from ISO-8859-2 and You send it to Google telling that it's in utf8 then its gibberish for google and such strange thing happens... It should recognize correctly start encoding.

Also this is probablu cuse of strange behaviour with translation fomr polih to polish - translation is skilled, byt encoding written as utf8 even if it was not parsed to utf8, but stayed in ISO-8859-2...

Correction in meta is still charset=ISO-8859-2, so I suppose that not everything is skipped during translation... I will look in code, but suppose that it translates to utf8, but in meta stays charset=ISO-8859-2 and thats the problem...
Reply With Quote
  #279  
Old 06-25-2009, 11:14 PM
NLP-er's Avatar
NLP-er NLP-er is offline
 
Join Date: Aug 2008
Location: Wrocław
Posts: 1,353
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I solved my problem with translation from polish to polish - simply edited translateflags.php and removed all " . '?hl=pl'".

If you make $fl global and import translate.php to translateflags.php you could check and don't add param hl for default language - this solves the problem in generic way.

After all I just removed whole polish flag - all links are pushing back to polish so what for?...
Reply With Quote
  #280  
Old 06-25-2009, 11:46 PM
NLP-er's Avatar
NLP-er NLP-er is offline
 
Join Date: Aug 2008
Location: Wrocław
Posts: 1,353
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

And that's why we have problem with translation from polish to polish - even if it's skipped:

Code:
// Enable UTF-8 characters 
if(isset($_GET['hl'])) 
{ 
header ('Content-type: text/html; charset=utf-8'); 
}
From vB Global Translator - you hange encoding, and then skip translation in callback() - you can also here check does hl != fl (assuming that fl will be global) and only then do your things. Now even when translation is skipped some other things happens - reminders for style and script...
Reply With Quote
  #281  
Old 06-26-2009, 12:27 AM
NLP-er's Avatar
NLP-er NLP-er is offline
 
Join Date: Aug 2008
Location: Wrocław
Posts: 1,353
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hie hie - I solved problem for you - where is avard

To solve problem with translate words with national signs like ąęśćł... you have to reencode it first to utf8 before send to google. So it is enough to set global variable i.e. $defEncoding and then change in translate.php this line:

Code:
@curl_setopt($ch, CURLOPT_URL, "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=".urlencode($fl.'|'.$tl)."&q=".urlencode($text));
To this one:
Code:
@curl_setopt($ch, CURLOPT_URL, "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=".urlencode($fl.'|'.$tl)."&q=".urlencode(iconv($defEncoding, 'utf-8', $text)));
iconv($defEncoding, 'utf-8', $text) instead of $text

Of course this works assuming that all pages have same encoding - if not it must be parsed from meta.

Now - sleep it's 3:27 at night in my place
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:19 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04940 seconds
  • Memory Usage 2,336KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (9)bbcode_code
  • (5)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete