translation review
Use this skill when you need a quality review of an existing UniGetUI translation, not just coverage, but correctness, language integrity, and consistency against related languages.
Typical triggers: review translations, check translation quality, mistranslations, wrong language in translation, untranslated strings, localization QA, translation audit, spot-check a language file.
Scope
- Mechanically detect placeholder, HTML-fragment, and newline mismatches.
- Flag entries whose translation still equals the English source in a non-English language file.
- Detect wrong-script entries for non-Latin languages such as
ua, zh_CN, ar, ko, ja, and he.
- Build a cross-language comparison table so the reviewing agent can identify outliers, suspicious wording, and wrong-language content.
- The agent performs the final linguistic review using the generated report.
Prerequisites
Scripts
scripts/review-translation-json.ps1: Generate the review dataset for one UniGetUI language JSON file.
Workflow
- Generate the review dataset for the target language.
- Confirm the output file exists and contains the expected flagged sections or JSON fields.
- If the script fails or the output is empty, validate the target JSON with
pwsh ./scripts/translation/Verify-Translations.ps1 and rerun the review.
- Read the flagged sections first: parity issues, English-equal entries, and wrong-script entries.
- Spot-check the cross-language comparison table, focusing on labels, buttons, settings text, and error messages.
- Report findings inline with the English source text, observed problem, and suggested correction.
Usage
Generate a Markdown review report for French:
pwsh ./.agents/skills/translation-review/scripts/review-translation-json.ps1 \
-TargetJson ./src/Languages/lang_fr.json \
-Language fr
Generate a report for Ukrainian and include script-detection checks:
pwsh ./.agents/skills/translation-review/scripts/review-translation-json.ps1 \
-TargetJson ./src/Languages/lang_ua.json \
-Language ua
Generate a flagged-only JSON report with no cross-language table:
pwsh ./.agents/skills/translation-review/scripts/review-translation-json.ps1 \
-TargetJson ./src/Languages/lang_de.json \
-Language de \
-OutputFormat Json \
-FlaggedOnly
Optional parameters:
-NeutralJson — defaults to src/Languages/lang_en.json
-ComparisonLanguages — languages to include in the comparison table; defaults to other checked-in lang_*.json files
-OutputPath — defaults to generated/translation-review/review.<lang>.md
-OutputFormat — Markdown (default) or Json
-FlaggedOnly — skip the full cross-language table and emit only mechanically flagged entries
Output
The Markdown report is structured as:
- Summary
- Parity Issues
- English-Equal Entries
- Wrong Script
- Cross-Language Comparison
Default output path: generated/translation-review/review.<lang>.md
Agent Review Guidelines
Flagged sections
- Parity issues: confirm whether the placeholder, tag, or newline mismatch is a genuine error or an acceptable localized variant.
- English-equal entries: decide whether the English value is an acceptable technical or brand string, or whether it should be translated.
- Wrong script: almost always an error for non-Latin languages. Verify against comparison languages and flag for re-translation when confirmed.
Cross-language comparison table
- Sample at least 20–30 rows and prefer entries that look like UI labels, buttons, dialogs, settings descriptions, or error messages.
- Look for wrong language, suspiciously different meaning, missing words, or copied English that should probably be translated.
- Ignore obvious brand names and technical identifiers.
Output format for findings
Report each issue in this format:
**Source**: `Some English source text`
**Problem**: [describe the issue]
**Current value**: [the problematic translation]
**Suggested correction**: [corrected value, if confident]
**Confidence**: High / Medium / Low
Group findings by type: parity, English-equal, wrong language, wrong script, or other.
Integration with Other Skills
1---2name: translation-review3description: Reviews UniGetUI .json language files for localization quality, detects parity issues, English-equal entries, wrong-script content, and cross-language outliers, then generates a dataset for LLM-assisted linguistic review. Use when the user asks to review translations, audit localization, inspect i18n or l10n quality, or validate language files.4---56# translation review78Use this skill when you need a quality review of an existing UniGetUI translation, not just coverage, but correctness, language integrity, and consistency against related languages.910Typical triggers: review translations, check translation quality, mistranslations, wrong language in translation, untranslated strings, localization QA, translation audit, spot-check a language file.1112## Scope1314- Mechanically detect placeholder, HTML-fragment, and newline mismatches.15- Flag entries whose translation still equals the English source in a non-English language file.16- Detect wrong-script entries for non-Latin languages such as `ua`, `zh_CN`, `ar`, `ko`, `ja`, and `he`.17- Build a cross-language comparison table so the reviewing agent can identify outliers, suspicious wording, and wrong-language content.18- The agent performs the final linguistic review using the generated report.1920## Prerequisites2122- PowerShell 7 (`pwsh`).2324## Scripts2526- `scripts/review-translation-json.ps1`: Generate the review dataset for one UniGetUI language JSON file.2728## Workflow29301. Generate the review dataset for the target language.312. Confirm the output file exists and contains the expected flagged sections or JSON fields.323. If the script fails or the output is empty, validate the target JSON with `pwsh ./scripts/translation/Verify-Translations.ps1` and rerun the review.334. Read the flagged sections first: parity issues, English-equal entries, and wrong-script entries.345. Spot-check the cross-language comparison table, focusing on labels, buttons, settings text, and error messages.356. Report findings inline with the English source text, observed problem, and suggested correction.3637## Usage3839Generate a Markdown review report for French:4041```powershell42pwsh ./.agents/skills/translation-review/scripts/review-translation-json.ps1 \43 -TargetJson ./src/Languages/lang_fr.json \44 -Language fr45```4647Generate a report for Ukrainian and include script-detection checks:4849```powershell50pwsh ./.agents/skills/translation-review/scripts/review-translation-json.ps1 \51 -TargetJson ./src/Languages/lang_ua.json \52 -Language ua53```5455Generate a flagged-only JSON report with no cross-language table:5657```powershell58pwsh ./.agents/skills/translation-review/scripts/review-translation-json.ps1 \59 -TargetJson ./src/Languages/lang_de.json \60 -Language de \61 -OutputFormat Json \62 -FlaggedOnly63```6465Optional parameters:6667- `-NeutralJson` — defaults to `src/Languages/lang_en.json`68- `-ComparisonLanguages` — languages to include in the comparison table; defaults to other checked-in `lang_*.json` files69- `-OutputPath` — defaults to `generated/translation-review/review.<lang>.md`70- `-OutputFormat` — `Markdown` (default) or `Json`71- `-FlaggedOnly` — skip the full cross-language table and emit only mechanically flagged entries7273## Output7475The Markdown report is structured as:76771. Summary782. Parity Issues793. English-Equal Entries804. Wrong Script815. Cross-Language Comparison8283Default output path: `generated/translation-review/review.<lang>.md`8485## Agent Review Guidelines8687### Flagged sections8889- Parity issues: confirm whether the placeholder, tag, or newline mismatch is a genuine error or an acceptable localized variant.90- English-equal entries: decide whether the English value is an acceptable technical or brand string, or whether it should be translated.91- Wrong script: almost always an error for non-Latin languages. Verify against comparison languages and flag for re-translation when confirmed.9293### Cross-language comparison table9495- Sample at least 20–30 rows and prefer entries that look like UI labels, buttons, dialogs, settings descriptions, or error messages.96- Look for wrong language, suspiciously different meaning, missing words, or copied English that should probably be translated.97- Ignore obvious brand names and technical identifiers.9899### Output format for findings100101Report each issue in this format:102103```text104**Source**: `Some English source text`105**Problem**: [describe the issue]106**Current value**: [the problematic translation]107**Suggested correction**: [corrected value, if confident]108**Confidence**: High / Medium / Low109```110111Group findings by type: parity, English-equal, wrong language, wrong script, or other.112113## Integration with Other Skills114115- Use [translation-status](../translation-status/SKILL.md) first if you need a coverage snapshot before reviewing quality.116- Use [translation-diff-export](../translation-diff-export/SKILL.md) to produce a sparse patch for entries that need re-translation after review.117- Use [translation-diff-import](../translation-diff-import/SKILL.md) to merge corrected entries back into the full language file.