Startup Solutions:
How to Build a Website that Wins Your Customers

You’ve probably heard the adage “you can’t judge a book by its cover,” but you also know we all make snap decisions when we meet people, walk into a restaurant, or pick up that proverbial book. Websites are no exception to the rule. One click is all it takes to lose a potential customer forever. You know it’s important to build a website that your customers will love and and continue visiting, but as an entrepreneur watching every penny carefully, how can you make sure your website will measure up?

Outlined below are five proven strategies that can promote a user-friendly experience for your customers.

Focus on the Customer’s First Stop

The home page of your website is often your first point of contact with a prospect or returning customer, so make sure to invite him into the rest of your site. Chances are, if the customer enjoys the content or messaging on this page, he’ll continue to browse other pages on your website. Clear, engaging, and lead generating websites often include:

  • A clear presentation of what your company represents
  • Your company’s logo to establish your brand identity
  • Previews of engaging content that will interest your target audience
  • Easy navigation to other pages on the site
  • A call to action

Keep Design and Navigation Simple

Your website conveys your brand, identity, and product or service offerings, so you want to display as much information as possible, right? Not always. Too much text and visuals can clutter a page and make it difficult for customers to easily locate and find what they’re looking for. And with access to competitors just a click away, smart website design becomes a critical piece of the customer acquisition and retention equation. Some of the best websites are simple in design, but have detailed elements that make them super intuitive and engaging such as:

  • Large and responsive hero images welcoming the customer
  • Parallax scrolling for an interactive way to browse through menu options
  • Hidden or hamburger menus to increase conversion rate
  • Card design to provide users with options for content

Be Ready to Cross Language and Cultural Barriers

The Internet has made it possible for businesses to reach potential customers all over the world. These customers will best relate to your website when you communicate with them through their native language and culture. Also known as localization, the process of making your website and other digital material accessible in multiple languages, has the potential to grow your business and help you compete on a global level.

When reaching customers from different countries, it’s important to be able to successfully communicate the same message to them – make it easy for customers to come to your site and find their preferred language. Eliminate the hassle for customers, and cache their language preference for future visits. Website localization companies can also help you reach a variety of people who speak different languages by providing a platform that helps to automate the translation process. Within a localization platform, webmasters can collect content to be translated, translate within the program, and push out multilingual content to reach a new segment of customers.

Recognize New Platform Trends

The way people access the internet is constantly changing. In fact, the number of people accessing the web on mobile devices now exceeds the number who access the web using a desktop computer.

As search trends change and customers want to view your website from whatever device they’re using, your website must adjust on the fly. Making sure your website is created using responsive design will ensure it loads properly on multiple screen sizes ranging from smartphones to tablets to desktops. Your website layout and functionality should also be tested for consistency across major web browsers such as Chrome, Firefox, and Internet Explorer. By addressing this multi-device, multiple browser trend, your website will provide customers with an enhanced user experience.

Keep Everything Up-To-Date

Contrary to popular belief, work doesn’t end after you’ve setup and localized your website. Customers want fresh content, so if the information on your website is outdated, there’s a good chance you’ll lose some business. Content changes can include anything from featured weekly promotions on the home page to new blog content — all of which are engaging and of interest to your customer. Frequent updates to your website are also helpful for search engine optimization (SEO). Publishing relevant content on a regular basis can help your website rank highly in search engine results pages (SERPs), meaning customers will be able to find your website easily if they type your company name into a search engine like Google or Bing.

Keeping the above tips in mind can help you make the right first impression, making sure you have the best chance of winning customers, no matter what language they speak or where they live.

Automating Transifex Updates with Jenkins

Jenkins, an Open Source continuous integration server, supports Transifex projects using a few simple shell commands. In this post, we’ll show you how to configure Jenkins to automatically synchronize with a Transifex project.

Jenkins Basics

Jenkins automates the process of running repeating tasks such as executing scripts or building software packages from source. Jenkins also monitors the status of running jobs, provides alerts, and integrates with external build services such as Maven and Ant.

Each job is assigned a workspace, which is a directory where copies of the job’s source files are stored. For instance, in Ubuntu, these directories fall under /var/lib/jenkins/workspace/. If your project is managed by source control, Jenkins will automatically pull the latest revision from your source repository. Otherwise, you’ll need to copy your source files to the job’s workspace after creating the new job in Jenkins.

Integrating Transifex

One of the benefits of Jenkins is that it can execute shell scripts during the build cycle. This makes it easy to integrate Transifex by simply calling the Transifex Client. Using tx push and tx pull, you can have Jenkins automatically update your source and translation files as the project is built.

Configuring Your Project

Before Jenkins can use the Transifex Client, it has to be able to read your project’s configuration. By default, the Transifex Client stores its configuration settings on a per-user basis. On a Linux environment, this is typically /home/<user>/.transifexrc. However, Jenkins executes commands as the Jenkins user. For instance, in Ubuntu, this means that any user-specific configuration files for Jenkins should be stored in /var/lib/jenkins/.

To configure your project for Jenkins, copy your transifexrc file to /var/lib/jenkins/.transifexrc. If you manage multiple jobs with Jenkins, you can store .transifexrc in the job’s workspace. Keep in mind that .transifexrc contains sensitive account information and shouldn’t be viewable by anyone but the Jenkins user.

You’ll also need to make sure that your project is configured to use the Transifex Client. Running tx init in your project folder will generate a .tx directory containing a configuration file. This configuration file tells the Transifex Client how to connect to your localization repository. Unlike the .transifexrc file, we recommend checking the .tx directory and config file into your source control repository. That way, when Jenkins checks out the project, it has everything it needs to connect to Transifex.

Configuring the Jenkins Job

Once you’ve granted Jenkins permission to access your Transifex project, you can configure your Jenkins job. As the job executes, Jenkins will call the Transifex client and update the project’s localization files.

Jenkins project

Navigate to the job’s configuration page. Under the “Build” section, click “Add build step”, and select “Execute shell”. A text box appears, allowing you to enter commands. Enter the following commands and click Save:

tx push -s
tx pull -a

Jenkins configuration

The next time a build occurs, Jenkins uses the Transifex Client to not only push your source files to Transifex, but also to pull the most recent translations into the build.

Modifying Downloaded Translation Files
If you need to further modify your language files before including them in the build, you can run additional commands by either adding new statements or by adding a new build step. You can perform any command-line task supported by the operating system running Jenkins, such as converting between file types or moving files to a separate directory. For instance, if you haven’t set up your project using a file expression, you’ll have to manually move your translation files into the target directory.

Handling Problems

Integrating Transifex with Jenkins is fairly straightforward, but problems can arise during the process. Two issues in particular are extremely common: file permissions, and build failures due to the Transifex Client.

File Permissions

