How we simplified and sped up localization of Wire support articles

July 27, 2017

Hi! My name is Nick, and I work at Wire as a QA Specialist. I’d like to share a success story about switching from copy/paste localization to script based flow for Wire’s support material. This saves time and energy for my colleagues in Support.

wire support site in german language

Wire Customer Support has been using Zendesk since we launched in Deceber 2014, and likes the system. Besides “classic” email support for Wire users, we also use Zendesk’s Help Center feature to manage FAQs and knowledge base articles about Wire. This is comprised of an extensive amount of regularly changing textual data. The Support Team updates the articles as the changes in the product are made public, which happens quite often.

We follow agile principles, so the duration of a single iteration can be short, only 2–3 weeks. At the end of the sprint, all the features and changes released to the Wire app across the various desktop and mobile versions should be reflected in knowledge base articles. When we launched localized FAQ maintaining this manually became a headache.

Originally our Help Center localization flow was a simple chain of actions:

  1. Create/update original articles in English in a spreadsheet.
  2. Alert the translators that the original content is ready and they can start translation (in the same spreadsheet).
  3. Copy and paste the original and translated content from the spreadsheet to the Help Center.
  4. Apply text formatting in the Help Center’s editor and add any necessary attachments.
  5. Save and publish the changes.

This flow had several disadvantages, mainly that the process was slow. It was complicated to track the changes and to keep the original and localized versions in sync. All this with just a single additional language — it was clear that additional languages would only further complicate the process, and decided it was time to change.

That’s when we turned to automation to help us out. We’d been using Crowdin translation management system for a while to speed up and optimize the localization process for all of Wire text assets (app, email, website, and so on).

We were curious to see if it could also be helpful in localizing the Help Center. After spending a week in Python IDE we had the answer. The script uses both Zendesk Help Center API and Crowdin API to connect both systems into a single translation flow:

  1. Now original/updated articles are created directly in Help Center as drafts, so all the rich text formatting is preserved.
  2. Content from the Help Center drafts is exported to Crowdin.
  3. After the translators finish translations in Crowdin, we trigger an import job, which applies translated articles back to the Help Center drafts.
  4. These steps can be repeated an unlimited number of times before the last step, which publishes drafts and makes them visible to all site visitors.
  5. Publish content.

The script is integrated with Jenkins, which allows to trigger it via simple web-interface — even non-technical users can do it. There are several nice perks in the improved flow:

• Crowdin has a built-in verification for translated strings, formatters balance, etc.

• Crowdin can automatically control translation readiness and notify translators/managers if an action is needed.

• Articles are always in sync, since they are controlled by the script and are stored in a single place. The chances of human error are greatly diminished.

The magic script is published under the Apache license as we’re big believers in open source software, and hope it can also save others hours of work (and some headaches).

Technical details are available at: https://github.com/mykola-mokhnach/zendesk-help-center-localization

Back to all posts