Skip to content

Move language files, prune legacy strings, and translate all languages to 100%#4647

Merged
Gabriel Dufresne (GabrielDuf) merged 60 commits intomainfrom
prune-legacy-translations
Apr 27, 2026
Merged

Move language files, prune legacy strings, and translate all languages to 100%#4647
Gabriel Dufresne (GabrielDuf) merged 60 commits intomainfrom
prune-legacy-translations

Conversation

@mamoreau-devolutions
Copy link
Copy Markdown
Contributor

Summary

This PR moves translation assets to a shallower path, prunes legacy backward-compatibility strings, syncs with current source code, and brings all 58 languages to 100% coverage.

Move language files (src/Languages/)

  • Moved lang_*.json from src/UniGetUI.Core.LanguageEngine/Assets/Languages/ to src/Languages/
  • Moved metadata (LanguagesReference.json, TranslatedPercentages.json, Translators.json) from src/UniGetUI.Core.LanguageEngine/Assets/Data/ to src/Languages/Data/
  • Runtime output paths preserved via MSBuild <Link> metadata
  • This deliberately breaks old UniGetUI versions that download translations from the old GitHub raw URL on startup

Remove DownloadUpdatedLanguageFile

  • Removed the method that downloaded language files from GitHub at runtime (dead code)

Prune legacy translation keys

  • Removed __LEGACY_TRANSLATION_KEYS_BELOW__ marker and ~430 legacy entries from all 59 language files
  • Updated scripts to gracefully handle absent legacy boundary markers

Sync with source code

  • Added 49 new English keys extracted from source
  • Removed 11 unused keys no longer referenced

Translate all languages to 100%

  • All 58 non-English languages now have 776 keys matching English
  • 0 missing keys, all validations pass

Move lang_*.json from src/UniGetUI.Core.LanguageEngine/Assets/Languages/
to src/Languages/ to break old UniGetUI versions downloading from the
previous GitHub raw URL on startup.

Remove the __LEGACY_TRANSLATION_KEYS_BELOW__ marker and all legacy
backward-compatibility translation keys (~430 entries per file) from
all 59 language files.

Update all references: csproj (with Link metadata to preserve runtime
output path), LanguageEngine.cs download URL, translation scripts,
SKILL.md docs, CI workflow paths, and TRANSLATION.md.

Make boundary alignment and metadata scripts tolerate absent legacy
boundary markers gracefully.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The method downloaded language files from GitHub on startup and cached
them locally. Since language files are now bundled and the cache is
already ignored by LoadLanguageFile, this was dead code. Removing it
ensures old app versions cannot pull translations from the new path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove references to legacy boundary markers, -ActiveOnly flag, and
legacy key sections from SKILL.md files in translation-status,
translation-diff-export, and translation-source-sync skills.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add 49 new English keys extracted from source code (crash report UI,
navigation, vcpkg controls, Chocolatey migration notice, etc.).
Remove 11 unused keys no longer referenced in source.
Refresh translation percentages and documentation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move LanguagesReference.json, TranslatedPercentages.json, and
Translators.json from src/UniGetUI.Core.LanguageEngine/Assets/Data/
to src/Languages/Data/ alongside the language files. Use csproj Link
metadata to preserve runtime output paths. Remove the now-empty
Assets/ directory from the LanguageEngine project.

Update all references in scripts, CI workflow, TRANSLATION.md, and
skill scripts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translated all 51 missing keys into Greek, including:
- Crash report dialog strings (report, email, details)
- Navigation and UI labels (back, forward, reload, etc.)
- Package manager descriptions (APT, DNF, Pacman)
- Chocolatey setup change notification
- Sort order, time duration, and settings messages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys and add 3 new crash-report keys.
Remove 11 obsolete keys no longer present in lang_en.json.
Final: 775/775 keys, validated with Verify-Translations.ps1.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys and 3 newly added crash-report keys
into Danish. Remove 11 obsolete keys no longer present in lang_en.json.
Reorder keys to match English file order.