As we mentioned earlier, the Jenkins user must have access to project files. If permissions aren’t properly assigned, this could result in opening Jenkins or your Transifex project to outside access. When copying files to a Jenkins workspace, make sure those files can only be modified by the Jenkins user. If you’re copying a .transifexrc file to the Jenkins workspace, make sure the file can only be read by the Jenkins user.

If you manage your project using version control, Jenkins will automatically fetch and store files as the Jenkins user. However, this does mean providing Jenkins with access to your source repository. Some version control systems such as Git allow you to use file permissions to prevent users from modifying checked out files. Alternatively, hosting providers such as GitHub provide advanced controls for limiting users’ ability to push to repositories.

Build Failures

Common causes of build failures are a missing .transifexrc file, or Jenkins not having the right permissions to read your project’s files. Make sure your .transifexrc file is not only stored in Jenkin’s configuration directory, but is also readable by the Jenkins user.

You should also make sure that your project configuration and source files can be read by Jenkins. If you copied your source files manually, you’ll need to grant permission to the Jenkins user to read and modify files in the project directory.

If the build continues to fail, try running the Transifex Client as the Jenkins user and viewing the immediate output. After logging into the Jenkins server, use the sudo command to temporarily switch to the Jenkins user:

$ sudo -iu jenkins cd /path/to/workspace && tx push -s

Any output from the Transifex Client will appear directly in the console. You can also view output from the Transifex Client by opening Jenkins, navigating to your project’s build history, and clicking on Console Output for the last build.

Additional Resources

Using the Transifex Client through Jenkins is the easiest way to ensure your builds are using the latest translations. You can also install the Transifex Plugin for Jenkins, which simply adds a hyperlink to the Transifex project page on the Jenkins job page.

Startup Solutions: Keeping Your Remote Team Connected

An increasing number of companies have remote teams with employees working from all over the world. Here at Transifex, we work out of two offices – one in Menlo Park, California and one in Athens, Greece – so we know what it’s like to manage teams across different time zones. We’ve found that while large corporations may have the infrastructure to manage a remote or global workforce, small businesses and startups can be left struggling to handle this new work paradigm. Because we’ve been there ourselves, we wanted to share a few tips for how to keep your remote team connected.

1. Start with the Basics: Onboarding

Remote teams have a different dynamic than teams that gather under one roof. They must overcome different time zones, cultural practices, and sometimes, language barriers. Achieving connectivity among these types of companies almost always begins with onboarding.

Onboarding is becoming a frequently used term among startups and SMBs to describe the process in which new hires acquire the right set of skills, knowledge, and behaviors to become successful contributors and team members. For teams scattered across the globe, this process is extremely important in making new hires feel comfortable with the remote workforce set up, defining his or her responsibilities, and setting expectations for upcoming projects and campaigns.

Create the Perfect Onboarding Process

Culture (another startup buzzword) dictates that the onboarding process is fun and easy for the new employee. Along with making sure any new hire has a desk, computer, and email account set up, here are a few ways to create a fun, yet meaningful onboarding process:

  • Send a Welcome Message – It can be intimidating for a new hire to reach out to each individual team member, especially knowing that communication with some will mostly be via email, video conferencing, or over-the-phone. Sending a welcome message to the entire team that introduces the new member is a great way to open lines of communication and make him or her feel welcomed.
  • Make First Impressions Easy – At Transifex, we want to make first impressions between new hires and employees easy. Each member receives a welcome note signed by our team and we try to gather everyone to go to lunch to get to know one another in a casual environment. Small gestures go a long way in making new members feel apart of the team from their first day.
  • Schedule One-on-One Meetings – While you’ve probably given your new hire a list of resources and documents to read before his or her first day, scheduling one-on-one meetings with team members (both local and remote) can ensure they understand the projects they’ll be working on so they can hit the ground running. You may also invite your new hire to sit in on meetings held by other departments. For instance, a new marketing hire may find it beneficial to sit in on a sales meeting to better understand the product roadmap, buying cycle, and overall sales goals.
  • Create a Timeline – Setting a few early milestones can give new team members a better idea of their role and responsibilities within the company. Map out a timeline for new hires for the upcoming weeks or quarter. Encouraging new members to ask questions about their timeline can ensure they seamlessly integrate into the team and are able to connect with the individuals who will help them achieve success.

2. Set and Track Goals for Teams and Individuals

Setting and tracking goals remains a high priority for companies with remote teams. All companies with a global workforce should have a plan with measurable objectives for all teams, and individual team members should also have clearly defined performance goals. Department heads will likely be charged with tracking this performance and reporting it to the CEO or COO. This way adjustments can be made when things aren’t going as planned, and praise can be given when timelines and goals are met.

Helpful Task Management Programs

Once goals are set, communicated, and understood, spreadsheets can be used to track success, but it may be more efficient and less of an IT strain to use a task management subscription system like:

  • Basecamp – The basecamp platform is easy to use and allows for the creation of various projects. Each team member can schedule projects, make comments, and add checklists which can be assigned to a person who will ensure the task’s completion. Not only does basecamp offer real-time updates for global employees, it is a great tracking tool that can be referenced to determine the success or failure of a campaign.
  • Asana – With Asana, conversations and tasks are in one place, taking the dependency off of email and making it so that all tasks are actionable and transparent. Team members can communicate with one another on an easy-to-use platform that can be viewed on a desktop, mobile device, or tablet. Asana also integrates with other tools such as Dropbox, Slack, Google Drive, Github, WordPress, and more for total efficiency.
  • Jira – Created by Atlassian, Jira is often regarded as the number one solution for agile teams. Heavily used by engineers, Jira allows members of global software teams to plan and track work while moving toward the next release. It is a great way for global teams to set timelines, milestones, and report on updates and other relevant information.
  • Salesforce – Recognized by many as the leader in customer relationship management (CRM) tools, Salesforce is a great tool for sales and marketing teams that are spread across different continents. It allows employees to access everything from customer data to analytics, all in one convenient place.

3. Make Communication Easy

It’s easy for employees to blame distance for inefficiencies such as missing project due dates, so take preventative measures and establish open lines of communication. Here at Transifex, we try to make all members accessible as much as possible. We use instant messaging tools like Slack and texting apps like Viber to talk with team members in other countries without incurring additional fees. Google Drive and Dropbox also allow for easy access to documents without increasing server capacity, and can be a great way for employees to collaborate and provide feedback on specific documents and projects from different locations.

Communicate Through Face-to-Face Meetings

For the utmost in personal connectivity with your remote team, face-to-face meetings are still best. Subtle information can be lost in emails and text messages, and being able to see your employees’ faces and them yours is an important aspect of communication that sometimes gets overlooked with all of today’s technology.

You can use Skype, Google Hangouts, or a video conferencing platform like Join.ME for this. If you have a subscription to a remote interview platform, there’s no reason you can’t use that to video conference with employees either, especially if you can use delayed-time video to converse across widespread time zones that make real-time live talk difficult.

4. Schedule Regular Team Check-Ins

