You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Copy file name to clipboardExpand all lines: .agents/skills/translation-source-sync/SKILL.md
+7-8Lines changed: 7 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,21 +1,20 @@
1
1
---
2
2
name: translation-source-sync
3
-
description: Synchronizes the UniGetUI English language file with source-code usage, identifies missing translation keys, removes unused entries, reports localization drift, and can reorder locale files to the English legacy-boundary layout. Use when the user asks to sync language files, missing translations, i18n drift, or align locale file ordering with English.
3
+
description: Synchronizes the UniGetUI English language file with source-code usage, identifies missing translation keys, removes unused entries, reports localization drift, and can reorder locale files to match the English key ordering. Use when the user asks to sync language files, missing translations, i18n drift, or align locale file ordering with English.
4
4
---
5
5
6
6
# translation source sync
7
7
8
-
Use this skill when UniGetUI source code changed and you need to keep [src/UniGetUI.Core.LanguageEngine/Assets/Languages/lang_en.json](src/UniGetUI.Core.LanguageEngine/Assets/Languages/lang_en.json) aligned with the strings actually used by the application, or when you need downstream locale files reordered to match the English active and legacy sections.
8
+
Use this skill when UniGetUI source code changed and you need to keep [src/Languages/lang_en.json](src/Languages/lang_en.json) aligned with the strings actually used by the application, or when you need downstream locale files reordered to match the English key ordering.
9
9
10
-
It scans supported C#, WinUI XAML, and Avalonia AXAML patterns, finds missing English keys, removes unused entries, reports translation-source warnings that still need manual cleanup, and can align locale file ordering to the English legacy-boundary layout.
10
+
It scans supported C#, WinUI XAML, and Avalonia AXAML patterns, finds missing English keys, removes unused entries, reports translation-source warnings that still need manual cleanup, and can align locale file ordering to the English layout.
11
11
12
12
## Scope
13
13
14
14
- Extract literal translation keys from supported UniGetUI source patterns.
15
15
- Add new English keys missing from `lang_en.json`.
16
16
- Remove English keys that are no longer used.
17
-
- Preserve legacy English keys below the reserved boundary marker when the boundary workflow is enabled.
18
-
- Reorder non-English locale files to match the English active and legacy key ordering.
17
+
- Reorder non-English locale files to match the English key ordering.
19
18
- Warn about interpolated `CoreTools.Translate($"...")` calls that are not synchronized automatically.
20
19
- Leave downstream language propagation to the existing translation diff workflow.
21
20
@@ -56,7 +55,7 @@ Check whether the English file is out of sync without writing changes:
1. Run translation source sync after changing any translatable source string.
80
79
2. If `-CheckOnly` reports drift, run the full sync to rewrite `lang_en.json`.
81
80
3. Review warnings for interpolated translation calls and convert them to stable literals or add the missing English keys manually when needed.
82
-
4.If you are using the legacy-boundary workflow, run`pwsh ./.agents/skills/translation-source-sync/scripts/set-translation-boundary-order.ps1` to align locale ordering with English.
81
+
4.Run`pwsh ./.agents/skills/translation-source-sync/scripts/set-translation-boundary-order.ps1` to align locale ordering with English.
83
82
5. Run `pwsh ./scripts/translation/Verify-Translations.ps1` to confirm the language files still validate cleanly.
84
83
6. Run `pwsh ./.agents/skills/translation-source-sync/scripts/test-translation-source-sync.ps1` if you changed the sync workflow itself.
85
84
7. Export changed work for translators with [translation-diff-export](../translation-diff-export/SKILL.md).
- Existing English values are preserved for retained keys; newly added English entries default to `key == value`.
90
89
- The sync script preserves current key order for retained entries and appends newly discovered keys deterministically.
91
-
- The locale reorder script follows English as the canonical order and moves unmapped locale-only keys to the legacy section after the reserved boundary marker.
90
+
- The locale reorder script follows English as the canonical order and appends unmapped locale-only keys at the end.
92
91
- The smoke test uses a temporary synthetic repo so it does not mutate the checked-in language files.
Copy file name to clipboardExpand all lines: .agents/skills/translation-status/SKILL.md
+3-5Lines changed: 3 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: translation-status
3
-
description: Analyzes checked-in UniGetUI language files to calculate translation percentages, surface untranslated coverage data, and generate localization status reports. Boundary-aware: completion is computed from the active English section above the legacy marker.
3
+
description: Analyzes checked-in UniGetUI language files to calculate translation percentages, surface untranslated coverage data, and generate localization status reports.
Copy file name to clipboardExpand all lines: AGENTS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -76,7 +76,7 @@ File-based settings via `Settings.Get(Settings.K.*)` / `Settings.Set(Settings.K.
76
76
Use `Logger.Info()`, `Logger.Warn()`, `Logger.Error()`, `Logger.Debug()`, `Logger.ImportantInfo()` from `UniGetUI.Core.Logging`. Accepts both `string` and `Exception` parameters.
77
77
78
78
### Localization
79
-
Use `CoreTools.Translate("text")` for all user-facing strings. Parameterized: `CoreTools.Translate("{0} packages found", count)`. In XAML, use the `TranslatedTextBlock` control. Translation assets live under `src/UniGetUI.Core.LanguageEngine/Assets/`; do not assume Tolgee-based automation exists in this repository.
79
+
Use `CoreTools.Translate("text")` for all user-facing strings. Parameterized: `CoreTools.Translate("{0} packages found", count)`. In XAML, use the `TranslatedTextBlock` control. Translation assets live under `src/Languages/`; do not assume Tolgee-based automation exists in this repository.
0 commit comments