• Documentation
  • Transifex Live
  • Frequently Asked Questions About Live

Frequently Asked Questions About Live

Transifex Live is a simple way of translating websites, documentation, and web apps without needing to internationalize code or use files. Just add a snippet of JavaScript to your site, translate the content in context, then publish translations with the click of a button. Whether you use Transifex Live or the traditional file-based approach, you still have access to our translation partners and other Transifex features such as Teams, Translation Memory, and Reports.

The in-context feature of Transifex Live only works with Transifex Live projects. However, our Visual Context lets you translate file-based content using screenshots.

As of right now, if you use Transifex Live, you can download your translations as a JSON Key-Value file. To do this, visit your resource details page and click on the target language of your choice. Inside the pop up window, click on "Download only reviewed translations". Unfortunately you cannot use Transifex for converting one file format to another.

Transifex Live serves your translated website content through JavaScript. Historically, Google has only been able crawl and index content served through JavaScript in a limited fashion, however in the past couple of years, Google and other search engines have made significant strides, enabling their search bots to not only execute and index JavaScript, but to render entire pages, including dynamically generated content. Google has officially stated that their bots are able to crawl and index content served through JavaScript, and tests have verified this is true.

Knowing that international SEO is a concern for many companies going global, we've also created the Transifex Live Translation Plugin for WordPress, the largest self-hosted blogging tool in the world, which allows you to assign unique URLs to the multilingual versions of your website and also adds hreflang tags where applicable to help increase indexability in global search engines.

If you're still concerned about how Transifex Live will impact SEO, you can run a service on your server which pre-renders the content before serving it to search crawlers. Check out our Search Engine Optimization (SEO) article article for more info.

Translations are served through our Content Delivery Network (CDN), ensuring high uptime and low latency. We only serve the translations, not your site. This means you don't give up control of your site to a third party, and sensitive information like credit card numbers don't pass through our servers. Your website's reliability and security are totally in your hands.

Transifex uses Fastly's CDN. Knowing that application downtime often means the loss of customers and revenue, we carefully selected our CDN to provide our customers with a high level of performance that helps prevent applications from crashing.

We built Transifex Live with speed and reliability in mind so you don't have to worry about end user performance being negatively impacted. When a user visits your website for the first time, translations are fetched from the Transifex CDN, and are then stored locally on the user's machine (saved to the cache on their computer). This way, when a user reloads or visits your website in the future, the translations don't have to be downloaded again. Translations will load faster and overall site speed will remain at optimal levels.

When a user fetches translations from the Transifex CDN for the first time, they may see the page in your source language briefly before the translated content appears. To avoid this translation swapping on page load, you can implement what's suggested here.

Our JavaScript snippet is:

  • Small, weighing roughly 22kb to ensure optimal site speed.

  • Static, meaning it's only cached after the first request and is not loaded again until changes or updates are made to your translated content.

  • Delivered through our CDN (Fastly), allowing you to serve your website using your own servers.

We do not handle Ajax content, we handle dynamic changes in the HTML. So if the outcome of an Ajax call is to display new content in the browser, Transifex Live will capture that content (e.g. a popup) and try to translate it.

No, your translators do not have to use Transifex Live to finish translations and can still work in the Web Editor or download XLIFF files and translate offline. We do, however, recommend at least using Transifex Live to review translations in context.

Only a little bit of technical knowledge is required to use Transifex Live. In fact, one of the driving forces behind creating Transifex Live was to minimize the technical effort spent on extracting content from code for translation. All you need to do is copy the JavaScript snippet and paste it in your HTML pages. It's similar to installing Google Analytics to your site. Power users who want to customize how Transifex Live behaves can use the JavaScript API.

Installing the Transifex Live JavaScript snippet is similar to adding Google Analytics to your site. Once you get your unique JavaScript snippet, copy and paste it into the <head> element of your site's HTML. You only need to do this once, and it'll allow you to use Transifex Live and publish translations.

Alternatively, if you have a tag manager such as Google Tag Manager installed, you can use it to add Transifex Live to your site without editing any code. We also have guides on adding your JavaScript snippet to a number of popular publishing platforms.

Each domain you translate is its own resource in Transifex and has its own unique JavaScript snippet, so be sure you're adding the correct JavaScript snippet to your site.

We suggest installing the JavaScript as soon as possible. There are few reasons for this:

  • You'll be able to use the Transifex Live sidebar and translate directly on your site.
  • Transifex Live will automatically detect content changes on your site when you have the JavaScript snippet installed.
  • Installing the JavaScript snippet lets you approve phrases from private pages.
  • To take translations live on your site, you'll need to have the JavaScript snippet installed.

Yes, Transifex Live has been fully tested on Chrome, Safari, Firefox, and IE 9, 10, and 11.