Even though you may be tracking project tasks or sales metrics online, don’t neglect to schedule regular check-ins with your team. A weekly phone call or daily email allows employees opportunities to ask questions, helps prioritize their workload, and gives them an opportunity to connect with other team members on a personal level.

To help keep our remote teams organized, we have regular check-ins ranging from weekly stand-up chats to monthly all-hands meetings. Weekly stand-up or sync-up meetings are often brief check-ins where each team member states where they are with their individual tasks, keeping everyone in the loop and allowing for other members to assist when necessary. Our all-hands meeting takes place between our Menlo Park and Athens offices and is usually conducted through a video conferencing platform so we can put a face to the name of new members. This is also a time for teams to share what they are working on, discuss new product launches, and speak about any concerns in regards to current systems or workflows. And gathering such a large group together, we’re always bound to share a few laughs, too.

Prioritize a Yearly Conference or Gathering

In a perfect world, it’s great to meet in person with your entire team at least once per year. This can be in the form of a meeting, convention, or company retreat, ideally combining business with a bit of fun, so people who don’t have the chance to socialize the way they would in a traditional office setting can get to know each other better. Last year, our California and Athens team met up in Rome for a conference that was both fun and educational.

Have Policies for Other Expectations

Be sure to set policies for any other work-related communication expectations too such as:

  • Work hours
  • Sick days, vacations and dealing with things like last-minute emergencies
  • Response times for customer and coworker correspondence
  • BYOD (bring your own device) rules for employees using their own computers, tablets or mobile phones to transmit work data

The global workforce is the wave of the future. If your startup or small enterprise takes the time to consider connectivity issues up front, you can all but eliminate communication problems and focus on growing your business. Have other tips on how to keep a remote team connected? Be sure to share them below!

Code and Cookies Sneak Peek

Transifex software engineer, Matt Jackowski, will be speaking at the upcoming Code and Cookies event in San Francisco. Hosted by design and development company, Bitmatica, Code and Cookies is a free event that aims to provide small and medium-size businesses with new technologies that can help with the conceptualization, development, and deployment of mobile and web applications.

Localizing Javascript Web Applications

Matt is passionate about building software with open source technologies, and will be sharing his knowledge and a few insider tips about localizing Javascript web applications. If you’re not familiar with the localization process, it’s important to understand why localization matters in the first place!

Studies show that of the 7.2 billion people in the world, nearly two thirds speak one of the below twelve languages as their native language. For businesses interested in increasing user base, customer engagement, and profits (what business isn’t?), all digital content should be viewable by a potential customer in his or her native language. And this often means translating your website, app, or software into multiple languages and localizing it for cultural differences.

Languages for Localization

Building and Integrating

There are four key parts to the localization process:

  1. File Format
  2. Directory Organization
  3. Continuous Translation
  4. Automation

We don’t want to give everything away! Matt will be speaking about each of the above localization components and providing a demo at the event so attendees can get started on localizing their Javascript applications as soon as possible. You can also check our localization blog for more information about going global, as well as a post Code and Cookies update that will include answers to some of the questions asked at the event and details from Matt himself!

Event Information

Date: October 28th, 2015
Location: WeWork
Located at 535 Mission Street, San Francisco, CA 94105
Admission: Free

Click here for more details and register to save your seat. We hope to see you there!

Bridging GitHub and Transifex with Txgh

We previously showcased Txgh, a tool for automatically bridging GitHub with Transifex. Txgh is an Open Source Sinatra server that uses webhooks to trigger updates between GitHub and Transifex. It allows both developers and translators to share localization updates in an automated and seamless way. Changes to either a GitHub repository or a Transifex project are pushed to the Txgh server, which forwards them to Transifex or GitHub respectively.

Txgh has seen a lot of updates since its earlier release. Txgh can now run as a Heroku dyno for quick and easy deployment. The new release also supports branches, rather than limiting changes to master. Transifex will manage future updates to the project, but the project will remain open sourced. In this post, we’ll walk you through setting up the latest version of Txgh.

Getting Started with Txgh

Txgh requires an existing Heroku account. If you don’t already have one, you can sign up for a free account here. Txgh requires Ruby and Bundler, which you can install using this guide. Note that the Txgh project uses Ruby version 2.0.0, which we recommend installing using a version manager.

Download Txgh

To download Txgh, simply clone the latest version from GitHub:

$ git clone
Cloning into 'txgh'...
remote: Counting objects: 162, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 162 (delta 0), reused 0 (delta 0), pack-reused 159
Receiving objects: 100% (162/162), 34.75 KiB | 0 bytes/s, done.
Resolving deltas: 100% (68/68), done.
Checking connectivity... done.

Configure Txgh

Txgh needs access to a GitHub account, a Transifex account, and information about the Transifex project being managed. Earlier versions of Txgh used a YAML file to store user credentials. With the latest version of Txgh, this information is stored as environment variables in Heroku. We’ll add these environment variables after deploying the server to Heroku.

In the meantime, we can provide Txgh with our Transifex project’s configuration. Copy the config file stored in your project’s .tx directory to Txgh’s config directory and rename it to tx.config. You should see three files in the directory: key_manager.rb, key_manager_ruby.rb, and tx.config. For more information on setting up your project configuration, click here.

Deploying to Heroku

Heroku provides a command-line tool for interacting with applications. When you create a new application, Heroku creates a remote Git repository (with a branch named heroku), which you can then push your code to. Change your current directory to the Txgh project’s root directory and enter the following command:

$ heroku create
Creating nameless-eyrie-4025... done, stack is cedar-14 |
Git remote heroku added

By default, Heroku provides a randomly generated name, but you can supply one as a parameter. Once the new application has been created, you can deploy your app by using git:

$ git push heroku master
Counting objects: 156, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (71/71), done.
Writing objects: 100% (156/156), 33.84 KiB | 0 bytes/s, done.
Total 156 (delta 65), reused 155 (delta 65)
remote: Compressing source files... done.
remote: Building source:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rack
remote: -----> Using Ruby version: ruby-2.0.0
remote: -----> Installing dependencies using bundler 1.9.7
remote: -----> Compressing... done, 18.3MB
remote: -----> Launching... done, v4
remote: deployed to Heroku
remote: Verifying deploy.... done.
 * [new branch]      master -> master

You can verify the success of the deployment by opening the Heroku dashboard in your web browser and navigating to the newly created dyno:

Heroku dyno

Updating the Configuration

Before you can start pushing updates between GitHub and Transifex, you’ll need to provide the Heroku app with information on how to access each service. Txgh uses a set of environment variables to manage connections between each service. The name and description of these variables is shown in the table below:

