Untranslated strings

Untranslated String Detector

An untranslated string detector turns same-as-source target values into a review list instead of leaving them hidden in the file.

Examples

Source JSON
{
  "billing.cancel": "Cancel subscription",
  "brand.name": "LocaleQA",
  "billing.renew": "Renew plan"
}
Target JSON
{
  "billing.cancel": "Cancel subscription",
  "brand.name": "LocaleQA",
  "billing.renew": "プランを更新"
}
Expected finding
Same as source: billing.cancel
Likely acceptable but review-worthy: brand.name
Release impact
The unchanged brand name may be intentional; the unchanged billing action is likely a missed translation.

Who reviews same-as-source strings

Vendors and reviewers decide whether a string should remain unchanged. Localization PMs need a compact list of candidates, and QA teams need confidence that English or source-language strings were not accidentally shipped.

Same-as-source strings can slip late into a release because the file is syntactically valid and the UI may still render. The problem is not technical failure; it is missed review scope.

Why JSON validity is irrelevant here

JSON validation cannot distinguish a correctly preserved product name from an untranslated sentence. It only proves the file parses.

LocaleQA uses deterministic source-target comparison after trim-only matching. It does not infer language quality or decide whether an unchanged string is wrong; it identifies candidates for human review.

Manual versus automated detection

Manual detection depends on someone scanning the target file for source-language text. Automated same-as-source checks are more repeatable, especially for long files, repeated UI labels, and delivery reports that need auditability.

Related pages