By Dimitrios Glezos

10 Rules for Painless Software Localization

Your team built a killer app in English. High-fives all around. Your user-base is growing, reviews are all positive, you even caught TechCrunch’s eye. Life is good.
Then your 15 minutes are up. Sales flatten out. You start losing market share to a new competitor.

The technology sector has the memory of a goldfish. New players rise and fall every day. You stand a cold thing’s chance in a hot place of riding your initial success through a career-full of revenue. Unless you localize.

You just groaned. Software localization is not your favorite thing. You love to build things, and translating is much less fun. Few developers are eager to localize until they hear about all of the business they’re missing out on. Try this on for size:

  • Global SaaS and cloud-based business application services revenue will grow from $13.5B in 2011 to $32.8B in 2016.
  • By 2017, Gartner projects that there will be 268 billion mobile app downloads annually, amounting to $77 billion in revenue.
  • More than half of the world’s mobile subscribers (52.1%) are located in Asia Pacific.
  • Global games revenues will grow at a 5.7 percent Compounded Annual Growth Rate, reaching an annual haul of $93.18 billion by 2019.

Consider the social networking site, LinkedIn, a company that’s seen much success such their inception in 2003. A few years ago, LinkedIn headed the Forbes list of 25 Fastest Growing Tech Companies. At the time, LinkedIn was a relatively young company, only available in two languages, English and Spanish. The site now displays content and offers customer services in 19 different languages and the number continues to grow. The same goes for the other 24 companies that were listed on that year’s Fastest Growing Tech companies, and rings true for featured companies year after year. Coincidence? We don’t believe in coincidence.

Bottom line — there’s a lot of money to be made in software development right now, but most of it is global money. You need to localize your software.

Getting Started with Software Localization

Here are a few things to keep in mind:

1. Use a Continuous Localization Platform

This might sound a little self-serving coming from us, a company whose product is a Continuous Localization Platform (CLP), but seriously, you need one. Before the CLP, you had only two options: Human (great final product, but slow and expensive) or robot (fast and cheap and terrible in terms of quality). A CLP allows you to remain in control, access real-time analytics, protect your intellectual property and get your software translated efficiently. It’s really a no brainer.


2. Always Use a Full Locale

Be as precise as possible when you localize. Different regions may speak and write a shared language with nuanced differences. Lionbridge explains the nuances of languages perfectly, using the words screen and monitor as examples. “Both describe a device that provides visual output from a computer. However, in the Life Sciences industry, “screen” means to check a patient for a particular symptom and “monitor” means to watch something over a period of time.” Your software should reflect an understanding of those differences.

3. Make Room for Strings to Grow & Shrink

Design should already be part of your most precious intellectual property. You should invest as much energy on how your software looks as you do on how it works. As you design, keep in mind the reality that text will vary in size as you translate it into different languages.

Here’s an example. “Repeat password” is 50% longer in German than in English; if you haven’t left enough space, localization will break your design. You will need a 2-pronged approach to this problem. You want to create enough elasticity to accommodate a 40% variance. This will take care of most strings in most languages. That said, you’ll also need to test early and often. Let your designers be involved in the process at every phase, so they don’t experience a bottleneck of updates once the translations are complete.

4. Start with your Product Page and Description

If you’re really nervous about localization as a whole — not sure your product will have global appeal, or remain unconvinced of the business logic — then start small. Many companies have seen great sales gains resulting from the launch of a localized product page even without making changes to their software. If you decide to use your product page as a test, be sure you do it right. Comb over every single pixel of your product’s LP and every syllable in your app store description. Adjust the username in your screenshots (“Carlos” instead of “John”) change any references to location (maps, pictures, timezones). You don’t want to fail because of poor execution and come to the (incorrect) conclusion that localization doesn’t work.

5. Never Concatenate Strings

Sloppy amendments in CSS or HTML, qualifying one string with another as can often happen in redactive search, is a shortcut that nobody will notice until your software is localized. When you do, you will have bugs out your ears. Even the Romance languages, which are very close to one another, have subtle syntactical differences. Sometimes modifiers come before nouns, sometimes after, sometimes they become a suffix.

Instead, code the entire string together and allow your translators to put the words in the correct order for each linguistic context.

6. Include Punctuation