transifex_project_config_tx_configLocation of your Transifex project's configuration file relative to Txgh's root folder../config/tx.config
transifex_project_config_api_usernameYour Transifex username.txuser
transifex_project_config_api_passwordPassword to your Transifex account.1324578
transifex_project_config_push_translations_toName of the GitHub repository that Txgh will push updates to.ghuser/my_repository
transifex_project_config_push_translations_to_branchGitHub branch to update.heads/master
github_repo_config_api_usernameYour GitHub username.ghuser
github_repo_config_api_tokenA personal API token created in GitHub.489394e58d99095d9c6aafb49f0e2b1e
github_repo_config_push_source_toName of the Transifex project that Txgh will push updates to.my_project

There are two ways to apply these to your Heroku app:

  1. Add the environment variables through Heroku’s web interface.
  2. Create a local file containing your environment variables and apply it using rake.

Add Environment Variables Through the Heroku Dashboard
Open the Heroku dashboard in your web browser. Click on the Settings tab and scroll down to the Config Variables section. Click Reveal Config Vars, then click Edit. You’ll have access to the application’s existing variables, but more importantly you can add new variables as shown in the screenshot below. Add the variables listed above and click Save.

Config vars

Note that the RACK_ENV variable defaults to production, but in order for it to work with Txgh we need to set it to test.

Add Environment Variables Using txgh_config.rb
The txgh_config.rb file stores our environment variables inside of the Txgh folder. To create the file, copy and paste the following into a new text file. Replace the placeholder values with your actual values and save the file in the config directory as txgh_config.rb.

# 'test' only ENV['RACK_ENV']
config_env :test do
    set 'transifex_project_config_tx_config', './config/tx.config'
    set 'transifex_project_config_api_username', 
    set 'transifex_project_config_api_password', 
    set 'transifex_project_config_push_translations_to', 
    set 'transifex_project_config_push_translations_to_branch', 'heads/master'
    set 'github_repo_config_api_username', 
    set 'github_repo_config_api_token', 
    set 'github_repo_config_push_source_to', 

To apply the changes to your Heroku dyno, use the rake command:

$ rake config_env:heroku
Running echo $RACK_ENV on nameless-eyrie-4025... up, run.2376
Configure Heroku according to config_env[test]

=== nameless-eyrie-4025 Config Vars
LANG:                                          en_US.UTF-8
RACK_ENV:                                      test
github_repo_config_api_token:                  489394e58d99095d9c6aafb49f0e2b1e
github_repo_config_api_username:               ghuser
github_repo_config_push_source_to:             nodejs-test
transifex_project_config_api_password:         12345678
transifex_project_config_api_username:         txuser
transifex_project_config_push_translations_to: ghuser/nodejs-test
transifex_project_config_tx_config:            ./config/tx.config

This command updates the configuration of your Heroku app with the values specified in txgh_config.rb. If you have any issues running the rake command, run bundle install in the Txgh project’s root directory. This compiles and installs the Ruby gems required by Txgh. Once the install completes, run the rake command again.

Since this file contains sensitive information, you should avoid committing it to your Heroku repository or to your GitHub repository.

Once the rake command has completed successfully, open the Heroku dashboard, navigate to the application’s settings and click Reveal Config Vars.

Final Configuration Steps
The last step is to change the value of the RACK_ENV variable. By default, Heroku sets the value of RACK_ENV to production. However, we recommend testing Txgh by setting this value to test. If you haven’t already, open your application’s environment variables in a web browser and change the value of RACK_ENV from production to test. When you’re ready to deploy, you can change this value back to production.


Meanwhile, check the values of your other variables. If any values seem incorrect, you can edit them in your browser or edit and re-apply the txgh_config.rb file using rake. Once everything looks good, you can add your webhooks to Transifex and GitHub.

Connecting Transifex and GitHub to Txgh

Txgh synchronizes your Transifex and GitHub projects using webhooks, allowing Txgh to respond immediately to changes in either service. The webhook URLs follow the format , where is the name of your deployed Heroku app and is either “transifex” or “github.” For instance, we’ll use the following URL with Transifex:

and the following URL with GitHub:

Connecting Your Transifex Project
Open your project in Transifex. Under More Project Options, click Manage.

Transifex manage

In the Features section at the bottom of the screen is a text box titled Web Hook URL. Enter in the URL you created from your Heroku app, then click Save Project. Secret keys are currently unsupported, so leave the field blank for now.

Transifex webhook

Connecting Your GitHub Repository
Connecting a GitHub repository is similar. Open your repository in a web browser and click Settings.

GitHub repository

Under Webhooks & services, click to add a webhook. You may be asked to confirm your password. Enter the Heroku app URL for the Payload URL and change the Content type to application/x-www-form-urlencoded. Just like with Transifex, keep the Secret token field blank.

GitHub add webhook

Click Add webhook to create your new webhook. GitHub will ping the URL to test its validity. You can check whether the ping was successful by reloading the page.

Next, we’ll test out the integration by moving translations between GitHub and Transifex.

Testing It Out

To test the integration, we’ll push a new commit to GitHub, then we’ll use the new commit to update translations in Transifex.

First, add a new string to the language source file in your Transifex project. Save your changes, then push the code to your GitHub repository. The push will automatically trigger the webhook. You can verify that webhook was successful by opening GitHub in a browser, navigating to the Webhooks & services, clicking on the webhook URL, and reviewing Recent Deliveries.

Recent deliveries

If successful, you should see the new source strings in your Transifex project:

Transifex new strings

Update the translations in Transifex. Back in your GitHub repository, review the latest commits. You should see a commit from Transifex with the latest updates to the target language:

GitHub results

Going Forward

This project represents an early look into automated integration with GitHub. Going forward, we plan on making it easier to setup automated integration with code repositories and other third-party services. If you have any questions, feel free to contact us or leave a comment below.

The Difference Between Localization and Translation

Development teams that hear the word “localization” tend to jump immediately to translation. In reality, translation is only a part of the localization process. While Web users are 4x as likely to buy from a company that presents content in their native language, there’s much more that goes into localizing content than simply swapping text.

Software localization isn’t translating your product word-for-word. It’s about adapting content to fit the qualities, customs, practices, and beliefs of your target audience. Cultures respond differently to text, as well as to page layout, media content, even color schemes and font styles. When localizing, the goal isn’t just about making it easier for international users to use your product, it’s about making international users want to use your product.


Anyone can use Google Translate, but rarely (if ever) is this the best way to connect with users of other languages. For example, translating the word “localization” from English to Spanish and back to English gives you “location.” Meanwhile, certain German words, which can consist of multiple compound words, might not translate at all. Even similar languages vary dramatically in terms of grammar, sentence structure, word length, and notation. Then, take into account that each language has its own idioms and phrases that can’t be translated directly into other languages. For instance, try encouraging a Mandarin speaker to “go the extra mile.”

When localizing, languages not only affect the content of a page, but also its flow. Words vary in length, resulting in longer or shorter sections. This is frustrating enough for fixed-size content, but what many developers don’t realize is that readability is also impacted. For example, readers of left-to-right languages tend to scan pages in an F-shaped pattern, so UI designers tend to structure their websites in that fashion. What happens when you want to display that same page in Arabic? Not only do you have to think in terms of text, but also in terms of layout and page orientation.

