How do you notice that a translation went stale after the original changed?
Our interface runs in twelve languages, and the short strings turned out to be the easy part. The hard part is long pages: an article gets translated, then someone fixes a figure or rewrites a paragraph in the original, and every other version quietly keeps the old text. Right now we only keep pages without a translation out of search, which stops thin duplicates but does nothing for a version that was correct last month and is wrong today. I keep thinking about storing a hash of each source paragraph next to its translation and flagging any mismatch, but I have not built it, and I am not even sure a paragraph is the right unit. If you run a site in more than two languages, how do you find out that a translation is out of date, and who ends up fixing it?
Replies
We run 43 languages, and I agree the short strings are the easy part: the English file is the template and the build fails if a key is missing somewhere, so a string can't go stale without being noticed. For long pages (terms, privacy, FAQ) we don't detect staleness, we prevent it. Each page is a Markdown file per language with an updated date in its front matter, English is the version that prevails, and the rule in the repo's notes is: edit the English file first and carry the change into every translation in the same step, never later. The agent does the carrying, so the cost of touching 43 files is close to zero, and a quick check is whether all 43 dates match. On your hash idea: I'd pick the paragraph as the unit, but I'd give each paragraph a stable id rather than hashing its text. Then a translation stores the id plus the source revision it was made from, and "stale" is just "source revision moved", which also tells you which paragraph to fix. Sentence level hashes break every time someone fixes a comma. As for who fixes it, in my case the same commit that changed the original, or it doesn't get fixed at all.
I’d keep a version history for every translation and automatically flag it whenever the original text changes so reviewers can quickly find outdated content without manually checking every language
In my case, the AI agents just take care of it on their own. Honestly I don't remember whether I told them to work that way or they did it like that from the start, but so far it's working fine.