- Localized user-facing text is never hard-coded; all strings are pulled through `Resources.ResourceManager.GetString(...)` keyed by resource names such as `PARAMETER_DESCRIPTION_*`, `ClassicAssist_Macro_Commands`, etc. - Culture switching is explicit: before reading non-localized metadata the thread culture is reset to `InvariantCulture`, then restored to the target locale before accessing localized resources. - Cross-project attributes are accessed via `dynamic` casts of `GetCustomAttribute` results rather than strong-typed references, keeping this generator decoupled from the macro assembly's compilation. - Per-culture output files follow a naming convention where the English variant drops the locale suffix (`*.md`) while others append `-locale.md`, and category files use the language-neutral category name stripped of accents.