Companies have overcome these issues by immersing themselves in their target market. By living and speaking with everyday people, they’ve gained a much better understanding of the wants and needs of their users. It’s good to know the language, but if you can use familiar terminology and speech then you’re far more likely to succeed.

Language localization doesn’t always work out perfectly. When Nokia announced their Lumia Windows Phone, Web users quickly discovered that the name has a much less enlightening translation in Spanish, actually meaning prostitute (combined with Nokia’s slogan of “connecting people” and you can see how the jokes began). The story took off as a case study in poor localization, despite the fact Nokia had already recognized the translation as nothing more than obscure slang. Not to mention their market research found that 60% of their Spanish consumers actually liked the Lumia name.


As with language, media plays a huge role in the way users react to content. To understand how media affects your target market, consider the impact that images, sound clips, videos, and music have on your base market. Chances are your content has been carefully selected, choreographed, timed, or arranged to appeal to a particular market. The same level of diligence should apply when bringing your product to other cultures.

Even something as benign as a color scheme can vary intensely. Take the color red, for example. In the United States, red implies passion, excitement, or even power. In China, red represents happiness and celebration. Meanwhile, many countries in Eastern Europe associate red with communism, while much of the Middle East associates red with danger and evil.

Ikea, the popular Swedish furniture retailer, received an international backlash for their 2013 Saudi Arabian catalogue. The catalogue, which was otherwise identical to versions in other countries, had completely erased women from the images. Ikea quickly issued an apology, but many saw it as an affront to women’s rights, even consumers in Saudi Arabia.

Because media has multiple components working simultaneously, it’s easy to unintentionally create the wrong message. Careful research will not only help you overcome cultural barriers, but it can also prevent disastrous public relations mistakes.

Legalities and Standards

Every new market brings with it a new set of laws, regulations, and customs that your product has to conform to. If you don’t meet these regulations, you could be denied access to that market or fined. For example, websites in the European Union are required to disclose their use of cookies as a form of user tracking. They’re also required to give users the option to refuse cookies. This rule affects not only websites hosted in the EU, but also international websites marketing to European users. Similar laws and regulations may apply to other regions regarding the type of content made available, accessibility to that content, and ownership of data shared with third-party providers.

Even if your product adapts to the laws of the target market, there are still variations in cultural and societal standards. Imagine your application has an order form that prompts the user for his or her address. Not all countries use ZIP codes, 10-digit phone numbers, or even 4-line addresses, but your application needs to account for all of those differences. Additionally, if your application collects data on measurements, you’ll need to adapt units based on the country and culture. If you request the user’s height, a user in the US will want to input feet and inches, while a user in the UK will expect meters and centimeters.

Testing and Validation

When testing changes to your localized websites, don’t just verify that the layout and content conform to the selected locale. Your QA team can tell you if the localization process works, but only a native speaker can tell you whether the changes are a fit for the region. During the development process, include users from your target audience for input and validation. Allow them to test the changes to ensure that they conform to their expectations. Again, it’s not enough to simply swap words or images.

Getting Started with Localization

Despite their differences, translation is still a key component of localization. With the Transifex Client, translation is as easy as pushing your resource files to Transifex, making changes in the Web Editor, and pulling the newly translated resource files back into your project. For websites and web applications, Transifex Live automatically updates your content while your translators are hard at work.

Localizing the rest of your content is a bit more involved. When it comes to optimizing your layout, the features available to you depends on the type of project. For instance, with websites, using responsive web design lets content on your web pages automatically grow and shrink based on the size of translated content. With media, you’ll need to include logic that swaps out audio and images based on the user’s locale. Fortunately, video subtitles can be added and edited directly in the Web Editor. And when it comes to law, it’s vital to have expert available to consult regarding legal requirements and compliance. We can connect you with agencies and native speakers from around the world to create a customized solution.

Translation and localization are often used interchangeably, but knowing the difference can have a big impact on how your target market receives your product. Once you can reach out to your international customers, you’re far more likely to succeed. For more information about localizing websites, mobile apps, or digital content, contact us or visit

The Globalization of eCommerce and How Companies Can Adapt

As global eCommerce continues to grow at a rapid pace, the question isn’t whether retailers should sell internationally, but how they can best capture the growth opportunity before them. This starts with identifying and understanding how the eCommerce space has changed over the past few years and creating strategies for how to adapt to and satisfy new customer expectations.

eCommerce Grows on a Global Scale

Connectivity is the driving force behind the growth of global eCommerce. Customers have easy access to the internet and can be connected to any business with a website; able to view, compare, and purchase products in just a few clicks. To reach this growing pool of potential customers, online retailers are localizing their digital content for international markets and brick-and-mortar stores are exploring their eCommerce potential by creating user friendly websites with opportunities for online orders.

eCommerce Globalization

In 2015, the United States was joined by China, the United Kingdom, and Germany as top countries for eCommerce, showing impressive online purchasing growth in categories like electronic goods, apparel, and books.  Other countries seeing a rapid rate of eCommerce growth include India, Indonesia, Saudi Arabia, Australia, and the Philippines.

Changes in Online Purchase Behaviors and Expectations

Today’s customers are becoming increasingly savvy. Not only do they have an in-depth understanding of the product they are interested in purchasing, they have access to comprehensive reviews and product details. Brand is becoming less important and customers are placing a higher value on product quality.

We’re also starting to see a shift away from the traditional shopping experience where purchases are made in-store. Brick-and-mortar stores have lost their strategic advantage of immediate fulfillment as many online retailers provide fast, easy, and even overnight shipping. However, provide incorrect shipping estimates, delivery dates, or inventory availability, and stand to lose customers, or worse, make them angry enough to share their experience on social media platforms like Facebook or Twitter. It’s not just about meeting and exceeding customer expectations, but making sure nothing goes wrong from the customer’s first point of contact with the website to the final delivery of the product.

Mobile’s Heavy Impact on the eCommerce Industry

According to a recent study from comScore, 86 million Americans use their smartphones to shop and make purchases online. This means that mobile now accounts for 50.3% of all online purchases, just surpassing the number of purchases made from a desktop. Statistics present concrete evidence of the undeniable potential of mobile commerce (mCommerce). If a business wants to be successful in our technologically driven world, mobile-centric strategies need to be at the forefront of the growth plan, which we’ll discuss in the updating your eCommerce strategy section below.

Updating Your eCommerce Strategy

The best eCommerce websites are able to quickly define customer expectations, then surpass them by delivering a customized and relevant experience. If you’re planning on entering new global markets with your eCommerce website, you’ll need to update your eCommerce strategy to be in sync with new marketing trends by focusing on:

The Home Page