Validated with Verify-Translations.ps1 — no placeholder issues.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys into Finnish, bringing lang_fi.json
to full parity with lang_en.json (775/775 keys).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys into Belarusian, bringing lang_be.json
to full parity with lang_en.json (775/775 keys). Also remove 11
obsolete keys no longer present in the English source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 54 missing/untranslated keys including crash report
dialog strings, navigation labels, package manager descriptions
for Linux distros, time duration strings, and the Chocolatey setup
change notice. Also removes 11 obsolete keys no longer in lang_en.json.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing keys into Persian/Farsi, remove 11 obsolete
keys no longer present in lang_en.json, and reorder entries to match
the English key order. Validation passes with no placeholder issues.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing/outdated keys and remove 11 obsolete keys
that no longer exist in the English source file.

New translations include crash report dialog, navigation controls,
Linux package manager descriptions, time duration strings, and the
Chocolatey setup change notice.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 50 missing keys into Hebrew, remove 11 obsolete keys
not present in lang_en.json, and add 3 keys with special characters
(en-dash, ellipsis) that were previously missing.

Final result: 775/775 keys translated, validated with no placeholder issues.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing/outdated keys into Croatian, including:
- Crash report UI strings
- Navigation and sorting controls
- Linux package manager descriptions (APT, DNF, Pacman)
- Chocolatey setup change notification
- Time duration strings
- Settings import/export messages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing/untranslated keys plus 3 additional keys
into Japanese, bringing lang_ja.json to full parity with lang_en.json
(775/775 keys). Remove 11 obsolete keys no longer in the English source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys into Hungarian, including:
- Crash report dialog strings
- Navigation and UI labels
- Package manager descriptions (APT, DNF, Pacman)
- Chocolatey setup change notification
- Time duration strings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing keys and remove 11 extra keys not present
in the English source file. Reorder keys to match lang_en.json order.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing keys and remove 11 obsolete keys no longer
present in the English source file. The French translation now covers
all 775 keys at parity with lang_en.json.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing keys into Georgian, bringing the lang_ka.json
file from partial coverage to full 100% parity with lang_en.json (775/775 keys).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add 53 missing keys and fix 4 untranslated entries in lang_id.json.
Includes crash report dialog, navigation UI, Linux package manager
descriptions, time duration strings, and Chocolatey setup notice.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 50 missing keys and add 3 keys with special characters
(em-dash, ellipsis) to bring lang_kn.json to full parity with
lang_en.json (775/775 keys). Validated with Verify-Translations.ps1.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing keys and fix 4 source-equal entries
that still had English values. Remove 11 extra keys not present
in the English source file. Validated with Verify-Translations.ps1.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing keys and remove 11 extra keys not present
in the English source file. The Filipino translation now covers all
775 keys with validated placeholders.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing keys and remove 11 obsolete keys to bring
lang_it.json to full parity with lang_en.json (775/775 keys).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing/source-equal keys into Kurdish (Sorani),
including crash report UI, navigation controls, package manager
descriptions, and the Chocolatey deprecation notice.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys into Polish, including:
- Crash report dialog strings
- Navigation and UI labels
- Package manager descriptions (APT, DNF, Pacman)
- Chocolatey setup change notification
- Time duration formats

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys and 3 newly added keys into Dutch,
aligning lang_nl.json with lang_en.json at 775/775 keys.
Remove 11 obsolete keys no longer present in the English source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys into Macedonian, bringing lang_mk.json
to full parity with lang_en.json (775/775 keys). Includes UI strings
for crash reporting, navigation, source management, package manager
descriptions, time durations, and Chocolatey setup changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing/outdated keys including crash report dialog,
navigation UI, vcpkg source management, Linux package manager
descriptions, Chocolatey setup notice, and miscellaneous strings.
Remove 11 obsolete keys not present in lang_en.json.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys into Albanian, remove 11 obsolete keys
not present in lang_en.json, and reorder to match English key order.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing/outdated keys including crash report UI,
navigation controls, source management, time intervals, Linux package
manager descriptions, and Chocolatey setup notice.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 54 missing/untranslated keys in lang_sv.json,
remove 11 extra keys not present in lang_en.json, and reorder
entries to match the English key order. Validated with
Verify-Translations.ps1 — no placeholder issues found.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing/untranslated keys into European Portuguese,
remove 11 obsolete keys no longer in lang_en.json, and reorder all
entries to match the English key order.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 50 missing/outdated keys into Tagalog and remove 11
extra keys that no longer exist in the English source file. The
lang_tl.json file now has all 775 keys matching lang_en.json.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 50 missing/changed keys and add 3 new keys to bring
Sanskrit language file to full parity with lang_en.json (775/775 keys).
Validation passes with no placeholder issues.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys and add 3 keys with special Unicode
characters (em dash, ellipsis). Remove 11 extra keys not present in
the English source. All 775 keys now match lang_en.json with no
placeholder issues.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing/untranslated keys including crash report
dialog, navigation controls, vcpkg settings, Linux package manager
descriptions, time period labels, and Chocolatey setup notification.
Remove 11 obsolete keys not present in the English source file.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 51 missing keys including crash report UI, navigation
controls, vcpkg source management, sort order, Linux package manager
descriptions, time duration strings, and Chocolatey setup notice.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 53 missing keys into Urdu, remove 11 obsolete keys
no longer present in the English source file, and reorder entries
to match lang_en.json key order.