It’s tempting to omit punctuation while you are coding, and plan to add it later. Maybe you hope to re-use the string in different contexts where it will need to be punctuated differently. Don’t.

Include punctuation in context, and create unique strings for each line of text. Even the same sequence of words may translate differently with different punctuation. In French, for example, a colon is surrounded by spaces. If you omit the colon in your string, and try to add it later, your French interface will have a typo that your translators could have helped you avoid.

7. Pay Special Attention to Proper Names

Some languages alter the spelling and pronunciation of proper names in different contexts. Others alternate the placement of given and family names. Pay special attention to your treatment of names. It’s best to offer all three fields – first, last and username.

8. Never Hard-Code Date, Time, or Currency

Time and date formats vary wildly around the world. Currency too. Java can help. Code in a universal format like ISO time and then tap an open-source library like Date.js to format for your specific location.

This can be especially in date selection tools. Estonia marks Saturday as the first day of the week, the US starts on Sunday, the UK on Monday, the Maldives on Friday. Use the jQuery UI date picker to overcome this challenge.

9. Plan for Languages that Read in Both Directions

Most languages read from left to right, but Arabic and Hebrew read from right to left. CSS and HTML provide a directional property, but they will not override a CSS element coded as “float: left” or “float: right”. If you have fixed positioning layouts, you might need to build an entirely new set of style sheets for your left-to-right products.

10. Never Trust the Browser

Yes, the browser can translate. But you shouldn’t trust it. Any extra work the browser has to execute on your app will make it slower, and nobody likes to wait. Let the browser do what it does: browse. Let the people coo about your speed. Localize. Don’t trust the browser.

Ready to Go Global?

Software localization can be a painful process, but it doesn’t have to be. Follow these simple rules and you can launch your software into a global marketplace without more than a little pinch. We promise. And if you want to see how easy it can be, just reach out to us and request a demo. One of our team members would be happy to show you around the platform.

*Editors Note: We’re all about simplifying the localization process! A recent increase in requests for how to properly localize software gave us the idea to re-share a post that was previously featured on our blog, written by our CEO, Dimitris Glezos. We made a few updates and hope you enjoyed it!

Day in the Life of Dimitris Glezos, CEO of Transifex

This post initially appeared on SaaScribe.

Dimitris Glezos in the Transifex, Athens Office

For the last few years, I’ve been fortunate enough to have two homes and two “lives”. One is in California, where we’re working primarily on Customers and Growth. The second is with Transifex’s Product & Engineering team in beautiful, sunny Greece.

Which one do I like the most? To be honest, I’m not sure, really. When I’m in the US, I don’t miss Greece, and when I’m in Greece, I’m not in a hurry to return to the US. Living in two countries gives you access to a variety of different activities, personalities and ways to have fun.

As I’m writing this, I’m in Greece. It’s a gorgeous 29°C (84°F) day; I’m working from home, with our cat sitting on my lap. So let’s go through what a typical day looks while in Greece.

It’s a brand new day

Wake-up time is adjusted to the Engineering team’s schedule. You see, in Greece, people go out at 9pm (that’s considered early), so you start the day later too. A typical wake-up time for me is 8am-ish, almost 2 hours later than when I’m in the US.

Checking emails before properly waking up and experiencing a good start to the day is a no-no. The first thing I like to do is to put some fresh, vivid music on the stereo, welcome our cat in the living room and prepare a rich breakfast. Depending on the day that might range from a big jug of mixed fruit juice with delicious cheese and prosciutto on the side, to a good-ol’ eggs-with-5-sides plate. Before leaving for work, I put on my outfit. Typically, it’s a pair of jeans and a shirt with lightweight, cool materials by brands such as Prana or Arc’teryx. Then I check emails and spend 30 minutes answering stuff.

At the Office

During the drive to work, I’ll have a call with friends or family and do some finger exercises, preparing for rock climbing on the weekend.

I arrive at the office around 10:30am. Before even making coffee, I’ll walk around and chat with the people in the office, listening to stories about adorable kids, gym workouts or an amazing gourmet dinner experienced the night before. If I’m lucky, I’m at the office early enough to see Elena from our Customer Success team arrive and say “Good Morning!” with a wide smile and a royal salutation.