Customers are moving away from making in-store purchases and are going online to view and purchase products and services. To meet the needs of this new group of buyers, your website’s home page needs to be intuitive, creating a tailored experience for each user. Think of your homepage as the front door of your brick-and-mortar store. It should be able to deliver the same message that a sales clerk would if he or she was greeting a customer who just walked in. The actual process of “personifying” your homepage can be achieved by:

  • Making sure the site has clear, relevant prompts
  • Focusing on content that is easy to scan and relevant to your target demographic
  • Using images that convey your brand, products, and/or services
  • Adding a strategic navigation bar that guides the user to valuable content

Site Performance and Speed

Site performance and speed is directly related to positive customer experiences. Research shows that for each second it takes for your page to load, customer satisfaction drops by 7%. Add the fact that the majority of internet users expect a website to load in no more than three seconds and the importance of fast-loading websites is clear. Improve site speed by:

  • Using or switching to a reliable web host recognized for speed
  • Reducing the file size of photos, logos, and other website graphics
  • Switching off plugins that aren’t being used regularly
  • Hosting on a content delivery network (CDN)
  • Enabling gzip compression to reduce the size of HTTP response

Reliable Security Features

For certain groups of internet users, making purchases online is viewed as being unsafe and many are reluctant to input personal data such as credit card information, home address, and phone number. The best eCommerce websites understand this concern and are able to build customer trust by safeguarding customer data and reducing the overall risk of fraud-related activities. Along with conforming to the rules outlined by the Payment Card Industry Security Standards Council (PCI SSC), business owners can adhere to website security best practices by:

  • Using an eCommerce platform that uses a sophisticated programming language
  • Implementing strong secure sockets layer (SSL) authentication
  • Adding an address verification system (AVS) for credit card transactions
  • Creating tracking numbers for all orders made online

Digital security experts recommend only keeping the minimal amount of customer information on your database. This is typically just enough information to charge customers for services and provide refunds when necessary.

Mobile Commerce and Optimization

Customers aren’t just viewing your website on their desktop computers, but on smartphones and tablets of all screen sizes. According to industry studies, mCommerce is growing more than 130% each year. If that isn’t enough motivation for mobile optimization, consider data from PEW research center that found that more than half of users reference their mobile devices while standing in the aisle of the product they’re thinking about purchasing. To make sure that your website is properly viewed on devices of all sizes, mobile optimization tactics must be explored. Start by:

  • Making sure your website is designed on a responsive technology framework
  • Updating all forms to be mobile-compatible
  • Using conventional mobile icons to reduce clutter
  • Ensuring any images are optimized by mobile
  • Avoiding excessive JavaScript because it runs differently across all browsers

Hybrid Shopping

Brick-and-mortar stores now have a new function – they’re showrooms for viewing and trying out products in real life. Customers don’t necessarily buy when visiting the store, but finalize their shopping at home, on one or more mobile devices. This process is better known as hybrid shopping, and benefits businesses by providing additional “touch points” with consumers.

In order to provide the ultimate hybrid shopping experience for users, businesses can improve consistency across all channels or touch points, from brick and mortar stores to mobile devices. Branding, design, and product offerings should be consistent, and every platform can be leveraged to increase customer loyalty. Successful eCommerce websites are great at offering cross-promotional campaigns like alerting customers on their mobile devices of in-store programs and sales.


To take advantage of the global eCommerce potential, businesses must be able to present an organized, customer-centric website that can be viewed in multiple languages. This means localizing a website for various countries and their spoken languages.

Begin localizing and translating static content that is relevant for users such as your home page, the frequently asked questions section of the website, and pages with shipping and return information. If you have dynamic content that needs to be translated, a localization automation platform can help translate your website by pulling strings of content, translating them, and pushing them back out to your website so that your global customers are always viewing information in their native language. A localization automation platform can also detect when new content is added to the website, so you can focus on your core business responsibilities.

Increasing Leads, Sales, and Profit

eCommerce is being adopted by shoppers around the world and businesses must adapt and adjust their selling strategies to compete with competitors and increase leads and overall profit. If you want to learn more about localizing your eCommerce website and expanding into new global markets, view the Localization Benchmark Report and find out which industries are localizing and why.



US Enterprises Struggle to Localize in China

There is no one-size-fits-all explanation for how to localize in another country, but history has proven that it is especially difficult for enterprises to expand to China. Even some of the most highly regarded American companies have not been able to replicate the success seen in their native country, most notably for the following three reasons:

  1. China’s complicated legislative and political system
  2. Fair trade laws which favor Chinese partnerships
  3. Inadequate market and lifestyle research

Knowing one of the easiest ways to succeed is to learn from the mistakes of others, find out why some of the industry’s largest companies failed when localizing in China. With the right localization plan, you can capitalize on the large Chinese market and increase brand awareness, drive revenue, and enjoy overall growth.

China’s Complex Political System Defeats Google

Many U.S. companies have unsuccessfully expanded into China because of the country’s complex legislative and political system — the most notable being successful search engine company, Google. Google’s complete lack of adoption by the Chinese was the direct result of the Great Firewall of China, a set of censorship and information sharing requirements created by the Chinese government.

Google Localization in China Unsuccessful

Source: BGR

Google Fights a Losing Battle

To better understand the hurdles that were created by the Firewall, we’re going to look at Google’s arduous five year battle with Chinese government.

  • May 2005 – Google abided by the government rules of censorship, rolling out its web address only to find that unexplained website outages were occurring on a regular basis. Chinese competitor Baidu, which catered to the local population, did not experience any website or service outages.
  • December 2005 – Google’s license to operate in China was declared invalid by the government under claims that the American company did not make it clear they were an internet service as opposed to a news portal (foreign-run news portals are banned in China).
  • June 2007 – After a year-and-a-half of negotiations, Google was able to restore its license, but it was too late. Many Chinese consumers had formed opinions that the search engine was an unwelcome outsider providing unreliable service.
  • October 2007 – The government’s policy requiring companies to store personal data within China was met with much resistance from Google. To avoid handing over customer’s personal data to the Chinese government, Google limited it’s regular service offerings in China, removing Gmail, Blogger, Picasa, and YouTube.
  • August 2008 – Leading up to the summer olympics, China increased its web restrictions, requiring Google to censor results on the .cn website and remove objectionable links from the Chinese-language version of Google. Google felt it was doing China’s dirty work, repressing the freedoms of Chinese-speaking people all over the world.
  • June 2009 – Google rolls out the “suggest feature” in China which predicts what the searcher is going to type. Unfortunately, the system was hacked, causing the suggest feature to recommend vulgar and explicit search terms for seemingly normal searches. For instance, when the Chinese word for “son” was typed, the returned suggestion was “love affair between son and mother” and directed searchers to pornographic images.
  • December 2009 – As Google’s security team dug further into the hacking fiasco that took place earlier in 2009, they found that the Gmail and accounts of Chinese human rights activists were also targeted, specifically to gain knowledge of their contacts and detailed plans about future campaigns.

The major hack was a breach of Google’s core values and the decision was made to exit the Chinese market. While some say that Google was unable to catch up to Chinese competitor Baidu because it did not cater to the needs of Chinese consumers, a large part of the company’s failure was the result of rules implemented by the local government.

