Automated Strings Management from GitHub

During a 40 hour work week, at least 4 hours of an individual engineer’s time is spent copywriting or making changes to the words that live in a product’s UI. And if a major UI refresh, localization project, or version or feature release is in progress, the amount of time spent drastically increases.

What is Strings Management?

Strings management is the ability to centrally store, audit, update, and create the words in a product or application’s UI, from a single location.

How to prep for automated strings management

If you want to stop making manual string updates every time a change request comes in, getting text strings out of source code and into a central, accessible location is essential.

Depending on the product roadmap or any upcoming projects, it’s usually wise to try and extract all text strings from source code and organize them according to your app version and channel set. Prepping for automated strings management from GitHub looks like this:

Step 1: extract text strings from source code, ideally using an automated solution
Step 2: designate “keys” which replace text strings in source code and function as the change mechanism for future updates via resource files
Step 3: parse resources files for strings & pull into the strings management platform
Step 4: update/modify text strings as needed in the platform
Step 5: export new resource files with updated/modified text strings and keys in your source code using tokens to call the right values to the right locations

Since manual string extraction can be just as daunting as manual updates, we would suggest looking for an open source or script based string extraction solution to help. Once your strings are extracted and centrally stored, you can start to manage the automated update workflow from GitHub.

How does automated strings management from GitHub work?

Automated strings management from a central platform actually creates a content branch to keep your strings up to date, providing a seamless 2-way sync for content updates at the engineer’s discretion.

You simply connect your strings management platform (SMP) with any repositories that feed your product and status checks to the content branch provide the necessary updates.


Step 1: Create a content branch
Your SMP creates a content branch to act as the source of truth for any UI content updates.

Step 2: Add commits
Keep doing your thing—writing code. Your SMP will not look at your code until you make a pull request.

Step 3: Open a pull request
Any pull request to the content branch triggers a status check. Your SMP instantly scans all chosen (whitelist/blacklist) resource files in your content branch, allowing merge if the files are up to date on changes. If the status check fails, the pull request will be halted until updates have occurred within your SMP.

Step 4: Let your SMP pull new UI content changes
If the status check fails, your unchanged strings are sent to your SMP, where all the updates occur. When updates, new content or changes are complete, the new or edited resource files are committed directly to a new branch under the name of your SMP.

Step 5: Check for the updated branch and pull
Once the updates are complete, your will see an automatic pull request to your feature branch from the SMP branch. Once you complete the pull request for the updated branch, the status check will pass and your feature branch can merge with your protected branch.

Step 6: Merge and carry on
Your feature branch, with the new or edited resource files, is now merged to the master. Once merged, pull requests preserve a record of the historical changes to your code. These records are searchable and provide an audit trail for you or anyone else who wants to see who changed what and when.

What are some use cases for strings management?

Once you have a fully functional and centralized strings management process, there are a few ways you maximize continuous string updates.

  1. Consistency across applications – when you can see your text strings across multiple versions (user, vendor, customer) or channels (Android, iOS, web, embedded) you can ensure that you display the same UI content, regardless of how your end-user receives it.
  2. Rapid, critical UI content updates – if a customer or product manager notices a critical mistake in your application – like a misspelling of your product name (it happens all the time) – the ability to make an instant change and check for the same error across apps makes a sudden crisis much easier to deal with, and in less time.
  3. Localization – centralized text strings are much easier to control when it comes time to translate them into another, or multiple, languages. Everything should remain as is, with the exception of your SMP taking over the localization/translation piece when needed, which means, no spreadsheets full of translated text for you to insert back into source.
  4. Removing copywriting from your job description – this one’s easy. Automating the strings management process has the obvious benefit of taking UI content edits and updates off your plate and giving them to the team members who want to devote their time to copywriting. Not to mention, some people devote their lives to the strategy that goes into product content, don’t you want to give your UX Lead this joy?