Localization QA

Find what the translation broke before your users do.

A translation can read well and still break the program: a lost hotkey, a damaged placeholder, text that no longer fits. Validate & Fix checks every string of the project against its original and fixes many of the issues in one step.

Compare editions

ProjectMyApp.exeDEValidate & FixSourceGermanNew OrderNeue Bestellung&Customer:Kunde:Kunde:&Kunde:Quantity:MengeMengeMenge:Ship todayNoch heute versendenSaved: %sGespeichert: % sGespeichert: % sGespeichert: %sNeue BestellungKunde:MengeMenge:Noch heute versendenNoch heute versendenErstellenAbbrechenOutputIssues found: 4 · Fixed: 4 · Ignored: 0 · Remaining: 0Inconsistent hotkeyKunde:FixedMissing colonMengeFixedText truncation in dialogNoch heute versendenFixedC++ Formatting StringsGespeichert: % sFixed ProjectMyApp.exeDEValidate & FixSourceGermanNew OrderNeue Bestellung&Customer:Kunde:Kunde:&Kunde:Quantity:MengeMengeMenge:Ship todayNoch heute versendenSaved: %sGespeichert: % sGespeichert: % sGespeichert: %sNeue BestellungKunde:MengeMenge:Noch heute versendenNoch heute versendenOutputInconsistent hotkeyFixedMissing colonFixedText truncation in dialogFixedC++ Formatting StringsFixedIssues found: 4 · Fixed: 4 ·Ignored: 0 · Remaining: 0
Checks
33 in seven groups, plus your own
Results
In Output: go to the string, fix it in place
Before release
Block on errors: no localized files with a broken format string
Editions
Validation: every edition. Crash Finder: Enterprise
On this page

A correct translation can still break the program.

Proofreading checks the words. The program also needs its placeholders, hotkeys, line breaks, and the room each control has. Translators and machine translation change them by accident, and nobody notices until the localized application runs.

  • Format strings. C++ and .NET format strings, FormatMessage arguments, and apostrophes in Java MessageFormat strings stay valid.
  • Spaces and punctuation. Line breaks, tabs, spaces at the edges, double spaces, brackets, initial capitals, and ending punctuation in the form of the target language.
  • Markup and numbers. HTML tags and entities, numbers, URLs, and e-mail addresses of the original are in the translation.
  • Hotkeys. A hotkey wherever the original has one, in a valid place, used once in a menu or dialog; the shortcut key of a menu item stays the same.
  • Dialogs and forms. Text cut off, and controls that overlap or fall outside the dialog.
  • Consistency. Terminology, translation memory, the same text translated the same way, and translations left equal to the source.
  • Spelling and length. Spell check with Hunspell dictionaries, and a maximum length you set.
  • Your own checks. Up to five regular expressions, compared in the original and the translation.

Most checks are on by default. Turn checks on or off for the project, or for single files, folders, and strings.

Every finding in Output, with a fix where one is safe.

Validate & Fix runs the checks you select and applies the fixes you select. A fix is offered only when it can really correct that translation; what needs a person stays for a person.

OutputValidation · GermanIssues found: 6 · Fixed: 0 · Ignored: 0 · Remaining: 6Issues found: 6 · Fixed: 3 · Ignored: 0 · Remaining: 3Issues found: 6 · Fixed: 5 · Ignored: 0 · Remaining: 1Missing colon3Fix all in this groupKundeKunde:FixedMengeMenge:FixedLieferdatumLieferdatum:FixedText truncation in dialog2Fix all in this groupNoch heute versendenFixedBeleg druckenFixedSpell check1SpellCheck: BestelungLingobit LocalizerThe fix "Text truncation in dialog" needs review:it will change 2 translations. Continue?YesNo OutputValidation · GermanIssues found: 6 · Fixed: 0 ·Issues found: 6 · Fixed: 3 ·Issues found: 6 · Fixed: 5 ·Ignored: 0 · Remaining: 6Ignored: 0 · Remaining: 3Ignored: 0 · Remaining: 1Missing colon3Fix all in this groupKundeKunde:FixedMengeMenge:FixedLieferdatumLieferdatum:FixedText truncation in dialog2Fix all in this groupNoch heute versendenFixedBeleg druckenFixedSpell check1SpellCheck: BestelungLingobit LocalizerThe fix "Text truncation in dialog"needs review: it will change2 translations. Continue?YesNo
  1. Choose the checksProject > Validate & Fix checks the whole project; a file, a resource, or the selected strings can be checked alone. Select the checks and the automatic fixes.

  2. Review in OutputResults are grouped by check and by file, with the issues found, fixed, ignored, and remaining. Double-click a result to go to the string.

  3. FixFix one issue, or Fix all in this group. For a fix that needs review, such as a larger control, Fix all asks first; one Undo reverts the whole group.

  4. Decide the restIgnore a check for a string, a file, or the project, or choose Enforce for Translator so the translator fixes it.

In dialogs: text that does not fit, and a hotkey letter used twice.

Validation finds text cut off in a Win32 dialog and grows the control, only inside the dialog and only where it overlaps nothing. It also reports controls that overlap or fall outside the dialog.

In the preview, Check Mnemonics finds a hotkey letter used twice in a dialog or form. The Duplicate hotkey check finds the same in every dialog, and its fix chooses a letter no other control uses.

Text cut off and controls outside the dialog: Win32 dialogs. Overlapping controls: Win32 dialogs, WinForms and Delphi forms. Check WPF layout by eye in the preview.

ProjectMyApp.exeDECheck MnemonicsSourceGerman&Customer:&Kunde:Co&mment:&Kommentar:K&ommentar:&Quantity:&Menge:Ship &today&Noch heute versenden&Print receipt&Beleg druckenNeue BestellungKunde:Kommentar:Menge:Noch heute versendenBeleg druckenErstellenAbbrechenLingobit LocalizerDuplicate mnemonics found: KOK ProjectMyApp.exeDECheck MnemonicsSourceGerman&Customer:&Kunde:Co&mment:&Kommentar:K&ommentar:&Quantity:&Menge:Ship &today&Noch heute versenden&Print receipt&Beleg druckenNeue BestellungKunde:Kommentar:Menge:Lingobit LocalizerDuplicate mnemonics found: KOK

Spelling, in the language of each translation.

Spell check is one of the validation checks. It uses Hunspell dictionaries and skips placeholders, abbreviations in capitals, and the shortcut of a menu item. Translation Hints suggests corrections for a misspelled word, or you add the word to the dictionary. Tools > Dictionary Manager installs dictionaries for the languages of your project.

Block on errors: no localized files while a format string is broken.

Set Validation before Create Localized to Block on errors: if a format string is broken, the localized files are not created. Warn creates them and lists the issues in Output. Warnings, such as a missing colon, never block.

ProjectMyApp.exeDECreate Localized FilesValidation before Create LocalizedBlock on errorsSourceGermanNew OrderNeue BestellungCustomer:Kunde:%d orders for %s%d orders for %sFür %s: %d BestellungenFür %s: %d BestellungenCancelAbbrechenOutputC++ Formatting StringsInconsistent format stringLocalized files were not created:validation found errors. See Validation in Output.Output folderEXEde\MyApp.exeNot created ProjectMyApp.exeDECreate Localized FilesValidation before Create LocalizedBlock on errorsSourceGermanNew OrderNeue BestellungCustomer:Kunde:%d orders for %s%d orders for %sFür %s: %d BestellungenFür %s: %d BestellungenCancelAbbrechenOutputC++ Formatting StringsInconsistent format stringLocalized files were not created:validation found errors. SeeValidation in Output.Output folderEXEde\MyApp.exeNot created
  • At the translator. With Enforce validation for translator, Translator Edition runs the selected checks on every save, so errors are fixed before the project comes back.
  • After machine translation. Safe fixes repair hotkeys, placeholders, line breaks, and punctuation at once; fixes that need review are never applied automatically.
  • While translating. Translation Hints shows the validation result of the current string, with Fix and Ignore.
  • In a build script. -validate runs the enabled checks and returns a non-zero exit code when it finds issues; -create follows Validation before Create Localized. Command line: Professional and higher.
  • Characters. Create Localized Files lists every string with characters that the code page of its file cannot hold.

Then run it. If it fails, Crash Finder finds the translation.

Project > Run Localized Application creates the files for the languages you choose and starts the application in the target language. If the translated application fails and validation shows no cause, Crash Finder builds test versions with part of the translations. You run each one and say whether it failed, and every answer halves the suspects: about ten runs are enough for a thousand translations.

Crash Finder: Enterprise

MyApp · German ! An unexpected error occurred. OK Which translation causes it? German version: error Which translation causes it? All translations Run 1Error Run 2Works Run 3Error Run 4Works … Found Source Order {0} was saved. Translation Bestellung {1} wurde gespeichert. {1} instead of {0} makes the application fail. MyApp · German ! An unexpected error occurred. OK Which translation causes it? German version: error Which translation? All translations Run 1Error Run 2Works Run 3Error Run 4Works … Found Source Order {0} was saved. Translation Bestellung {1} wurde gespeichert. {1} instead of {0} makes the application fail.

What Localization QA does and does not promise.

The checks compare each translation with its original and find what breaks the program or looks wrong. Whether the translation says the right thing is a person's call.

What Lingobit helps with

  • Checking every translation against its original
  • Fixing the typical damage in one step, with review where it matters
  • Text cut off in Win32 dialogs, hotkey conflicts in dialogs and forms
  • Stopping localized files while a format string is broken (Block on errors)
  • Finding the translation that makes the application fail

What remains project-side

  • Meaning, tone, and wording: a proofreader
  • The layout of WPF windows and other formats without dialog checks
  • Testing the localized application
  • Fixing the application when a translation is not the cause

AI review of translations: Coming soon for Enterprise.

Find what translation broke while it is easy to fix.

Validate & Fix, the dialog checks, Block on errors, and Crash Finder check the translated application before your users see it.