Unwillingness to Partner with Chinese Companies Hinders Tesla’s Localization Efforts

Tesla entered the Chinese market in hopes of following in the footsteps of German car manufacturer Audi who has not only found success in China, but whose name has become synonymous with luxury – something highly valued in a status-obsessed nation like China. Unfortunately, Tesla’s dreams of localization in China went unrealized, despite being viewed as a comparable (and to some, superior) car brand to Audi among Americans.

Tesla Enters Chinese Market

Source: CNN

Where Tesla Went Wrong

While product offerings are somewhat similar between Tesla and Audi in the US, Tesla did not conform to China’s Fair Trade law which encourages partnerships between Chinese and US companies. By not forming a joint-venture with a Chinese manufacturer, Tesla was able to protect its proprietary information, but on the other hand, was not legally allowed to manufacture their cars within China. Every time a Tesla vehicle is sold to a customer in China, it’s assembled in America and shipped to China, adding a heavy expenditure and a minimum three month waiting period, which has negatively impacted overall sales.

More than a Car: Audis Equate High Status

Much of Audi’s success in China can be attributed to their long-term cooperation with the FAW, a Chinese, state-owned, automotive manufacturing company. When Audi first entered the market, its board recognized the partnership was not ideal for the German-based company, but moved forward. Audi rewarded with fast foreign enterprise licensing in China, cost-efficient distribution of their product, and expert insight into Chinese culture for marketing campaigns.

Based on trust and mutual support, the successful partnership between Audi and FAW continues to evolve and succeed. After more than two and a half decades of success in China, driving in Audi isn’t just a perk, but a signal of its occupant’s importance. And a bonus – the black Audi A6 is the preferred government vehicle for transporting bureaucrats and government officials which is great not only for branding, but long-term sales. Tesla’s failure and Audi’s success in China are direct results of independent decisions regarding local partnerships, and should serve as an example for any companies looking to expand into the developing nation.

Improper Market Knowledge Sends Home Depot Packing

Bringing in more than 6 billion dollars of gross revenue in the 2015 fiscal year, it’s clear that Home Depot has a strong hold on the home improvement industry. To bolster sales even further, the company looked to China, a country with a growing middle class and millions of new homeowners who valued practicality, ingenuity, and thrift.

Home Depot Unsuccessful in China

Source: Reuters, Donald Chan

Demise from a Tunnel Vision Strategy

Home Depot found success in the United States by promoting the “do-it-yourself” lifestyle, appealing to a homeowner’s pride of ownership and desire to add custom craftsmanship to his or her home. The issue in China, which was identified almost immediately after the first few stores opened their doors, was that the Chinese weren’t fond of the DIY lifestyle. In fact, the standard was to hire a handyman for household fixes and regular maintenance because of the cheap cost of labor. Home Depot expanded to China with tunnel vision, only focusing on the vast number of new homeowners and as a result, tried to force their American-based model into a market that simply didn’t have the same consumer needs or share the same lifestyles.

To add insult to injury, Home Depot didn’t think about the typical home in China which is much different than the typical suburban home in the United States. Instead of a single-family residence with a front yard, back yard, and garage, most Chinese live in a multi-story building. Not only does this eliminate any yard work, without a garage, there’s nowhere to even store tools. And for the elite who can afford a single-family suburban home, they’re most likely outsourcing home construction for a low cost.

A Quick Exit from the Chinese Market

Lifestyle is vastly different from one country to another, especially between a developed Western country like the United States and a developing nation like China. Localizing into a country based upon its large population is not a viable strategy. Companies need to take the time to analyze the consumer base in any country they’re planning to enter, identifying if their product or service will fit into the current culture and lifestyle. Home Depot quickly learned that China was only the ideal market on a surface level, closing seven of the twelve stores that were opened in the country.

Lessons Learned

Along with Google, Tesla, and Home Depot, American companies like eBay, Mattel, McDonalds, and Walmart have all found China’s unique group of customers difficult to market to. But that doesn’t mean that expanding into China is impossible. Companies simply need to understand that localization isn’t just about opening an office and creating products with Chinese packaging, but conducting comprehensive research about the area’s laws, consumer buying behaviors, and lifestyles and values.

If you’d like to learn more about localization, download the free Localization Benchmark Report and find out why more and more companies are starting to expand into new global markets.



An Entrepreneur’s Guide for Finding Awesome Mentors

Successful businessmen like Steve Jobs have been notoriously open about the inspiration they derive from powerful historical figures and personal mentors; and it’s common for CEOs and other professionals to meet with advisers for guidance. Any entrepreneur understands the importance of looking to other successful individuals to supplement their own knowledge – to help them see opportunities they may miss on their own – and to overpower their negative thoughts and self doubt with positive thinking.

So whether you just quit your day job to aggressively pursue a startup or you’ve hit a roadblock with an established business, you will also benefit from having at least one good mentor. As a startup ourselves, Transifex knows the importance of learning from other success stories, and shares the following guide for how to identify awesome mentors, and most importantly, how to approach them with class.

Identifying Potential Mentors

While anyone who’s found success in his or her industry can inspire you to work harder, you should select your mentors with great care. One strong mentor is often better than a stable of mediocre mentors. You’ll know you’ve found the perfect match when you come across someone who is:

  • Further along the entrepreneurial track. It’s great to connect with those at your own level or with less experience, but the best mentors have a proven track record from which you can learn and grow. That’s why you’re looking for a mentor in the first place, right?
  • Just as interested in mentoring as you. Mentorship, even if it’s just an in-person meeting once a month, is valuable. However, if you can find a mentor willing to communicate with you more frequently, they can become a sounding board for which you can test new ideas, kill negative thinking, and brainstorm creative solutions to problems. Their willingness and enthusiasm to help is a great motivator for you as well.
  • Not personally invested in your business. All entrepreneurs and business owners get too close to their own problems and struggle to see their brand as it is perceived by customers and competitors. The best mentors aren’t personally invested, and can give you an outside view, delivering valuable insight that you can’t obtain on your own.

Creating a List of Inspirational (and Realistic) Prospects

Start your list by identifying successful people you know in real life who may have mentor potential.  Expand your list by connecting with new people. Attend networking events and start participating in online professional groups. Join local clubs, boards, and organizations dedicated to business-minded individuals and entrepreneurs. Attend seminars and conferences where you may meet others interested in growing their businesses. When someone catches your interest, add them to the list and try to get to know them better.

