Namespace Serenity.Localization.Installation.Settings.Editor
Classes
LocalizationRecipeImporter
Generates Unity Localization String Table Collections from the recipe localization section: ensures
the requested locales exist, creates or finds the collection, and upserts each key's per-locale text. Lives
in the localization assembly (which references the recipe assembly) and is discovered by reflection, so the
core recipe engine never depends on the Unity Localization package.
SerenityHubStatus
Read-only status aggregator for the Serenity Hub. Produces three rows — required Unity packages, installation wiring, and overall project validation health — by reusing the same checks the standalone package installer and the project validators already perform. Never mutates project state; every row that needs a fix carries a deep-link menu path instead of fixing anything itself.
SerenityHubStatusRow
One dumb status row for the Hub: a state, a human-readable message, and an optional deep-link menu path the Hub can execute to let the user act on it. Carries no logic of its own.
SerenityHubWindow
The Serenity Hub — the single "start here" front door for the package. A read-only status dashboard plus a
categorized tool launcher. Solves the discoverability problem of 50+ scattered Tools ▸ Serenity menu
entries by giving every new user one place to land.
The Hub never fixes anything itself: every status row and every launcher button opens a real tool via UnityEditor.EditorApplication.ExecuteMenuItem(System.String) or a real asset. Hosted alongside SerenityProjectValidationRunner and SerenityValidateEverythingWindow for the same reason they live here — this assembly already references the Global validator engines and owns the localization one, so hosting the Hub in Global would create a circular assembly reference.
SerenityLocalizationKeyValidator
Validates the translation keys designers type into Serenity assets (any field with its
IsTranslating<Field> toggle on) against the project's Unity Localization string tables.
The GUI-free engine behind SerenityLocalizationKeyValidatorWindow, also driven headlessly by the
project validation runner.
SerenityLocalizationKeyValidatorWindow
Editor window that validates the translation keys designers type into Serenity assets against the project's
Unity Localization string tables.
Anywhere a Serenity asset has an IsTranslating* toggle turned on (menu/modal titles, option labels,
modal text, game-setting values…), the paired key is checked: a key that exists in no string table is
reported as missing (it would silently fall back to the raw key at runtime), and a translating field left
blank is reported as a warning.
SerenityProjectValidationRunner
Runs Serenity's project-integrity validators (Health Check, Missing References, Localization Keys, Addressables Tagging, Audio Registration) and reports the combined result — interactively (a menu item that writes JSON) or headlessly (ValidateFromCommandLine()), so CI or an AI agent can confirm a project is correctly wired and self-correct. Hosted here because this assembly already references the Global validator engines and owns the localization one (Global cannot reference Localization without a cycle).
SerenityValidateEverythingWindow
One aggregated dashboard over every Serenity project validator (RunAll(string)): Health Check, Missing References, Localization Keys, Addressables Tagging, and Audio Registration. Issues are grouped per validator with a Ping button when an asset path resolves. Addressables and Audio Registration findings that have a mechanical fix also get a per-row "Fix" button and a per-group "Fix all safe" button; every fix previews exactly which asset(s) will change via a confirmation dialog, applies the fix through the validator's own UnityEditor.AssetDatabase / UnityEditor.Undo-backed API, then re-scans automatically. Health Check, Missing References, and Localization Keys findings are report-only: they require a human decision, so their rows only offer Ping. This window is intentionally dumb — it contains no validation or fixing logic of its own, only calls into the runner and the two fixable validators. Hosted alongside SerenityProjectValidationRunner (rather than in the Global validator-engine folder) for the same reason the runner itself lives here: this assembly already references the Global validator engines and owns the localization one, so hosting the aggregated view here avoids a circular assembly reference back into Global.
UnityLocalizationSettingsEditor
Custom Unity Editor for UnityLocalizationSettings that provides interface for configuring language keys and localization tables.
Integrates with Unity's localization system to display available tables and game settings for selection.
Enums
SerenityHubStatusState
State of a single SerenityHubStatusRow.