Skip to main content

What are quality checks?

Quality checks (QA checks) in LingoHub automatically validate translations against pre-defined rules to ensure brand consistency, technical accuracy, and formatting compliance.

When a translation violates an active QA rule, LingoHub immediately displays a warning badge in the Languages view and on the affected segment inside the Editor.

Looking for setup instructions? Learn where to find and configure quality check rules in our Overview of QA settings guide.

How QA warnings work in the Editor

When a translation violates an active QA rule, LingoHub flags the affected segments both at the project dashboard level and inside the Editor. Team members can then quickly identify and resolve potential translation errors:

  • Languages view (Project overview): Under a project's Languages tab, target languages containing QA violations display a shield icon with the total count of flagged segments under the Needs review column. View the affected segment and reason for the QA flag in the Editor.

  • Editor context panel: The context panel lists specific rule violations under the Quality checks section (e.g., Characters length maximum: 20).

  • Clearing warnings: If a user manually sets a flagged segment to Approved, the QA check warning for that segment clears.

Supported QA validation rules

Length checks

Ensures copy complies with pre-configured minimum or maximum character limits.

Target text

Configured length constraint

Result / Status

Confirm

Min. 6 characters

No errors (Length: 7)

Send

Max. 3 characters

Error: Exceeds length limit (Length: 4)

Whitespaces checks

Leading/trailing spaces

Checks whether the source and target text start and end with the exact same amount of spaces.

Source text

Target text

Result / Status

Welcome to LingoHub

Willkommen bei LingoHub

Error: Missing leading space

Welcome to LingoHub

Willkommen bei LingoHub

No errors

Multiple spaces

Detects unintended multiple consecutive spaces inside the target text.

Source text

Target text

Result / Status

Welcome to LingoHub!

Willkommen bei LingoHub!

Error: Multiple consecutive spaces detected

Welcome to LingoHub!

Willkommen bei LingoHub!

No errors

Line break consistency

Ensures that the source and target text contain the exact same number of line breaks.

Source text

Target text

Result / Status

Well

done!

Gut gemacht!

Error: Missing line break in target text

Well

done!

Gut

gemacht!

No errors

Placeholders checks

Ensures required variables (e.g., %{username}) are accurately preserved and not added unnecessarily.

Source text

Target text

Result / Status

Well done!

Gut gemacht %{username}!

Error: Unnecessary placeholder added

Welcome to LingoHub %{username}!

Willkommen bei LingoHub !

Error: Missing placeholder

Welcome to LingoHub %{username}!

Willkommen bei LingoHub %{username}!

No errors

Markup checks

Checks for missing, altered, or extra HTML tags between source and target content.

Source text

Target text

Result / Status

Well done!<br />

Gut gemacht!

Error: Missing tag (<br />)

Well done!

Gut gemacht!<br />

Error: Superfluous tag (<br />)

Well done!

Gut gemacht!

No errors

Terminology checks

Terms missing

Flags missing required Glossary terms or their mandatory target translations.

  • Glossary rule: workspace (EN) ➔ must be translated as Arbeitsbereich (DE)

Source text

Target text

Result / Status

Welcome to your workspace!

Willkommen in Ihrem Bereich!

Error: Required term missing ("Arbeitsbereich" expected)

Welcome to your workspace!

Willkommen in Ihrem Arbeitsbereich!

No errors

Terms not recommended

Triggers when the translation uses a term explicitly marked as forbidden or not recommended in your glossary.

  • Glossary rule: Konto is marked as forbidden/unrecommended in German (use Account instead)

Source text

Target text

Result / Status

Manage your account settings.

Verwalten Sie Ihre Konto-Einstellungen.

Error: Uses forbidden glossary term ("Konto")

Manage your account settings.

Verwalten Sie Ihre Account-Einstellungen.

No errors

Untranslatable check: Same content

Flags target texts that are identical to the source text, alerting users to potentially uncopied or untranslated content.

Source text

Target text

Result / Status

Save settings

Save settings

Error: Source and target copy are identical (potentially untranslated)

Save settings

Einstellungen speichern

No errors

Quotes and delimiters

Quote mismatch

Triggers when opening and closing quotation marks in the target text do not match in count.

