Chal­lenges of I18n — Part 2



The second part of a two-piece write-up on the inter­na­tion­al­isa­tion of large-scale applic­a­tions in hyper-grow­ing engin­eer­ing companies.

Quick intro­duc­tion

This is the second part of a two-piece write-up, if you missed the first part feel free to take a minute and give it a read here, it will help provide con­text on the top­ics approached below. You can also read the next chapter which con­tains a sum­mary of how we left things off at the end of the first article.

Pick­ing up where we left off

In the first art­icle, we went over our chal­lenges and decisions to imple­ment an ini­tial ver­sion of the inter­na­tion­al­isa­tion mech­an­ism for all the cus­tomer-facing and some internal tool­ing apps in a large-scale hyper-scal­ing com­pany. By the end of it, this was the trans­la­tion pro­cess that we had integ­rated into our deploy­ment pipelines:

A graphic of initials translation process
Fig­ure 1: A graphic of ini­tials trans­la­tion process

In the approach above, when a fea­ture added new strings that required trans­la­tions, the ori­ginal strings (in Eng­lish) would be sent auto­mat­ic­ally to the Trans­la­tion Man­age­ment Sys­tem, and the deploy­ment pro­cess would be blocked until trans­la­tions had been com­pleted. When that happened, the trans­lated strings would be sent back to code repos­it­or­ies and merged with the ini­tial fea­ture branch, which would then be ready for deployment.

In this second part, we’ll delve deeper into each of the iter­a­tions this pro­cess went through, out­lining the impact of each change on the qual­ity, speed and costs of the entire trans­la­tion chain.


An agile mindset

As in all agile pro­jects, our main ini­tial focus was ensur­ing a reli­able and stable trans­la­tion pro­cess that was flex­ible enough to allow for future improve­ments. This was key to the next steps where the main focus was improv­ing the over­all speed and qual­ity of the trans­la­tions, as well as the developer exper­i­ence when inter­act­ing with the process.

Internal review­ers in the trans­la­tion process

One issue that we had ini­tially was that some trans­la­tions were made with no con­text, and nat­ur­ally, the res­ult of these was not the most desir­able. A simple example of this is the word “Home”, which might appear in the con­text of a deliv­ery, in which case we’re talk­ing about a phys­ical place, or it can appear as a link to a sec­tion of the web­site, in which case it prob­ably means the homepage, and should be trans­lated accordingly.

In order to mit­ig­ate the issues caused by the lack of con­text provided to the trans­la­tion agency, we have decided to intro­duce internal review­ers in the trans­la­tion pro­cess (one per­son per lan­guage), this per­son would be someone who nat­ively spoke the lan­guage in ques­tion and was famil­iar with the pro­pos­i­tion. This helped us ensure that the trans­lated con­tent was accur­ate and con­sist­ent with the ori­ginal source text, which can be espe­cially import­ant when trans­lat­ing tech­nical or legal documents/pages, where even minor errors can have sig­ni­fic­ant consequences.

Internal review­ers also helped identify and resolve cul­tural or idio­matic issues that may not be imme­di­ately obvi­ous to the trans­lator, ensur­ing the trans­lated con­tent was appro­pri­ate and eas­ily under­stood by the tar­get audi­ence all this while provid­ing feed­back to the trans­lator on their work, which over time helped improve the qual­ity of trans­la­tions and reduced the need for post-trans­la­tion adjust­ments to strings.

At this stage, our trans­la­tion pro­cess looked like this:

A graphic of a Initials translation process
Fig­ure 2: A graphic of a Ini­tials trans­la­tion process

Ensur­ing align­ment between engin­eers and stakeholders

In such a large-scale pro­ject as the one we’re work­ing with, small things can have a large impact if not com­mu­nic­ated prop­erly and on time. In the ini­tial stages of the pro­cess, we noticed that some teams felt lost and didn’t know exactly what to expect from the trans­la­tion mech­an­ism, which ended up res­ult­ing in them doing things in a non-stand­ard­ized way (think of people send­ing spread­sheets with strings dir­ectly to the trans­la­tion agency to ensure pri­or­ity on their translations).

This kind of desync ends up slow­ing the entire pro­cess down and jeop­ard­izes some basic found­a­tions upon which it relies. So to ensure align­ment between the tech teams and every­one involved in the inter­na­tion­al­isa­tion effort, we applied the fol­low­ing mechanisms:

  • Cre­ation of I18n steer­ing com­mit­tee
    To facil­it­ate dis­cus­sions and decisions around Inter­na­tion­al­isa­tion strategy, we decided to cre­ate a com­mit­tee of people respons­ible for dif­fer­ent areas of the pro­cess, this allowed us to quickly find solu­tions for vari­ous prob­lems and agree on strategies to fol­low, which ended up being a key part of the pro­cess. This com­mit­tee included engin­eers, con­tent design­ers, trans­la­tion review­ers, as well as other coordin­at­ors that were mon­it­or­ing the process.
  • Reg­u­lar meet­ings with each engin­eer­ing team
    To tackle issues regard­ing the lack of clar­ity on the engin­eer­ing side of the pro­cess, we decided to hold a meet­ing with each of the tech teams that were using this sys­tem to demo how the integ­ra­tion with the TMS should work, and how to deal with some edge cases. This ensured not only align­ment in the pro­cess but also sur­faced some great sug­ges­tions from the engin­eer­ing teams for poten­tial improve­ments to the system.
  • Cre­ation of an I18n tech sup­port chan­nel
    One of the res­ults of the item above was the cre­ation of a chan­nel where engin­eer­ing teams could request help regard­ing the integ­ra­tion of their code repos­it­or­ies with our TMS. This was use­ful to cent­ral­ise this kind of request and also to share know­ledge between the teams so that they could see each other’s doubts and ques­tions answered.