Walking around the office is one of my favorite things to do. I’ll openly ask colleagues to tell me what they’re working on and encourage them to get into the details – and I love it when they do the same. If someone is really concentrated, I might walk by and hit random keys on their keyboard.

For the first couple hours of the day, I’ll read articles from other cool, inspiring startups (some of my favorites are Help Scout, Groove and Unbounce). Afterwards, I’ll dive into one of the many things that have been keeping me busy the last couple of weeks:

  • I am jumping into planned (and sometimes impromptu) brainstorming sessions with Antoine from Product. Our discussions involve big scribbles on whiteboards that never have enough space and heated discussions about button placements. In these discussions, we’re pulling people in to better understand how a user would interact with a design choice, how it might be implemented and how it’ll scale.
  • I am learning how well we’re performing in fields like customer acquisition, customer satisfaction and growth. I do this by first collecting data myself from tools like Mixpanel, KISSmetrics and consolidating in a dashboard and a spreadsheet. When I find something interesting, I’ll go to someone’s desk with my laptop to show them and then we’ll try to refine the data and share them with more people.
  • More often than I want to, I deal with paperwork, like documents a bank needs signed and other frustrating items. Oh well… you gotta do what you gotta do.


Our Greek team eats lunch together at 1:30pm. We order food from nearby family-owned restaurants and share salads and pies which people bring from home. Lunch is a sacred part of Greek culture and our team has some of its best moments during our lunch break. Every now and then, we’ll have lunch outside or bring pans of galaktobureko (semolina custard pie in phyllo) and share.

Then it’s foosball time for anyone interested. Things get very noisy.

Second half of the day

During this part of the day, I’m doing a number of things:

  • I’m isolating myself from the rest of the gang for 1 to 2 hours every day to focus on strategic stuff. Product positioning, what our users really need and what they’ll need three years from now, and what are the real problems behind the proposed solutions from customers or other companies.
  • Growing our team is one of the top recurring items I have in my week – I typically work on this in the afternoons. I’ll invest at least 1 hour every day identifying interesting people. The key questions I ask myself when meeting someone are “Is she a doer?”, “Do we have a lot to learn from her?” and “What would it be like working with her every day for the next 5 years?”
  • At around 3pm, I’ll take an afternoon break and make a decaf coffee and eat some apples or bananas.
  • At 5pm, our California team wakes up. Late afternoon is reserved for any kind of discussion with our Sales, Marketing and Business Development folks. I’m most often working to remove roadblocks from people’s paths, such as a team waiting for something from another team, a clarification on why we’re not implementing support for Microsoft Office files.

Wrapping up the day

I’m usually back at home at 7:30pm.

On the way back home, I reflect about the day. What went well, what went wrong and how to fix it tomorrow. I also take time to remember all the big things happening in my life other than Transifex: girlfriend, family, friends. Some serious context switching happening there.

After getting home, we’ll cook something, watch a movie with popcorn, hit the gym or play a few games of StarCraft as Zerg. On the weekends, it’s either rock climbing, inviting friends over for barbecue, or a day-long trip to a nearby town or village for some good, local food.

Follow Dimitris on Twitter (@glezos) to keep up with the latest updates and thoughts.

Announcing General Availability of Transifex Live

Today, Transifex Live moves out of Beta and is open for everyone. The feedback we received from all of our Beta users was instrumental in getting Transifex Live to this point. A big thanks to everyone who gave it a try and provided such valuable feedback.

Transifex has always had a focus on developers and technical teams. We designed the platform to manage localization content and workflow, to provide a robust user experience for small start-up teams, and to be powerful and customizable for larger corporations. It’s a great platform for companies with experienced teams of international developers or localization managers. But the localization process is still hard for smaller companies just getting started with localization or who want to achieve a lot in a short time. The net-net is that localization is hard.

Localization is hard for developers. It’s a bit of an alien process for them because it requires close collaboration with an external agency who, pretty much, ‘owns’ the global content. Developers typically don’t like someone else to own their content. You lose control over the the user experience which sometimes feels like you’re giving your ‘baby’ to an external company. Plus, the agency is now involved in your product development and release schedule, so they can possibly impact the speed of your team and even your time-to-market.

Localization is hard for marketers too. Automating workflows is a very detailed and technical job. Marketers tend to be more creative and want to spend less time on these types of details. Plus, they have to fight for IT and developer resources for their localization projects which are never at the top of the list of things to be done next. There always seem to be bigger fires to fight. Preparing content for localization is a boring job and error-prone (you might forget phrases) so it tends to get done last.

