Localized Strings Automation
Automating translation-key generation and stale-key cleanup so Automated Compliance engineers no longer had to maintain JSON by hand.
Overview
Before this project, translation updates meant hand-editing JSON while coordinating keys and stale entries across branches. Strings drifted, keys went stale, and translations missed releases.
I built the pipeline that replaced the manual step. It hashes eligible strings in watched files, garbage-collects keys that are no longer referenced, and appends new ones to the JSON automatically. I also wrote a small interface in front of the i18n utilities that determines which strings actually need translation.
What I built
The pipeline used a build-time hook to watch team files for changes, compute a stable hash per string, and update the JSON. A teammate suggested the hashing approach, which made keys deterministic across branches. Staff-engineering review helped tighten key ordering and file synchronization so generated files stayed aligned across environments.
The interface layer kept Automated Compliance-specific calls behind a product-facing wrapper. Feature engineers using that path could leave translation eligibility, key generation, and JSON updates to the automation instead of coordinating direct calls to the i18n utilities.
I also raised a proposal with the i18n team around reverse lookup of translated strings for search in non-English locales. The overlap between my proposal and the i18n team's proof of concept helped validate the direction and clarified that the broader search problem belonged in the translation system, not in Automated Compliance.
Outcome
- Manual translation-key management stopped being routine feature work in Automated Compliance.
- Deterministic source-string keys and automatic stale-key cleanup reduced the manual drift that caused missed or stale translations.
- The reverse-lookup proposal clarified that broader translated-search behavior belonged in the shared translation system.
- The interface layer removed direct i18n utility calls from routine Automated Compliance feature work.
I could solve the key-management problem within our team's development flow. Discussing reverse lookup with the i18n team helped separate that work from search behavior that needed to be handled across products.