News

Internationalising a multi-tenanted web application

By John Cleary
25/04/2019

Internationalising a multi-tenanted web application

The challenge

When CR Worldwide came to us and asked if we could internationalise their sales incentive, rewards, and recognition platform, we knew there would be significant challenges to overcome. The platform had not been built to support multiple languages, and while Ruby on Rails (the framework powering their platform) does natively support internationalisation, it still required an amount of up-front work to bring it to life.

However, the static content of the site was by far the least concerning aspect of the development. There is, in fact, very little of the platform that is static – virtually every element on every page is customisable or configurable to the specific requirements of each client. We would have to devise a way to allow translators to edit content for every word, phrase, block of text, and list. Even images, many of which had text overlayed, would have to be accommodated.

Planning workshop

Knowing that the project would likely run over several months, we decided to have a full-day workshop to plan our approach. This would allow us to answer three important questions:

  1. Delivery approach How would we build, test, and deploy the deliverables?
  2. Key deliverables – How would we break the project up?
  3. Priority – Would there be a benefit to delivering them in a particular order?

Delivery approach

Following the workshop, we agreed we would build, test, and deliver the features at the same time. We knew we would have to deliver other features in parallel, and to avoid the issues with a big bang deployment, it made sense to deliver using feature slices and feature toggles. This approach, known as ‘Continuous Delivery’, enabled us to receive feedback quickly and would reduce the overall risk. Both to the platform and to the project.

The solution

We used an off-the-shelf package called Crowdin with a slick interface that our client loved. It integrated with GitHub too, so translations could be automatically pushed to the codebase for review. We evaluated other tools, such as LocaleApp, which did have an intuitive interface. However, it required greater levels of configuration and the client would pay for features they would not use. Crowdin hit the sweet spot of price and functionality.

We had to devise an editor for the client-specific content. This was no mean feat as the amount of content varied from one programme to the next. Rather than building an editor that was tied to the specific implementation, we instead chose to create a dynamic editor that could be reconfigured to accommodate the changing nature of the platform. While this was more effort in the early stages, the payoff came as we progressed. The finished product is robust and sophisticated, and could even be ported into another application if needed.

Data-driven translation interface in the admin area

Even better, as new features are added to the platform, we only need to add a line or two to the configuration file and it’s fully internationalised.

The final piece of the jigsaw would be the Content Management System (CMS). MyRewards has an integrated and bespoke CMS in the back-end, complete with asset management for images and custom JavaScript. The CMS is designed for in-line editing using a combination of plain text areas and WYSIWYG editors courtesy of CKEditor. Early on in the planning stage, we hoped it would be possible to somehow switch between languages via an off-page drop-down and then, through the power of Ruby on Rails, it would work. And it did. Of course, there were some barriers along the way. But, for the most part, it behaved as expected, and the client was thrilled.  

The outcome

Since completion of the project, the client has delivered multi-lingual programmes for around 10% of existing clients, while increasing programme engagement by removing the language barrier. They have also converted three new clients off the back of being able to deliver reward programmes in up to eight new languages. But, perhaps more importantly, they have brought on a raft of new multinational companies, ranging from IT suppliers to car manufacturers.

The languages module currently supports over a dozen languages, with both right-to-left and left-to-right layouts. It has become a key tool in the company’s marketing and sales strategy, setting it apart from the competition.

How can Createk help your business reach a larger audience?

Experience – We have years of experience, including over 40 in software development.

Expertise – We have developed skills in a wide range of business sectors, from marketing to healthcare, travel to finance.

Agility – We are dynamic and flexible. We work effectively and respond to change fast.

If you’re interested in finding out more please get in touch and see how Createk can help your business.

Ready for a chat? Call us on: 0330 995 0685 Email us on: info@createk.io

We’d love to work with you! To speak to a member of our team please call or email us or fill out our quick enquiry form.