Our goal with Transifex Live is to make localization accessible to everyone. A few years ago, we took a step back and thought, what technologies can we leverage to make everything about the localization process an order of magnitude easier? To shrink the time needed to take a website global from months to days?

The problem was the fact that today internationalization and localization are separate, disparate processes. There’s a wall between them. This does not allow a seamless experience from content creation to translated content delivery. This is how Translfex Live was born.

Transifex Live addresses this problem head-on with a completely new way of thinking about localization. We designed it to easily integrate into your development process so localization can serve as a strategic investment, rather than an after thought. The new technology stack takes advantage of powerful client-side scripting with JavaScript, allowing developers to have full control over the localized experience of the user. You add a snippet of JavaScript to your code (just like Google Analytics) and it does its thing in the background while you continue to do your thing. Transifex Live collects phrases from live or staging websites so they can be translated, either by freelance translators, an agency or crowdsourced, and then publishes them (via the browser) as visitors hit the site. When someone from Poland visits your site, they dynamically receive Polish content. When you update your content, changes are detected automatically so you never miss a translation.

There’s obviously a lot more to it than that. If you want to learn more check out the Transifex Live documentation. Or view this short video that gives a good overview of how it works.

Transifex Live is helping fulfill our vision of making localization really accessible for everyone. Localization is going to be the key to growth for most companies and it needs to be fully integrated into the core business processes. Transifex Live helps make that possible. Companies will be able to deliver localized experiences which will make customers happy. And when customers are happy, everyone is happy.

Announcing Transifex Live and our $2.5M round

Today, we have two big, exciting announcements to share with you. We’re announcing Transifex Live, a brand-new JavaScript-based localization technology, and our $2.5M investment round led by NEA.

Transifex Live: Localize with one line of code

Nobody likes the hassle of internationalizing code or dealing with files – they make localization awfully painful. We built Transifex Live, a new technology that eliminates those things and helps you translate websites and online documentation with a single line of JavaScript.

Compared to traditional localization platforms, Transifex Live streamlines the process of collecting, translating and delivering the localized content. Inserting a line of JavaScript is easy, even for a non-technical user, and does not require technical re-configuration of your servers.

Here’s how it works in 3 simple steps:

Collect: Point Transifex Live to the URL of a page you want to translate. Transifex Live will load the page, parse it automatically, and highlight the translatable content. Click a “Collect” button and the strings will be saved to your project in Transifex automatically. And once you make the translations live, any future modifications on the page will automatically be collected by Transifex for you. Use our WYSIWYG editor or simple HTML tags to control which content gets localized.

Translate: Once the content is in Transifex, you can translate it using the classic Transifex methods – online editor, offline, order translations from a vendor. Or… you can use our new in-context translation editor. Translating in the in-context editor is as simple as clicking on a phrase, then typing in a translation. And as you translate, your translation replaces the original text, giving you a live preview of how the finished translation will appear on the page.

Publish: Upload the translations to our CDN and insert one simple line of JavaScript on whatever webpage you want translated. And just like that, your French users will see a French version of your website using JavaScript magic.

Transifex Live ruler

No more marking and extracting strings for translation. No more uploading / downloading files. No more waiting for the next deploy before translations go live. And because our CDN only delivers the translated text, no more giving up control of your page to someone else.

We’re very busy developing Transifex Live and making it ready for public availability. We’re opening up a beta for Transifex Live today to give out early access to the technology. Visit our Transifex Live page to request access to the Beta.

This leads us to our next announcement…

We raised a $2.5M seed investment round

Transifex has been growing organically without the need of external funding so far. This past year we’ve been growing very fast and have been fortunate to have some amazing customers who are trusting their whole go-global strategy to us. In addition, we built Transifex Live, which changes how we’re all thinking about localization. To further our vision of changing how products are launched to a global audience, expand the capabilities of Transifex, and offer the highest level of service to our customers, we decided to welcome some investors into our family.