Note that with Internet Explorer, hexadecimal colors in inline CSS containing is converted to RGB, thus creating a different signature for the same source string. To fix this, you can:

  • Include styling in classes which works fine across browsers.
  • Add the notranslate class to elements containing inline css.
  • Define color styling using rgb and not hex values.

By default, Transifex Live automatically handles static content, i.e. HTML that's initially loaded from the first HTTP request. However, you can still translate dynamic content with Transifex Live using one of the following methods:

  1. Instruct the JavaScript library to monitor the page for dynamically injected content (recommended).
  2. Mark dynamic content with a special class.
  3. For more complex scenarios, use the JavaScript API.

Refer to this article for details on using Transifex Live with dynamic content.

Yes, you can. The Transifex Live sidebar works directly on your site, so you'll be able to navigate to pages that are behind a login.

Transifex Live automatically detects the URL and feeds the right language. Related information about this can be found here. However, you may want to create a custom language picker to redirect your visitors accordingly. For example, when a user selects German from your home page using your site's language picker, they will be redirected to http://www.example.com/de instead of seeing the German content on the same page. If you need more information about creating a custom language picker, check this article here.

This is probably caused by the auto-collect feature of Live. When a user visits your website and you have auto-collect enabled in the Javascript snippet, untranslated strings will be sent to Transifex for translation.

Sometimes, when you have dynamic content, such as user names, they will be collected as well. However you can disable collection and translation of those strings by adding the "notranslate" class on the encapsulated html tags.

Also strings appearing in the Detected tab do not affect your billing quota. Those are just strings that are candidates for translations. Only strings in the Approved tab affect billing, which are strings that have been approved for translations by you.

If you want to disable auto-collection entirely in your website you can do it by settings "autocollect: false" in the Javascript you have injected in the website. However in that case you will have to go through every page in Transifex Live Tool and collect the strings manually.

Yes, to access your staging server through Live, first whitelist the following IP addresses:

  • 162.13.142.17
  • 162.13.179.217

Next, go to the Detailed view of your Web project, select Resources, pick the resource, and hit Settings. From there, you can set the staging domain. Note that content from the staging domain will be saved to the same resource as the production domain.

Be sure to install the JavaScript snippet on your staging site too! Use the same snippet as the one you used on your production site.

In the Publish widget, you can choose to make translations live either on your production site, or your staging site. Publishing to a staging server is useful for testing and if you have content on your staging site that's not ready to go public yet.

Nope, nothing changes in the API.

Certain website elements might not load properly within the Transifex Live Preview. This can happen if you have absolute URLs in CSS or JavaScript files, or there is some other complex JavaScript functionality that misbehaves when running in the Transifex Live Preview. Most of the time, you can fix this by clicking the shield icon in the address bar of Chrome and Firefox, then choosing to load the script.

If your website is performing AJAX requests to show certain functionality or content, those requests might fail because in the Transifex Live preview, your website is loaded under the live.transifex.com domain, yet you are requesting data from your.domain.com, which the browser will block for security reasons. You can fix this by enabling Cross-Origin Resource Sharing (CORS) for the live.transifex.com domain on your web server, like so:

Access-Control-Allow-Origin: https://live.transifex.com

For more information on how to enable CORS on various web servers, take a look here.

POST requests are not supported as HTTP servers usually have security checks preventing this. However, you can work around this by by installing the JavaScript snippet and enabling "Automatically identify new strings when page content changes" in the settings.

Yup. If you're running experiments in the source language, Transifex Live will not interfere at all.

If you want to run experiments in translated languages, you should use Optimizely's custom JavaScript code feature to trigger the translation of the altered block. For example:

$("h1").replaceWith("<h1>Localization doesn't<br> have to be hard</h1>");
window.Transifex && window.Transifex.live.translateNode($("h1").get(0));

For more details, check the JavaScript API documentation.

When your site is being loaded through Transifex Live, it's actually loaded through one of our proxy servers. This requires whitelabeling, and unfortunately, there isn't any documentation regarding security implications, but we haven't had any reported issues. Transifex has no intention of accessing your code or making changes to your website. Our goal is simple: to provide you with the easiest way to localize content quickly and efficiently.

You can prevent sensitive data from ever going to Transifex by doing the following:

  • Turn off auto detection of content by going to the Transifex Live settings and unchecking Identify new strings when page content changes. When auto detect is off, you'll have to visit a page directly while logged in to Transifex in order for content to be detected.
  • Transifex Live by default doesn't save any data present in input fields, such as signup forms. The only way sensitive data would be detected is if the content is displayed in the HTML itself. In that case, you can tell Transifex Live to ignore a block in your HTML containing sensitive data using a notranslate class.

Transifex Live JavaScript loads an external library for error reporting that's licensed under a BSD license. Development tools, used during the localization process, load several external libraries, all of which are under an MIT license. So good news, there isn't any issue regarding your Open Source license with Transifex Live and live.js!