agentleFS
marticlimentmarticliment/UniGetUI/.agents/skills/translation-diff-export/SKILL.md

translation-diff-export

Skill27k starsChanged 6 months agoMITView on GitHub

Compares UniGetUI JSON locale files against English, identifies untranslated or source-changed keys, and generates patch, reference, and handoff files for a target language. Use when the user asks to export missing translations, untranslated strings, i18n diffs, or locale-file changes.

We split this skill into the rules it gives an agent

12 rules. About 0 are common, 5 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use this skill when you need a small UniGetUI translation patch instead of sending a full language JSON file for review or translation.

    line 8
  2. Very specific:

    When source strings changed, run translation-source-sync first so lang_en.json reflects current source usage before exporting downstream …

    line 18
  3. Distinctive:

    Use this skill's wrapper scripts first.

    line 25
  4. Distinctive:

    Run the built-in smoke test:

    line 53
  5. Very specific:

    If -KeepIntermediate is used, git-baseline snapshots are kept under generated/translation-diff-export/tmp/.

    line 68
  6. Distinctive:

    After export, confirm the patch is usable before handing it off:

    line 74
  7. Very specific:

    Check that .source.json is not empty unless you expected no work for that language.

    line 76
  8. Very specific:

    If the patch should include recent English changes, rerun with -BaseRef and compare the resulting .source.json.

    line 78
  9. Distinctive:

    Run the smoke test if you changed the export workflow itself.

    line 79
  10. Very specific:

    After exporting the patch, use the generated .prompt.md file with translation-diff-translate to update the sparse translated working copy.

    line 83
  11. Distinctive:

    After translating the patch, merge it back into the full language file with translation-diff-import:

    line 87
  12. Very specific:

    Keep the .translated.json file sparse.

    line 98

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

translation diff export

Use this skill when you need a small UniGetUI translation patch instead of sending a full language JSON file for review or translation.

It exports only the active untranslated or source-changed strings, creates the translator handoff files, and prepares the patch set needed by translation-diff-translate and translation-diff-import.

Prerequisites

  • PowerShell 7 (pwsh).
  • git available on PATH.
  • cirup available on PATH.

When source strings changed, run translation-source-sync first so lang_en.json reflects current source usage before exporting downstream translation patches.

Scripts

  • scripts/export-translation-diff.ps1: Exports JSON patch artifacts and generates a translation handoff prompt.
  • scripts/test-translation-diff.ps1: Runs a local end-to-end smoke test against the checked-in UniGetUI language files.

Use this skill's wrapper scripts first; the downstream translate and import steps are documented in translation-diff-translate and translation-diff-import.

Usage

Export untranslated French strings only:

pwsh ./.agents/skills/translation-diff-export/scripts/export-translation-diff.ps1 \
  -NeutralJson ./src/Languages/lang_en.json \
  -TargetJson ./src/Languages/lang_fr.json \
  -Language fr

Export untranslated French strings plus English source values changed since origin/main:

pwsh ./.agents/skills/translation-diff-export/scripts/export-translation-diff.ps1 \
  -NeutralJson ./src/Languages/lang_en.json \
  -TargetJson ./src/Languages/lang_fr.json \
  -Language fr \
  -BaseRef origin/main

Optional parameters:

  • -OutputDir (default: generated/translation-diff-export)
  • -KeepIntermediate

Run the built-in smoke test:

pwsh ./.agents/skills/translation-diff-export/scripts/test-translation-diff.ps1

Output

For lang_en.json and language fr, the script generates:

  • generated/translation-diff-export/lang.diff.fr.source.json
  • generated/translation-diff-export/lang.diff.fr.translated.json
  • generated/translation-diff-export/lang.diff.fr.reference.json
  • generated/translation-diff-export/lang.diff.fr.prompt.md

If -KeepIntermediate is used, git-baseline snapshots are kept under generated/translation-diff-export/tmp/.

The smoke test writes its temporary artifacts under generated/translation-diff-export-demo/.

Validate The Export

After export, confirm the patch is usable before handing it off:

  1. Check that .source.json is not empty unless you expected no work for that language.
  2. Confirm .translated.json is sparse and does not contain copied English placeholders for unfinished keys.
  3. If the patch should include recent English changes, rerun with -BaseRef and compare the resulting .source.json.
  4. Run the smoke test if you changed the export workflow itself.

Hand Off To Translate

After exporting the patch, use the generated .prompt.md file with translation-diff-translate to update the sparse translated working copy.

Hand Off To Import

After translating the patch, merge it back into the full language file with translation-diff-import:

pwsh ./.agents/skills/translation-diff-import/scripts/import-translation-diff.ps1 \
  -TranslatedPatch ./generated/translation-diff-export/lang.diff.fr.translated.json \
  -SourcePatch ./generated/translation-diff-export/lang.diff.fr.source.json \
  -TargetJson ./src/Languages/lang_fr.json \
  -NeutralJson ./src/Languages/lang_en.json \
  -OutputJson ./src/Languages/lang_fr.merged.json

Keep the .translated.json file sparse. If a key is not translated yet, leave it out instead of copying the English source value into the working copy.

Download now (ZIP)

Trending

Quiet since May.about the whole repository

Dec 2025: 0 mentionsJan 2026: 4 mentionsFeb 2026: 1 mentionMar 2026: 1 mentionApr 2026: 0 mentionsMay 2026: 1 mentionJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 0 mentionsSep 2026: 0 mentionsOct 2026: 0 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the marticliment/UniGetUI repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about marticliment/UniGetUI

The biggest 5 of 52 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 52

Talked about on YouTube, GitHub and Bluesky (52 times).

On YouTube · 25

20 more on YouTube

On GitHub · 18

13 more on GitHub

On Bluesky · 9

4 more on Bluesky
  • Other versions1 project uses a version of this.

    Word for word · 1

    1. Devolutions/UniGetUI★ 27k100% same

    Edited · 0

    None found.

    Wrote their own version · 0

    None found.

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository6 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.