Lever­aging AI for machine translations

As the expan­sion of the busi­ness moved for­ward, we kept facing bot­tle­necks with the through­put provided by the trans­la­tion agency, mean­ing that devel­op­ments were some­times stalled for days before they got trans­la­tions final­ised and were able to move on with their respect­ive deploy­ments. In order to tackle this issue, we decided to use arti­fi­cial intel­li­gence to per­form a first pass on trans­la­tions. At the moment, there are mul­tiple pos­sible pro­viders for this kind of ser­vice and some of them will even keep the same con­text through­out dif­fer­ent trans­la­tion jobs. This means that you could keep a con­sist­ent mes­sage and tone of voice across the web­site. Of course, using AI for web­site trans­la­tion also has some lim­it­a­tions, as AI may not always under­stand the con­text or cul­tural nuances of a par­tic­u­lar lan­guage, lead­ing to trans­la­tion errors.

In our case were able to move for­ward with this approach since we already had internal review­ers in place to make sure all trans­la­tions met the qual­ity stand­ards required to be shown to our cus­tom­ers. Some pop­u­lar AI trans­la­tion tools are Google Cloud Trans­la­tionDeepL and Microsoft Trans­lator.

This shift in the pro­cess drastic­ally decreased the time fea­tures took from design to pro­duc­tion while also redu­cing costs in the trans­la­tion pro­cess by over 80%.

Deploy­ing pre-trans­lated text to test environments

One other poten­tial avenue for improve­ments would be to allow deploy­ments into test/QA envir­on­ments with machine trans­la­tions so that engin­eers could val­id­ate the changes earlier while review­ers veri­fied the trans­la­tions in the TMS and fixed any minor issues that might surface.

With this pro­cess, the translation/deployment work­flow would look like this:

A graphic of deployment process with test deployment after AI translations
Fig­ure 3: A graphic of deploy­ment pro­cess with test deploy­ment after AI translations

The pro­cess above would now only be blocked on the step to deploy to pro­duc­tion, everything else could be done in par­al­lel without any delays intro­duced in the CI/CD process.

Trans­lat­ing at design time

Another altern­at­ive we have invest­ig­ated was to per­form trans­la­tions at design time. This approach would bring some bene­fits like ensur­ing that trans­lated con­tent fits within the web­site’s design, before send­ing those designs to the devel­op­ment phase. This would make adjust­ing the con­tent to fit each sec­tion a much smoother pro­cess and decrease the time spent adjust­ing the web­site struc­ture after trans­la­tions are finalised.

This approach can be even fur­ther stream­lined by integ­rat­ing the TMS with the design tools. One example of this is the integ­ra­tion avail­able between Figma and Smart­ling, where design­ers can request trans­la­tions inside Figma, and the strings are then sent to the TMS (Smart­ling) and can be trans­lated using the work­flows above (with AI or Human trans­la­tions + an internal review stage).

This approach might work very well for some scen­arios, so give it a good thought to under­stand if it fits your require­ments and is bet­ter than any of the above we’ve already gone through.

Final Remarks

In con­clu­sion, inter­na­tion­al­ising an e‑commerce plat­form requires care­ful con­sid­er­a­tion of mul­tiple factors, includ­ing lan­guage and cur­rency sup­port, loc­al­isa­tion of con­tent and images and com­pli­ance with local reg­u­la­tions and laws. By adopt­ing a struc­tured and sys­tem­atic approach, it is pos­sible to cre­ate a plat­form that is access­ible and usable by a global audi­ence, and that provides a seam­less and enjoy­able exper­i­ence for users in dif­fer­ent regions and countries.

There are many dif­fer­ent approaches to inter­na­tion­al­ising an e‑commerce plat­form, and the best approach will depend on the spe­cific needs and require­ments of your pro­ject. Whether you choose to use pre-trans­lated con­tent, machine trans­la­tion, or a com­bin­a­tion of both, it is import­ant to reg­u­larly review and test your inter­na­tion­al­isa­tion imple­ment­a­tion to ensure that it con­tin­ues to meet the needs of your users and cus­tom­ers and don’t be afraid to exper­i­ment and try new things.

We hope the inform­a­tion presen­ted in this art­icle will help you in your inter­na­tion­al­isa­tion efforts, and that you will be able to cre­ate a suc­cess­ful and thriv­ing e‑commerce plat­form that serves a global audience.