We are proud to announce that we have raised $2.5M in seed funding led by New Enterprise Associates (NEA), with support from Toba Capital and Arafura Ventures. They are joined by angel investors Georgios Papadopoulos (founder of Atypon), Ilya Sukhar (founder of Parse), Jonathan Siegel (founder of RightSignature), Panos Kougiouris (previously Senior Director at Citrix), Paul Kenny (founder of Cobone), Sriram Ramachandran (founder of Niara), and Thanos Triant (angel behind Siebel and BrightEdge).

A BIG Thanks

Today marks a huge milestone in our company, and it’s just the beginning. We couldn’t have gotten here without the help of our partners, customers, and the developer and open-source community. Thank you! You guys are great.

Update: Wall Street Journal covered our story too: Transifex is Latest Translation Tech Startup to Draw Seed Investment.

A New Dashboard Experience

The dashboard is an important part of the Transifex experience, showing you key metrics about your projects’ progress and activity. So we set out to make it more useful while simplifying navigation within Transifex.

Dashboard navigation panel

When you visit your dashboard, you’ll see in the left navigation panel a new “All projects” tab above the list of your projects. Selecting “All projects” will show you the summary information of all the projects in your organization, including overall progress, total number of strings, number of contributors, activity, and progress by language.

Dashboard navigation panel

To see information on a project level, simply click on a project name in the left navigation panel. Once in the project-level view, you’ll find buttons near the top right of the dashboard that link to your resources page, project details, and the translation editor. Clicking the “Project details” button will lead you back to the familiar project details page (/project/p/foo/) where you can make announcements and manage project settings.

Dashboard buttons

Below the activity graph, there’s a new section showing the languages your project is being translated into. The languages are sorted by progress and include a count of untranslated strings, so you immediately know how much work is left and which languages need more attention. The up/down arrows at the top right let you cycle through the list of all your target languages.

Dashboard language widget

This section has the same information you would find in your project detail page, except you won’t have to navigate back to the dashboard each time you want to see another project detail page. And when you click on a language, such as French, it takes you straight to the translation editor with that particular language pre-selected.

One more thing… the dashboard, along with the rest of Transifex, is responsive now, working beautifully across different screen sizes. We hope you like it!

P.S. Feel free to leave your thoughts about the new dashboard in the comments below.

5 Secret Features in Transifex to Simplify Your Localization Workflow and Improve Translation Quality

While Transifex doesn’t have any Easter eggs (or does it?), there are a few lesser known features which can your simplify your localization workflow, improve translation quality, and make you a Transifex expert:

1. String Permalinks

Have you ever needed a specific string translated or reviewed? Each string in the editor has its own unique permalink, so instead of asking your translator to dig up a string, simply select the string, copy the URL, and send it to them. Easy!

This way, you’ll be sure you’re both looking at the same thing.

String Permalink


2. Screenshots

One thing you can do to help your translators deliver high quality content is to document how the text they are translating appears on the website. A screenshot lets translators know where strings appear in your product, removing any doubts about what the correct interpretation of “manual” is.

String Permalink

To add a screenshot, paste the URL of the image file as a comment in the editor (you can use services such as Dropbox, Imgur, or CloudApp to host your screenshot). Transifex will display it inline.


3. Set Character Limits for Translations

Depending on what you are translating, you may need to keep a translation within a specific character limit in order to not break the user interface. For instance, in menus, buttons, and mobile apps where space is constrained.

Set translations character limits

To set character limits for a translation, select the string in the Transifex editor, then click on “Character limit” in the middle panel (under the Instructions field). If a translation exceeds the character limit, Transifex will notify the translator and ask them to shorten their translation.


4. Pseudo Localization

A project must test its internationalization support to ensure that a) when rendering a translated language, all strings which should be translated are marked as localizable and b) different sizes and encodings of the original strings are supported.

The way to do such tests is to run the application, website, or document using a special “pseudo” file. This file makes it possible to identify issues before translations begin.

Download pseudo localization file

Visit Project Overview > Source Language > Resource, and click on a resource. From the resource details popup, you can download a pseudo file for that resource.

Note: You can read more about pseudo localization in our support documentation.


5. Order Translations

If you aren’t working with a vendor or crowdsourcing translations, you can order translations to 33 languages right in Transifex. Translations are provided by one of our partners and delivered back in your project.

Click “Order translations” at the top of your dashboard to start.

Order translations

Know of any other not-so-obvious features in Transifex? Share them in the comments below. I’d love to hear them.