A few months back, we got the task of adding Arabic language support into our social media listening tool, which was a hefty challenge, in addition to the part you write how the logic for translation works (we didn't use a localization library), you also have to make sure that logic is applied to all corners of the application.
This involved three main parties, the developer; who had to apply the logic, the QA engineer; who had to ensure that logic is applied correctly and evenly everywhere it was valid, and the content team; who had to write the translated content for all text found in the tool.
Here is the initial workflow, content team went ahead and extracted the text from the tool, managing to extract 600+ pieces of text, and began working on translating them in a google sheet.
I would then build an easy way for them to update our database with their translations.
Now QA had to verify 2 things for every piece of text:
- developer has applied translation logic to that text
- content team has that piece of text translated
You can imagine how quickly this can turn into an agonizing pit of inefficient communication..
so what's the solution
Developers should already apply the translation logic to every text in the tool using a t
function, every time this function is called it tries to find some text in the dictionary, and return the result if found (and the original if not)
This means we could already extracted all untranslated text without the need for manual scanning.
This way of automated scanning managed to get 7000+ pieces of text, more than 1000% increase compared to the originally manually extracted number.
Along with adding visual indicators to help QA determine why some text is untranslated, providing an webhook that runs with every edit of the translation sheet, that automatically updates the database, we estimate these enhancements to have saved at least 70% of QA time and a huge amount needless communication.
Top comments (0)