Validated with Verify-Translations.ps1 – no placeholder issues.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate all 50 missing keys and 3 newly-added keys into Tamil,
bringing lang_ta.json to full parity with lang_en.json (775/775 keys).
Validated with Verify-Translations.ps1 — no placeholder issues.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add translations for all 53 missing/untranslated keys in lang_vi.json,
bringing Vietnamese coverage to 775/775 keys (100%).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Added Turkish translations for all 53 keys missing from lang_tr.json
- Removed 11 keys not present in lang_en.json
- Reordered keys to match lang_en.json order
- Verified: 775/775 keys match, no placeholder issues

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… keys

- Translated all 53 keys missing from lang_ca.json
- Removed 11 extra keys not present in lang_en.json
- Reordered keys to match lang_en.json key order
- Verified: 775/775 keys match, no placeholder issues

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…a keys

- Added Afrikaans translations for all 53 keys missing from lang_en.json
- Removed 11 keys that no longer exist in lang_en.json
- Reordered keys to match lang_en.json key order
- Verified: 775/775 keys match, no placeholder issues

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Translate 53 missing keys per language (crash report UI, navigation
controls, vcpkg settings, Linux package manager descriptions, time
durations, Chocolatey migration notice, etc.) and remove 11 obsolete
keys from all language files.

All 59 language files now have 775 keys matching the English source.
Validation passes with no placeholder issues.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add 1 new English key for the Snap package manager description.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the missing key 'The universal Linux package manager by Canonical...'
with proper translations to: Macedonian, Marathi, Norwegian Bokmål,
Dutch, Norwegian Nynorsk, Polish, Brazilian Portuguese, and European
Portuguese.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the missing key for the Snap/Canonical Linux package manager
description to: de, el, eo, es, es-MX, et, fa, fi

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the missing key 'The universal Linux package manager by Canonical...'
with proper translations to: Afrikaans, Arabic, Belarusian, Bulgarian,
Bangla, Catalan, Czech, and Danish.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the missing key 'The universal Linux package manager by Canonical...'
with proper translations to: Indonesian, Italian, Japanese, Georgian,
Kannada, Korean, Kurdish, and Lithuanian.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the missing key 'The universal Linux package manager by Canonical...'
with proper translations to: sv, ta, th, tl, tr, uk, ur, vi, zh_CN, zh_TW.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@GabrielDuf Gabriel Dufresne (GabrielDuf) merged commit 58cf0c2 into main Apr 27, 2026
2 checks passed
@GabrielDuf Gabriel Dufresne (GabrielDuf) deleted the prune-legacy-translations branch April 27, 2026 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants