GTS Translation Plugin
Add to ListThe GTS Translation plugin provides human quality translation by allowing you to combine automatic translation and human post-editing (crowdsourcing). Your blog content is initially translated by our translation server. The content is then post-edited by human translators through our online editing system. You can use the GTS community of translators, or you can assign the post-editing to your own community of translators to maintain complete control of the process.
When you use the GTS Translation plugin, translated content is cached in your WordPress database and indexed by search engines. This will increase the traffic to your website and grow your international readership.
Features:
- Guaranteed to increase your traffic by at least 30% after 2 months; some customers have seen over 100% increase in traffic
- Supports over 30 languages
- Uses private, secure translation server
- Publish translated content immediately or following review
- Crowdsourcing: create your own community of translators or use our community
- SEO: translates Permalink URL names and meta tags
- Custom online, side-by-side editor makes post-editing easy
- Translated posts can be retweeted
Uninstalling
Simply click the “Delete” link in the plugin management window. This will delete all of your translated data, so
please be careful!
Virtual Host Setup
How to setup the Virtual Host feature on the GTS Plugin
By default, the translated versions of your website/blog resolves to a URL address which is a subdirectory of your site’s URL address. For example,
the Spanish version of your site resolves to http://mywebsite.com/language/es.
With the GTS Translation Plugin Virtual Host feature you can publish translated versions of yor website/blog under a separate subdomain or top-level
domain (TLD). So for example, if your blog is www.mywebsite.com you can serve the Spanish version from www.mywebsite.es. Alternately, you can use
subdomains (e.g. es.mywebsite.com) so that you don’t have to buy a domain for each language.
To implement the virtual hosts feature, follow these steps:
1. Configure DNS
For Top Level Domains:
- Register your new domain (e.g. www.mywebsite.es.) with a recognized domain registrar.
- In your DNS zone, set the A record for www.mywebsite.es to point to the IP address of your web server.
For Subdomains:
- Create a CNAME alias for your web server (e.g. es.mywebsite.com)
How to complete these steps will depend on your hosting provider. If you get stuck, please follow up with your support team.
2. Configure your Web Server
Please note that all of the translated blogs will be hosted from the same WordPress installation as your current blog.
For Hosted Blogs:
Your hosting provider will provide a control panel to map a hostname to a Document Root. For each translated host name, enter the exact same Document
Root as your blog.
For Self-hosted Blogs:
These instructions are only valid for Apache. If you use IIS or another web server, please consult the relevant documentation.
First off, you need to be set up with Name Based Virtual Hosts (http://httpd.apache.org/docs/2.0/vhosts/name-based.html). Once you have your blog’s
virtual host set up, add the new hostname to the ServerAlias directive.
<VirtualHost *:80> ServerName www.mywebsite.com ServerAlias www.mywebsite.es DocumentRoot /path/to/wordpress/install # Other configuration here... </VirtualHost>
If you have multiple aliases, remember that the ServerAlias can be a list or can include wildcards…it can save time!
3. Configure the GTS Plugin
This is the easiest part:
- Go to the “GTS Settings” admin page.
- Enter the host name in the “Virtual Host” input next to the desired language.
- Click the “Save Changes” button.
Voila, translated links will point to your new host!
Security
While providing high quality translation with our crowdsourced post-editing functionality, it’s of the utmost importance
to ensure the security of your blog. We provide functionality that is out-of-band of the traditional WordPress publishing
cycle. As such, our plugin adds a hook into your blog that allows GTS to programmatically update the translated content
in your local WordPress database. We’ve put a lot of thought into ensuring that our system can use this hook while locking
it against any potential malicious users.
The first step to securing our system is to make sure that it’s really you and your blog requesting that your blog be
signed up for translation. First, we only accept registration requests that originate from the WP admin page of the blog
that will be translated. When the user clicks off of the admin page, a digital fingerprint is created and saved to your
WP database, and then it’s sent over an SSL-encrypted channel to our server. When the registration request reaches our
server, we will open an HTTP connection back to the requesting blog and verify that a) it has our plugin installed, and b)
using an encryption technique called hashing, that the fingerprint matches. If one of those checks fail, we won’t register
the blog for translation.
Now that we’ve verified the blog, we’ll assign you a Blog ID and an API Access Key. These will be automatically added to
your configuration panel via the registration panel, plus they will be sent to your administrator email address. We will
use these two strings for identifying your blog and to ensure that information isn’t tampered either en-route to us. It
will also be used by your blog to verify that translated content posted back to your blog is legitimate. Again, we use
an encryption technique called hashing. Whenever your blog sends a translation request to us or we send translated content
back to you, we create a signature (or hash) of that content PLUS the API Access Key (if you’re really interested in details,
using the SHA-1 algorithm). Provided that the API Access Key is kept secret, this technique is extremely secure and resistant
to tampering. The odds of a malicious person guessing your API key are astronomical : more than 1 in 10^229. However,
as with any password, security depends on keeping it secret. If at any time, you think that your key has been compromised,
GTS will deactivate the current key and issue you a new one.
Other measures we take to secure data coming back to your blog include using a whitelist of IP addresses that are allowed
to use the hook for posting translated content and limiting the size of the post to ~250KB so that, even if all other measures
fail, an attacker can’t eat up all the memory on your machine.
We have dedicated lots of thought to locking down this system, and we are very confident that it’s secure.
After reading this, we hope you will be too!