Namespace Serenity.Localization.Installation.Settings.Editor
Classes
LocalizationCollectionAdoption
Adopts Serenity's shipped localization tables as Unity Localization collections of the project's own, through the Localization package's API. A byte-for-byte copy of a table belongs to no collection: the Localization Settings wizard reads a binding to it as unresolved, and the runtime — which loads a table through its collection's name — never finds it. Each shipped collection an adoption reaches becomes a new collection named by the rule that renames every other adopted asset (AdoptedIdentityRules), holding every key under its original key id, every translation and the metadata attached to either; a later adoption reuses it instead of making another. The package registers the new tables in its own Addressables groups, which is where the runtime loads string and asset tables from.
LocalizationRecipeCollectionPlan
What one recipe localization entry would change in a String Table Collection, read before anything is
written: the locales and tables it needs that do not exist yet, the keys the shared data lacks, and the
translations whose text differs from what the tables hold. The import applies exactly this and the dry run
reports exactly this, so an unedited entry writes nothing and says "unchanged".
LocalizationRecipeExporter
Exports the Unity Localization String Table Collections under the scan root into the recipe
localization section — each collection's name, folder, locales and per-key translations — the inverse
of LocalizationRecipeImporter. Lives in the localization assembly and is discovered by
reflection, so the core recipe exporter never depends on the Unity Localization package.
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.
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.
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.