Source text

Target text

Result / Status

Click "Save" to continue.

Klicke auf "Speichern zu fortfahren.

Error: Missing closing quotation mark

Click "Save" to continue.

Klicke auf "Speichern" um fortzufahren.

No errors

Quote translation

Validates that quotation mark styles follow target locale conventions (e.g., using German typography quotes „“ instead of English straight quotes "").

  • Target locale: German (de)

Source text

Target text

Result / Status

Select "Settings"

Wähle "Einstellungen"

Error: Incorrect quotation style for German locale

Select "Settings"

Wähle „Einstellungen“

No errors

Locale formatting

Date format

Validates date structures against target locale standard patterns (e.g., US MM/DD/YYYY vs. German DD.MM.YYYY).

  • Target locale: German (de)

Source text

Target text

Result / Status

Event date: 12/31/2026

Veranstaltungsdatum: 12/31/2026

Error: Date structure does not match target locale conventions

Event date: 12/31/2026

Veranstaltungsdatum: 31.12.2026

No errors

Date translation

Flags written date components (like month or day names) that remain untranslated.

  • Target locale: German (de)

Source text

Target text

Result / Status

Created on October 15

Erstellt am October 15

Error: Month name untranslated

Created on October 15

Erstellt am 15. Oktober

No errors

Time format

Triggers when the time syntax does not align with regional preferences (e.g., 12-hour AM/PM vs. 24-hour clock).

  • Target locale: German (de)

Source text

Target text

Result / Status

Meeting at 02:30 PM

Meeting um 02:30 PM

Error: 12-hour format with AM/PM used instead of 24-hour format

Meeting at 02:30 PM

Meeting um 14:30 Uhr

No errors

Time translation

Triggers when local time-designators or units (e.g., a.m./p.m. or hours/minutes abbreviations) are not localized for the target locale.

  • Target locale: German (de)

Source text

Target text

Result / Status

Starts at 9 a.m.

Beginnt um 9 a.m.

Error: Time designator untranslated

Starts at 9 a.m.

Beginnt um 9 Uhr

No errors

Number format

Triggers when thousands separators or decimal points do not follow target locale conventions (e.g., 1,000.50 in English vs. 1.000,50 in German).

  • Target locale: German (de)

Source text

Target text

Result / Status

Total price: $1,250.99

Gesamtpreis: 1,250.99 €

Error: Uses comma for thousands and dot for decimals

Total price: $1,250.99

Gesamtpreis: 1.250,99 €

No errors

Punctuation checks

Punctuation

Flags structural differences in general punctuation patterns (such as colons, commas, or ellipses) between source and target text.

Source text

Target text

Result / Status

Status: Active...

Status Aktiv.

Error: Missing colon (:) and ellipsis (...)

Status: Active...

Status: Aktiv...

No errors

Punctuation: End character

Triggers when the trailing character at the end of the target segment does not match the trailing character of the source text.

Source text

Target text

Result / Status

Welcome to LingoHub!

Willkommen bei LingoHub.

Error: Mismatched end character (period instead of exclamation mark)

Welcome to LingoHub!

Willkommen bei LingoHub!

No errors

Duplication checks

Detects identical words or phrases that are accidentally repeated sequentially inside the translation.

Source text

Target text

Result / Status

Click here to submit.

Klicke hier hier zum Absenden.

Error: Duplicate word detected ("hier hier")

Click here to submit.

Klicke hier zum Absenden.

No errors

HTML attributes: Translatable HTML attributes

Flags modifications to non-translatable HTML attributes outside the permitted list (e.g., changing id, class, or style instead of allowed attributes like alt, title, or placeholder).

Source text

Target text

Result / Status

<img src="logo.png" id="main-logo" alt="Company Logo" />

<img src="logo.png" id="haupt-logo" alt="Unternehmenslogo" />

Error: Forbidden attribute modified (id="haupt-logo")

<img src="logo.png" id="main-logo" alt="Company Logo" />

<img src="logo.png" id="main-logo" alt="Unternehmenslogo" />

No errors

Need more help?

Couldn't find what you were looking for? Reach out to our team at [email protected], and we will gladly assist you.

Did this answer your question?