So, that all sounds great. But how do you find the events that are right for you? Here are a couple great places that can help you find speaking engagements, events, and seminars to attend:

  • – Quickly growing in popularity among professionals, is a great resource to connect with like-minded and successful individuals in a wide variety of industries. The company describes itself as, “neighbors getting together to learn something, do something, share something…” and has a large group of active users which means endless networking potential. Another great feature of is the ability to create your own meetup, which can be tailored to your specific networking and business goals.
  • – is a website devoted to professional events, serving as a directory of the top events by state and city, while also offering a library of information including what’s going on at each scheduled event as well as presented slides, video, and podcasts so you have access to information from any conference you attend. And we’re not the only ones who like Lanyard. The company was acquired by one of the largest ticketing and events platforms, Eventbrite, with the goal of providing customers around the globe with the opportunity to network face-to-face, while enhancing the quality of professional events for speakers, attendees, and companies.

For an even more comprehensive list, add well-known businessmen and women, and even celebrities that you find inspiring. You might never have the opportunity to sit down with them personally, but you can attend their professional conferences, read their books, and follow them on social media to form an indirect mentorship. We also love listening to podcasts created specifically for entrepreneurs, which can give listeners unique insight into the backgrounds of successful individuals in a wide range of industries.

Approaching Potential Mentors

Asking a professional to serve as your mentor is a bit like asking the most popular girl in high school to the prom. You know many other entrepreneurs would enjoy working with this person and you know they have a schedule just as packed as yours. You want to convey your genuine interest, but you don’t want to sound needy or make them feel guilty if they aren’t interested. Don’t complicate the situation and select the most natural form of communication for your current relationship. If it’s someone you don’t see in your daily life, you may send them an email message. If you have their phone number and have spoken with them over the phone before, a call may work best. If this is someone you know personally, invite them out to dinner or meet them for coffee.

When speaking to a potential mentor, put all of the following information on the table right from the start so that your potential mentor can determine their level of interest:

  • The reason you have selected them as a potential mentor.
  • The communication channels you are willing to utilize. Do you prefer to meet in person or are you open to Skype, phone conversations, and/or text messaging?
  • How frequently you would like to meet.

You’re more likely to get a yes from someone already familiar with you on some level, so look for opportunities to interact with potential mentors prior to approaching them with your request. You may end up with one golden mentor or a stable of professional friends. But you’ll never know until you step beyond your comfort zone.

Integrating Transifex with Bamboo (Part 2)

Earlier this week, we shared a post about integrating Transifex with Bitbucket. In addition to Bitbucket, Atlassian offers a continuous integration server called Bamboo. Bamboo lets you automatically setup, build, and deploy projects. Integrating Transifex with Bamboo lets you update your project’s localization files in an automatic and seamless way.

The Bamboo workflow is split into five components:

  • Tasks are the individual work units in a Bamboo project. A task is any discrete action such as checking out a project from source, executing a script, or, in our case, calling an external program such as the Transifex Client.
  • Jobs are used to control multiple tasks. They specify task execution order, enforce requirements, and collect artifacts created by tasks.
  • Stages represent steps within a build process. As an example, you might use three separate stages for compiling, testing, and deploying code.
  • Plans organize work units, builds, and tests. They also allow you to link to code repositories, generate notifications, configure permissions, and specify variables.
  • Projects organize multiple plans under a single logical unit.

For more information on Bamboo’s structure, click here to go to the Atlassian documentation site.

Installing Bamboo

Bamboo can be installed on a server or hosted on a cloud instance. This article assumes Bamboo is being installed on a server.

Navigate to Bamboo’s download page and download the executable for your server operating system. From there, navigate to Atlassian’s documentation site to find more information on installing Bamboo for your particular OS. When the installation is finished, access Bamboo by opening a web browser and navigating to http://<server IP address>:8085. You may need to open the port in your server’s firewall.

Bamboo requires a valid license before it can start. If you haven’t already, generate a trial license by logging into your Atlassian account and requesting an evaluation license. After Bamboo verifies the license, it will ask you to create a new administrator account for the Bamboo agent. Once the account setup is complete, you’ll be greeted by the Bamboo home screen.

Creating a New Project

To create a new project, click the Create button at the top of the screen, then click “Create a new plan.” This brings you to the plan configuration screen where you can enter details about the new project. We’ll create a new project for our Node.js app:

Make New Project in Bamboo


Click “Configure plan” to create the new project. Along with the new project and plan, Bamboo creates a default stage and a default job. Since we specified a Bitbucket repository, Bamboo automatically creates a task to retrieve the source code from the repository. Next, we’ll add tasks that synchronize the source code with Transifex using the Transifex Client.

Adding a Task Command to Bamboo

To run the Transifex client during the build process, we need to add a new task to our default job. Bamboo supports a variety of tasks for generating logs, deploying to cloud services, or even executing Maven or Ant tasks. In this case, we’ll use the Command task to run a command that calls the Transifex Client.

Before we do this, we need to register the Transifex Client as an executable. Navigate to the Bamboo administration page by clicking the gear icon in the top-right corner of the screen, then click “Overview”. Under the “Build Resources” section on the left-hand navigation menu, click “Server capabilities.” This will show you the actions available to the Bamboo server, including the executables available to your build plan.

Scroll down until you see the “Add capability” section. Under “Capability type,” select “Executable,” then select “Command” for the type. Enter an identifier for the command, followed by the path to the executable that you want to run (in Ubuntu Linux, the Transifex Client executable is found at /usr/local/bin/tx). Click the “Add” button to register the new executable with Bamboo:

Adding Transifex Client to Bamboo

Navigate back to your project by clicking “Build” at the top of the screen, then “All build plans.” Edit the project by clicking the pencil icon on the right-hand side of the screen, across from the project name. Under “Plan Configuration”, click on the default job. Switch to the “Tasks” tab, then click the “Add task” button. Bamboo prompts you for the type of task to add:

Add a New Task

Click the “Command” task and select the “Transifex Client” executable we defined earlier. In this task, we’ll push the latest source files to Transifex. Under arguments, type “push -s.” Add a small description, then click Save. Repeat this process to create a new command that pulls the latest translations from transifex using the command tx pull -a.

Note that you may need to specify the “Working Sub Directory” field before the command will successfully execute. The working sub directory tells Bamboo to run the command in a folder relative to the project’s root folder. If your Transifex configuration is stored somewhere other than in the project’s root directory, you’ll need to specify the directory here. The best way to determine this is to run the Transifex Client in your project, note which subfolder you ran the command in, then enter that subfolder as the working sub directory.

How to Create a New Command

Next, we’ll run the plan and generate a new build.

Run the Plan

To generate a new build, click the “Run” button in the top-right corner of the screen. Your build will begin in the background, and the results will be displayed in the Build Dashboard.

Build Dashboard on Bamboo

Click into the build to see the results. If it was successful, you should be able to see output from the Transifex Client in the Logs tab.

Client Output in Tx

You can use this same process to integrate Transifex into an existing Bamboo project. Once the Transifex Client is registered as an executable, add two tasks to your project that call the tx push and tx pull commands. Make sure you do this earlier enough in your build process so that you can reliably test and package the localization files with the rest of your project.

For more information on integrating Transifex into your projects, visit the Integrate Transifex documentation page.