gum-localization

Document localization and translation flow for UI text in the Gum layout tool.

597|79|Updated Mar 11, 2015
One-click install
npx skills add https://github.com/vchelaru/Gum --skill gum-localization
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gum-localization
Source: https://github.com/vchelaru/Gum/tree/main/.claude/skills/gum-localization
Command: npx skills add https://github.com/vchelaru/Gum --skill gum-localization

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Gum's localization system centralizes and clarifies how UI text is translated and applied across both the Gum authoring tool and runtime, preventing silent failures, incorrect translations, and inconsistent behavior between design-time and runtime text assignment.

Core Features & Use Cases

  • Architecture & API: Explains the nullable static LocalizationService entry point, the ILocalizationService contract, and the default LocalizationService behavior including the "(loc)" missing-key marker.
  • Loading & Formats: Documents CSV and RESX loading semantics, multi-file and satellite RESX handling, collision warning policies, and the internal dictionary structure used for translations.
  • Runtime Semantics & Patterns: Describes translation-on-assignment versus stored strings, Text vs TextNoTranslate behavior, Forms control patterns, data-driven control exceptions, file-watching reload triggers, and UI integration for language selection.
  • Gotchas & Tests: Lists important pitfalls (BBCode interaction, CurrentLanguage indexing, exclusion rules, ordering of satellites) and points to unit tests and key source files for verification.

Quick Start

Load your RESX or CSV translation files into the project's LocalizationFiles list, select a language in the project properties, then assign text via the Text property to apply translations automatically.

Frequently Asked Questions about gum-localization

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle CSV and RESX translation imports for UI text in Gum?

Gum localization handles CSV and RESX translation imports by loading files into a project's LocalizationFiles list. The system supports multi-file and satellite RESX handling, applying translations automatically when text is assigned to the Text property.

Why does my translated text show a missing key marker during runtime localization?

Runtime localization displays a "(loc)" missing-key marker when the translation service cannot find the requested key in its internal dictionary. This indicates the text key is missing from the loaded CSV or RESX translation files.

What is the difference between Text and TextNoTranslate properties in Gum runtime?

The Text property applies translations automatically at assignment time, whereas TextNoTranslate stores the raw string without translation. This distinction controls whether UI text undergoes language localization when set during runtime.

Can I use satellite RESX files for multi-language localization in Gum?

Yes, Gum localization supports satellite RESX files for multi-language workflows. The system manages satellite file ordering and collision warning policies to prevent silent translation failures and ensure correct language indexing.

How does file-watching reload trigger work when updating translation files?

Gum localization uses file-watching reload triggers to automatically refresh translations when source CSV or RESX files change. This ensures the runtime UI reflects updated language data without requiring manual application restarts.

What are the common pitfalls when localizing Forms controls in Gum?

Common Gum localization pitfalls include BBCode interaction issues, incorrect CurrentLanguage indexing, and data-driven control exceptions. Exclusion rules and satellite file ordering must be validated against unit tests to ensure proper translation behavior.