Editor localization and migration for the Ultimate Light Manager tool. Defines available languages, migrates builder state defaults across versions, and provides localized text entries and helper methods to fetch/format labels and preset names for multiple languages.
using System.Collections.Generic;
using Dreams.UltimateLightManager;
namespace Dreams.UltimateLightManager.Editor;
public enum UltimateLightManagerToolLanguage
{
French,
English,
Spanish,
German,
Russian
}
internal static class UltimateLightManagerToolStateMigration
{
public static void ApplyDefaults( UltimateLightManagerBuilderState state )
{
if ( state == null )
{
return;
}
if ( state.ToolSettingsVersion < 1 )
{
state.ToolLanguage = UltimateLightManagerToolLanguage.French;
state.ShowHelpTexts = true;
state.ShowShortcutSection = true;
}
if ( state.ToolSettingsVersion < 2 )
{
state.LoadedPresetKey ??= string.Empty;
}
state.ToolSettingsVersion = 2;
}
}
internal sealed class UltimateLightManagerToolTexts
{
private readonly Dictionary<string, string> _entries;
private readonly UltimateLightManagerToolLanguage _language;
private UltimateLightManagerToolTexts( UltimateLightManagerToolLanguage language, Dictionary<string, string> entries )
{
_language = language;
_entries = entries;
}
public string this[string key] => _entries.TryGetValue( key, out var value ) ? value : key;
public string Format( string key, params object[] args )
{
return string.Format( this[key], args );
}
public string GetLanguageName( UltimateLightManagerToolLanguage language )
{
return language switch
{
UltimateLightManagerToolLanguage.French => "Français",
UltimateLightManagerToolLanguage.English => "English",
UltimateLightManagerToolLanguage.Spanish => "Español",
UltimateLightManagerToolLanguage.German => "Deutsch",
UltimateLightManagerToolLanguage.Russian => "Русский",
_ => "Français"
};
}
public string GetPresetName( UltimateLightManager.LightPreset preset )
{
return preset switch
{
UltimateLightManager.LightPreset.Custom => this["preset.custom"],
UltimateLightManager.LightPreset.Candle => this["preset.candle"],
UltimateLightManager.LightPreset.Torch => this["preset.torch"],
UltimateLightManager.LightPreset.Neon => this["preset.neon"],
UltimateLightManager.LightPreset.Alarm => this["preset.alarm"],
UltimateLightManager.LightPreset.BrokenLamp => this["preset.broken_lamp"],
UltimateLightManager.LightPreset.SciFi => this["preset.scifi"],
UltimateLightManager.LightPreset.StreetLight => this["preset.street_light"],
_ => preset.ToString()
};
}
public string GetBuiltInPresetLabel( UltimateLightManager.LightPreset preset )
{
return Format( "preset.builtin_format", GetPresetName( preset ) );
}
public string GetCustomPresetLabel( string presetName )
{
return Format( "preset.custom_format", presetName );
}
public static UltimateLightManagerToolTexts For( UltimateLightManagerToolLanguage language )
{
return new UltimateLightManagerToolTexts( language, language switch
{
UltimateLightManagerToolLanguage.English => CreateEnglish(),
UltimateLightManagerToolLanguage.Spanish => CreateSpanish(),
UltimateLightManagerToolLanguage.German => CreateGerman(),
UltimateLightManagerToolLanguage.Russian => CreateRussian(),
_ => CreateFrench()
} );
}
private static Dictionary<string, string> CreateFrench()
{
return new()
{
["window.title"] = "Ultimate Light Manager",
["tab.creation"] = "Création",
["tab.selection"] = "Sélection",
["tab.groups"] = "Groupes",
["tab.settings"] = "Paramètres",
["group.creation"] = "Création",
["group.manipulation"] = "Manipulation",
["group.selection"] = "Sélection",
["group.parameters"] = "Paramètres",
["group.groups"] = "Groupes",
["group.gameplay"] = "Gameplay",
["group.settings"] = "Paramètres",
["group.display"] = "Affichage",
["label.preset"] = "Preset",
["label.language"] = "Langue",
["label.help_texts"] = "Descriptions et aides",
["label.shortcuts_panel"] = "Bloc raccourcis",
["label.group_format"] = "Groupe : {0}",
["label.power_grid_format"] = "Power Grid : {0}",
["label.active_mode_format"] = "Mode actif : {0}",
["button.from_selection"] = "Depuis la sélection",
["button.save"] = "Enregistrer",
["button.duplicate"] = "Dupliquer",
["button.rename"] = "Renommer",
["button.delete"] = "Supprimer",
["button.revert"] = "Revenir au preset",
["button.reset"] = "Réinitialiser",
["button.move"] = "Déplacer",
["button.rotate"] = "Rotation",
["button.scale"] = "Échelle",
["button.apply_draft_selection"] = "Appliquer le brouillon à la sélection",
["button.on"] = "Allumer",
["button.off"] = "Éteindre",
["button.toggle"] = "Inverser",
["button.assign_group"] = "Créer / Assigner groupe...",
["button.assign_power_grid"] = "Assigner Power Grid...",
["button.select_same_group"] = "Sélectionner même groupe",
["button.select_same_grid"] = "Sélectionner même grid",
["hint.creation_intro"] = "Choisis un preset, ajuste les réglages de base, puis crée une point light ou une spot light directement prête avec Ultimate Light Manager.",
["hint.preset_workflow"] = "Enregistrer met a jour le preset custom charge. Dupliquer cree une nouvelle copie. Revenir au preset annule les changements non sauvegardes.",
["hint.create_center"] = "Avec ce tool actif, fais un clic droit dans la scène puis \"Créer une light ici\" pour la poser exactement à l'endroit voulu.",
["hint.manipulation"] = "Les gizmos restent actifs dans ce mode pour déplacer, rotate ou scale tes lights comme avec Object Select.",
["hint.no_selection"] = "Sélectionne une ou plusieurs lights pour voir l'inspecteur complet du component et appliquer tes groupes ou presets en masse.",
["hint.parameters"] = "Tu retrouves ici le component complet, y compris ses groupes, onglets et options avancées, directement dans le tool scène.",
["hint.groups"] = "Sélectionne plusieurs lights puis assigne-leur le même groupe pour piloter une pièce entière depuis ton gameplay.",
["hint.gameplay"] = "Une fois les groupes posés, tu peux allumer ou éteindre toute une zone avec le LightGroup depuis ton gameplay.",
["hint.settings"] = "Personnalise l'interface du tool sans toucher à la langue globale de l'éditeur.",
["summary.none_selected"] = "Aucune light Ultimate Light Manager sélectionnée.",
["summary.one_selected"] = "1 light sélectionnée.",
["summary.many_selected"] = "{0} lights sélectionnées.",
["mode.move"] = "Déplacer",
["mode.rotate"] = "Rotation",
["mode.scale"] = "Échelle",
["example.group_state"] = "Exemple : UltimateLightManager.SetGroupState( \"Pièce 1\", false );",
["shortcut.activate_tool"] = "Activer le tool",
["shortcut.move_gizmo"] = "Gizmo déplacer",
["shortcut.rotate_gizmo"] = "Gizmo rotation",
["shortcut.scale_gizmo"] = "Gizmo échelle",
["shortcut.create_here"] = "Créer ici",
["shortcut.right_click"] = "Clic droit",
["dialog.save_preset.prompt"] = "Nom du preset :",
["dialog.save_preset.ok"] = "Enregistrer",
["dialog.save_preset.title"] = "Enregistrer un preset",
["dialog.duplicate_preset.prompt"] = "Nom du nouveau preset :",
["dialog.duplicate_preset.ok"] = "Dupliquer",
["dialog.duplicate_preset.title"] = "Dupliquer le preset",
["dialog.rename_preset.prompt"] = "Nouveau nom du preset :",
["dialog.rename_preset.ok"] = "Renommer",
["dialog.rename_preset.title"] = "Renommer le preset",
["dialog.delete_preset.message"] = "Supprimer le preset \"{0}\" ?",
["dialog.delete_preset.title"] = "Supprimer le preset",
["dialog.delete_preset.ok"] = "Supprimer",
["dialog.cancel"] = "Annuler",
["dialog.assign_group.prompt"] = "Nom du groupe :",
["dialog.assign_group.ok"] = "Assigner",
["dialog.assign_group.title"] = "Créer / Assigner groupe",
["dialog.assign_grid.prompt"] = "Nom du Power Grid :",
["dialog.assign_grid.ok"] = "Assigner",
["dialog.assign_grid.title"] = "Assigner Power Grid",
["scene.create_here"] = "Créer une light ici",
["settings.help_on"] = "Affichées",
["settings.help_off"] = "Masquées",
["settings.shortcuts_on"] = "Affiché",
["settings.shortcuts_off"] = "Masqué",
["settings.current_language_format"] = "Langue actuelle : {0}",
["status.preset_free"] = "Brouillon libre. Enregistre-le pour creer un preset complet.",
["status.preset_clean_format"] = "Preset courant : {0}",
["status.preset_modified_format"] = "Preset courant : {0} (modifie)",
["preset.builtin_format"] = "Builtin - {0}",
["preset.custom_format"] = "Custom - {0}",
["preset.custom"] = "Custom",
["preset.candle"] = "Bougie",
["preset.torch"] = "Torche",
["preset.neon"] = "Néon",
["preset.alarm"] = "Alarme",
["preset.broken_lamp"] = "Lampe cassée",
["preset.scifi"] = "Sci-Fi",
["preset.street_light"] = "Lampadaire"
};
}
private static Dictionary<string, string> CreateEnglish()
{
return new()
{
["window.title"] = "Ultimate Light Manager",
["tab.creation"] = "Creation",
["tab.selection"] = "Selection",
["tab.groups"] = "Groups",
["tab.settings"] = "Settings",
["group.creation"] = "Creation",
["group.manipulation"] = "Manipulation",
["group.selection"] = "Selection",
["group.parameters"] = "Parameters",
["group.groups"] = "Groups",
["group.gameplay"] = "Gameplay",
["group.settings"] = "Settings",
["group.display"] = "Display",
["label.preset"] = "Preset",
["label.language"] = "Language",
["label.help_texts"] = "Descriptions and hints",
["label.shortcuts_panel"] = "Shortcuts panel",
["label.group_format"] = "Group: {0}",
["label.power_grid_format"] = "Power Grid: {0}",
["label.active_mode_format"] = "Active mode: {0}",
["button.from_selection"] = "From selection",
["button.save"] = "Save",
["button.duplicate"] = "Duplicate",
["button.rename"] = "Rename",
["button.delete"] = "Delete",
["button.revert"] = "Revert preset",
["button.reset"] = "Reset",
["button.move"] = "Move",
["button.rotate"] = "Rotate",
["button.scale"] = "Scale",
["button.apply_draft_selection"] = "Apply draft to selection",
["button.on"] = "Turn on",
["button.off"] = "Turn off",
["button.toggle"] = "Toggle",
["button.assign_group"] = "Create / Assign group...",
["button.assign_power_grid"] = "Assign Power Grid...",
["button.select_same_group"] = "Select same group",
["button.select_same_grid"] = "Select same grid",
["hint.creation_intro"] = "Pick a preset, tweak the base settings, then create a point light or a spot light that is already configured with Ultimate Light Manager.",
["hint.preset_workflow"] = "Save updates the loaded custom preset. Duplicate creates a new copy. Revert preset rolls back unsaved changes.",
["hint.create_center"] = "With this tool active, right-click in the scene and use \"Create Light Here\" to place a light exactly where you want it.",
["hint.manipulation"] = "Gizmos stay active in this mode so you can move, rotate, or scale your lights just like Object Select.",
["hint.no_selection"] = "Select one or more lights to see the full component inspector and batch-apply your groups or presets.",
["hint.parameters"] = "You can access the full component here, including its groups, tabs, and advanced options, directly inside the scene tool.",
["hint.groups"] = "Select multiple lights and assign them to the same group to control an entire room from gameplay.",
["hint.gameplay"] = "Once your groups are set, you can turn an entire zone on or off with its LightGroup from gameplay.",
["hint.settings"] = "Customize the tool interface without changing the editor's global language.",
["summary.none_selected"] = "No Ultimate Light Manager light selected.",
["summary.one_selected"] = "1 light selected.",
["summary.many_selected"] = "{0} lights selected.",
["mode.move"] = "Move",
["mode.rotate"] = "Rotate",
["mode.scale"] = "Scale",
["example.group_state"] = "Example: UltimateLightManager.SetGroupState( \"Room 1\", false );",
["shortcut.activate_tool"] = "Activate tool",
["shortcut.move_gizmo"] = "Move gizmo",
["shortcut.rotate_gizmo"] = "Rotate gizmo",
["shortcut.scale_gizmo"] = "Scale gizmo",
["shortcut.create_here"] = "Create here",
["shortcut.right_click"] = "Right Click",
["dialog.save_preset.prompt"] = "Preset name:",
["dialog.save_preset.ok"] = "Save",
["dialog.save_preset.title"] = "Save preset",
["dialog.duplicate_preset.prompt"] = "New preset name:",
["dialog.duplicate_preset.ok"] = "Duplicate",
["dialog.duplicate_preset.title"] = "Duplicate preset",
["dialog.rename_preset.prompt"] = "New preset name:",
["dialog.rename_preset.ok"] = "Rename",
["dialog.rename_preset.title"] = "Rename preset",
["dialog.delete_preset.message"] = "Delete preset \"{0}\"?",
["dialog.delete_preset.title"] = "Delete preset",
["dialog.delete_preset.ok"] = "Delete",
["dialog.cancel"] = "Cancel",
["dialog.assign_group.prompt"] = "Group name:",
["dialog.assign_group.ok"] = "Assign",
["dialog.assign_group.title"] = "Create / Assign group",
["dialog.assign_grid.prompt"] = "Power Grid name:",
["dialog.assign_grid.ok"] = "Assign",
["dialog.assign_grid.title"] = "Assign Power Grid",
["scene.create_here"] = "Create Light Here",
["settings.help_on"] = "Shown",
["settings.help_off"] = "Hidden",
["settings.shortcuts_on"] = "Shown",
["settings.shortcuts_off"] = "Hidden",
["settings.current_language_format"] = "Current language: {0}",
["status.preset_free"] = "Free draft. Save it to create a complete preset.",
["status.preset_clean_format"] = "Current preset: {0}",
["status.preset_modified_format"] = "Current preset: {0} (modified)",
["preset.builtin_format"] = "Builtin - {0}",
["preset.custom_format"] = "Custom - {0}",
["preset.custom"] = "Custom",
["preset.candle"] = "Candle",
["preset.torch"] = "Torch",
["preset.neon"] = "Neon",
["preset.alarm"] = "Alarm",
["preset.broken_lamp"] = "Broken Lamp",
["preset.scifi"] = "Sci-Fi",
["preset.street_light"] = "Street Light"
};
}
private static Dictionary<string, string> CreateSpanish()
{
return new()
{
["window.title"] = "Ultimate Light Manager",
["tab.creation"] = "Creación",
["tab.selection"] = "Selección",
["tab.groups"] = "Grupos",
["tab.settings"] = "Parámetros",
["group.creation"] = "Creación",
["group.manipulation"] = "Manipulación",
["group.selection"] = "Selección",
["group.parameters"] = "Parámetros",
["group.groups"] = "Grupos",
["group.gameplay"] = "Gameplay",
["group.settings"] = "Parámetros",
["group.display"] = "Visualización",
["label.preset"] = "Preset",
["label.language"] = "Idioma",
["label.help_texts"] = "Descripciones y ayudas",
["label.shortcuts_panel"] = "Bloque de atajos",
["label.group_format"] = "Grupo: {0}",
["label.power_grid_format"] = "Power Grid: {0}",
["label.active_mode_format"] = "Modo activo: {0}",
["button.from_selection"] = "Desde la selección",
["button.save"] = "Guardar",
["button.duplicate"] = "Duplicar",
["button.rename"] = "Renombrar",
["button.delete"] = "Eliminar",
["button.revert"] = "Volver al preset",
["button.reset"] = "Restablecer",
["button.move"] = "Mover",
["button.rotate"] = "Rotar",
["button.scale"] = "Escalar",
["button.apply_draft_selection"] = "Aplicar borrador a la selección",
["button.on"] = "Encender",
["button.off"] = "Apagar",
["button.toggle"] = "Alternar",
["button.assign_group"] = "Crear / Asignar grupo...",
["button.assign_power_grid"] = "Asignar Power Grid...",
["button.select_same_group"] = "Seleccionar mismo grupo",
["button.select_same_grid"] = "Seleccionar misma grid",
["hint.creation_intro"] = "Elige un preset, ajusta la configuración base y luego crea una point light o una spot light ya preparada con Ultimate Light Manager.",
["hint.preset_workflow"] = "Guardar actualiza el preset custom cargado. Duplicar crea una nueva copia. Volver al preset deshace los cambios no guardados.",
["hint.create_center"] = "Con esta herramienta activa, haz clic derecho en la escena y usa \"Crear luz aquí\" para colocar una luz exactamente donde quieras.",
["hint.manipulation"] = "Los gizmos siguen activos en este modo para mover, rotar o escalar tus luces igual que con Object Select.",
["hint.no_selection"] = "Selecciona una o varias luces para ver el inspector completo del componente y aplicar grupos o presets en lote.",
["hint.parameters"] = "Aquí recuperas el componente completo, incluidos sus grupos, pestañas y opciones avanzadas, directamente en la herramienta de escena.",
["hint.groups"] = "Selecciona varias luces y asígnales el mismo grupo para controlar una habitación completa desde el gameplay.",
["hint.gameplay"] = "Una vez creados los grupos, puedes encender o apagar una zona completa con su LightGroup desde el gameplay.",
["hint.settings"] = "Personaliza la interfaz de la herramienta sin cambiar el idioma global del editor.",
["summary.none_selected"] = "No hay ninguna luz Ultimate Light Manager seleccionada.",
["summary.one_selected"] = "1 luz seleccionada.",
["summary.many_selected"] = "{0} luces seleccionadas.",
["mode.move"] = "Mover",
["mode.rotate"] = "Rotar",
["mode.scale"] = "Escalar",
["example.group_state"] = "Ejemplo: UltimateLightManager.SetGroupState( \"Habitación 1\", false );",
["shortcut.activate_tool"] = "Activar herramienta",
["shortcut.move_gizmo"] = "Gizmo mover",
["shortcut.rotate_gizmo"] = "Gizmo rotar",
["shortcut.scale_gizmo"] = "Gizmo escalar",
["shortcut.create_here"] = "Crear aquí",
["shortcut.right_click"] = "Clic derecho",
["dialog.save_preset.prompt"] = "Nombre del preset:",
["dialog.save_preset.ok"] = "Guardar",
["dialog.save_preset.title"] = "Guardar preset",
["dialog.duplicate_preset.prompt"] = "Nombre del nuevo preset:",
["dialog.duplicate_preset.ok"] = "Duplicar",
["dialog.duplicate_preset.title"] = "Duplicar preset",
["dialog.rename_preset.prompt"] = "Nuevo nombre del preset:",
["dialog.rename_preset.ok"] = "Renombrar",
["dialog.rename_preset.title"] = "Renombrar preset",
["dialog.delete_preset.message"] = "¿Eliminar el preset \"{0}\"?",
["dialog.delete_preset.title"] = "Eliminar preset",
["dialog.delete_preset.ok"] = "Eliminar",
["dialog.cancel"] = "Cancelar",
["dialog.assign_group.prompt"] = "Nombre del grupo:",
["dialog.assign_group.ok"] = "Asignar",
["dialog.assign_group.title"] = "Crear / Asignar grupo",
["dialog.assign_grid.prompt"] = "Nombre del Power Grid:",
["dialog.assign_grid.ok"] = "Asignar",
["dialog.assign_grid.title"] = "Asignar Power Grid",
["scene.create_here"] = "Crear luz aquí",
["settings.help_on"] = "Mostradas",
["settings.help_off"] = "Ocultas",
["settings.shortcuts_on"] = "Mostrado",
["settings.shortcuts_off"] = "Oculto",
["settings.current_language_format"] = "Idioma actual: {0}",
["status.preset_free"] = "Borrador libre. Guardalo para crear un preset completo.",
["status.preset_clean_format"] = "Preset actual: {0}",
["status.preset_modified_format"] = "Preset actual: {0} (modificado)",
["preset.builtin_format"] = "Builtin - {0}",
["preset.custom_format"] = "Custom - {0}",
["preset.custom"] = "Custom",
["preset.candle"] = "Vela",
["preset.torch"] = "Antorcha",
["preset.neon"] = "Neón",
["preset.alarm"] = "Alarma",
["preset.broken_lamp"] = "Lámpara rota",
["preset.scifi"] = "Sci-Fi",
["preset.street_light"] = "Farola"
};
}
private static Dictionary<string, string> CreateGerman()
{
return new()
{
["window.title"] = "Ultimate Light Manager",
["tab.creation"] = "Erstellung",
["tab.selection"] = "Auswahl",
["tab.groups"] = "Gruppen",
["tab.settings"] = "Einstellungen",
["group.creation"] = "Erstellung",
["group.manipulation"] = "Manipulation",
["group.selection"] = "Auswahl",
["group.parameters"] = "Parameter",
["group.groups"] = "Gruppen",
["group.gameplay"] = "Gameplay",
["group.settings"] = "Einstellungen",
["group.display"] = "Anzeige",
["label.preset"] = "Preset",
["label.language"] = "Sprache",
["label.help_texts"] = "Beschreibungen und Hilfen",
["label.shortcuts_panel"] = "Shortcut-Bereich",
["label.group_format"] = "Gruppe: {0}",
["label.power_grid_format"] = "Power Grid: {0}",
["label.active_mode_format"] = "Aktiver Modus: {0}",
["button.from_selection"] = "Aus Auswahl",
["button.save"] = "Speichern",
["button.duplicate"] = "Duplizieren",
["button.rename"] = "Umbenennen",
["button.delete"] = "Löschen",
["button.revert"] = "Preset wiederherstellen",
["button.reset"] = "Zurücksetzen",
["button.move"] = "Verschieben",
["button.rotate"] = "Drehen",
["button.scale"] = "Skalieren",
["button.apply_draft_selection"] = "Entwurf auf Auswahl anwenden",
["button.on"] = "Einschalten",
["button.off"] = "Ausschalten",
["button.toggle"] = "Umschalten",
["button.assign_group"] = "Gruppe erstellen / zuweisen...",
["button.assign_power_grid"] = "Power Grid zuweisen...",
["button.select_same_group"] = "Gleiche Gruppe wählen",
["button.select_same_grid"] = "Gleiches Grid wählen",
["hint.creation_intro"] = "Wähle ein Preset, passe die Grundeinstellungen an und erstelle dann ein Point Light oder Spot Light, das bereits mit Ultimate Light Manager vorbereitet ist.",
["hint.preset_workflow"] = "Speichern aktualisiert das geladene Custom-Preset. Duplizieren erstellt eine neue Kopie. Preset wiederherstellen verwirft ungespeicherte Anderungen.",
["hint.create_center"] = "Wenn dieses Tool aktiv ist, klicke mit der rechten Maustaste in die Szene und nutze \"Licht hier erstellen\", um ein Licht genau dort zu platzieren, wo du es brauchst.",
["hint.manipulation"] = "Die Gizmos bleiben in diesem Modus aktiv, damit du deine Lichter wie bei Object Select verschieben, drehen oder skalieren kannst.",
["hint.no_selection"] = "Wähle ein oder mehrere Lichter aus, um den vollständigen Komponenten-Inspector zu sehen und Gruppen oder Presets gesammelt anzuwenden.",
["hint.parameters"] = "Hier findest du die komplette Komponente mit Gruppen, Tabs und erweiterten Optionen direkt im Szenen-Tool.",
["hint.groups"] = "Wähle mehrere Lichter aus und weise ihnen dieselbe Gruppe zu, um einen ganzen Raum aus dem Gameplay heraus zu steuern.",
["hint.gameplay"] = "Sobald deine Gruppen gesetzt sind, kannst du eine ganze Zone über ihren LightGroup-Namen im Gameplay ein- oder ausschalten.",
["hint.settings"] = "Passe die Tool-Oberfläche an, ohne die globale Sprache des Editors zu ändern.",
["summary.none_selected"] = "Kein Ultimate Light Manager-Licht ausgewählt.",
["summary.one_selected"] = "1 Licht ausgewählt.",
["summary.many_selected"] = "{0} Lichter ausgewählt.",
["mode.move"] = "Verschieben",
["mode.rotate"] = "Drehen",
["mode.scale"] = "Skalieren",
["example.group_state"] = "Beispiel: UltimateLightManager.SetGroupState( \"Raum 1\", false );",
["shortcut.activate_tool"] = "Tool aktivieren",
["shortcut.move_gizmo"] = "Verschiebe-Gizmo",
["shortcut.rotate_gizmo"] = "Rotations-Gizmo",
["shortcut.scale_gizmo"] = "Skalierungs-Gizmo",
["shortcut.create_here"] = "Hier erstellen",
["shortcut.right_click"] = "Rechtsklick",
["dialog.save_preset.prompt"] = "Preset-Name:",
["dialog.save_preset.ok"] = "Speichern",
["dialog.save_preset.title"] = "Preset speichern",
["dialog.duplicate_preset.prompt"] = "Name des neuen Presets:",
["dialog.duplicate_preset.ok"] = "Duplizieren",
["dialog.duplicate_preset.title"] = "Preset duplizieren",
["dialog.rename_preset.prompt"] = "Neuer Preset-Name:",
["dialog.rename_preset.ok"] = "Umbenennen",
["dialog.rename_preset.title"] = "Preset umbenennen",
["dialog.delete_preset.message"] = "Preset \"{0}\" löschen?",
["dialog.delete_preset.title"] = "Preset löschen",
["dialog.delete_preset.ok"] = "Löschen",
["dialog.cancel"] = "Abbrechen",
["dialog.assign_group.prompt"] = "Gruppenname:",
["dialog.assign_group.ok"] = "Zuweisen",
["dialog.assign_group.title"] = "Gruppe erstellen / zuweisen",
["dialog.assign_grid.prompt"] = "Name des Power Grid:",
["dialog.assign_grid.ok"] = "Zuweisen",
["dialog.assign_grid.title"] = "Power Grid zuweisen",
["scene.create_here"] = "Licht hier erstellen",
["settings.help_on"] = "Sichtbar",
["settings.help_off"] = "Ausgeblendet",
["settings.shortcuts_on"] = "Sichtbar",
["settings.shortcuts_off"] = "Ausgeblendet",
["settings.current_language_format"] = "Aktuelle Sprache: {0}",
["status.preset_free"] = "Freier Entwurf. Speichere ihn als komplettes Preset.",
["status.preset_clean_format"] = "Aktuelles Preset: {0}",
["status.preset_modified_format"] = "Aktuelles Preset: {0} (geandert)",
["preset.builtin_format"] = "Builtin - {0}",
["preset.custom_format"] = "Custom - {0}",
["preset.custom"] = "Custom",
["preset.candle"] = "Kerze",
["preset.torch"] = "Fackel",
["preset.neon"] = "Neon",
["preset.alarm"] = "Alarm",
["preset.broken_lamp"] = "Defekte Lampe",
["preset.scifi"] = "Sci-Fi",
["preset.street_light"] = "Straßenlampe"
};
}
private static Dictionary<string, string> CreateRussian()
{
return new()
{
["window.title"] = "Ultimate Light Manager",
["tab.creation"] = "Создание",
["tab.selection"] = "Выбор",
["tab.groups"] = "Группы",
["tab.settings"] = "Настройки",
["group.creation"] = "Создание",
["group.manipulation"] = "Манипуляция",
["group.selection"] = "Выбор",
["group.parameters"] = "Параметры",
["group.groups"] = "Группы",
["group.gameplay"] = "Геймплей",
["group.settings"] = "Настройки",
["group.display"] = "Отображение",
["label.preset"] = "Пресет",
["label.language"] = "Язык",
["label.help_texts"] = "Описания и подсказки",
["label.shortcuts_panel"] = "Блок сочетаний",
["label.group_format"] = "Группа: {0}",
["label.power_grid_format"] = "Power Grid: {0}",
["label.active_mode_format"] = "Активный режим: {0}",
["button.from_selection"] = "Из выделения",
["button.save"] = "Сохранить",
["button.duplicate"] = "Дублировать",
["button.rename"] = "Переименовать",
["button.delete"] = "Удалить",
["button.revert"] = "Вернуть пресет",
["button.reset"] = "Сбросить",
["button.move"] = "Переместить",
["button.rotate"] = "Повернуть",
["button.scale"] = "Масштаб",
["button.apply_draft_selection"] = "Применить черновик к выделению",
["button.on"] = "Включить",
["button.off"] = "Выключить",
["button.toggle"] = "Переключить",
["button.assign_group"] = "Создать / назначить группу...",
["button.assign_power_grid"] = "Назначить Power Grid...",
["button.select_same_group"] = "Выбрать ту же группу",
["button.select_same_grid"] = "Выбрать ту же grid",
["hint.creation_intro"] = "Выбери пресет, настрой базовые параметры, затем создай point light или spot light, уже подготовленный для Ultimate Light Manager.",
["hint.preset_workflow"] = "Сохранение обновляет загруженный custom-пресет. Дубликат создает новую копию. Возврат пресета отменяет несохраненные изменения.",
["hint.create_center"] = "Когда инструмент активен, щёлкни правой кнопкой по сцене и используй \"Создать свет здесь\", чтобы поставить свет точно в нужную точку.",
["hint.manipulation"] = "В этом режиме gizmo остаются активными, поэтому ты можешь перемещать, вращать и масштабировать свет так же, как в Object Select.",
["hint.no_selection"] = "Выбери один или несколько источников света, чтобы увидеть полный инспектор компонента и массово применить группы или пресеты.",
["hint.parameters"] = "Здесь доступен полный компонент со всеми группами, вкладками и расширенными параметрами прямо внутри инструмента сцены.",
["hint.groups"] = "Выдели несколько источников света и назначь им одну группу, чтобы управлять всей комнатой из геймплея.",
["hint.gameplay"] = "Когда группы настроены, ты можешь включать и выключать целую зону по имени LightGroup из геймплея.",
["hint.settings"] = "Настрой интерфейс инструмента, не меняя глобальный язык редактора.",
["summary.none_selected"] = "Не выбран ни один свет Ultimate Light Manager.",
["summary.one_selected"] = "Выбран 1 свет.",
["summary.many_selected"] = "Выбрано светов: {0}.",
["mode.move"] = "Перемещение",
["mode.rotate"] = "Поворот",
["mode.scale"] = "Масштаб",
["example.group_state"] = "Пример: UltimateLightManager.SetGroupState( \"Комната 1\", false );",
["shortcut.activate_tool"] = "Активировать инструмент",
["shortcut.move_gizmo"] = "Gizmo перемещения",
["shortcut.rotate_gizmo"] = "Gizmo поворота",
["shortcut.scale_gizmo"] = "Gizmo масштаба",
["shortcut.create_here"] = "Создать здесь",
["shortcut.right_click"] = "Правый клик",
["dialog.save_preset.prompt"] = "Имя пресета:",
["dialog.save_preset.ok"] = "Сохранить",
["dialog.save_preset.title"] = "Сохранить пресет",
["dialog.duplicate_preset.prompt"] = "Имя нового пресета:",
["dialog.duplicate_preset.ok"] = "Дублировать",
["dialog.duplicate_preset.title"] = "Дублировать пресет",
["dialog.rename_preset.prompt"] = "Новое имя пресета:",
["dialog.rename_preset.ok"] = "Переименовать",
["dialog.rename_preset.title"] = "Переименовать пресет",
["dialog.delete_preset.message"] = "Удалить пресет \"{0}\"?",
["dialog.delete_preset.title"] = "Удалить пресет",
["dialog.delete_preset.ok"] = "Удалить",
["dialog.cancel"] = "Отмена",
["dialog.assign_group.prompt"] = "Имя группы:",
["dialog.assign_group.ok"] = "Назначить",
["dialog.assign_group.title"] = "Создать / назначить группу",
["dialog.assign_grid.prompt"] = "Имя Power Grid:",
["dialog.assign_grid.ok"] = "Назначить",
["dialog.assign_grid.title"] = "Назначить Power Grid",
["scene.create_here"] = "Создать свет здесь",
["settings.help_on"] = "Показаны",
["settings.help_off"] = "Скрыты",
["settings.shortcuts_on"] = "Показан",
["settings.shortcuts_off"] = "Скрыт",
["settings.current_language_format"] = "Текущий язык: {0}",
["status.preset_free"] = "Свободный черновик. Сохраните его как полный пресет.",
["status.preset_clean_format"] = "Текущий пресет: {0}",
["status.preset_modified_format"] = "Текущий пресет: {0} (изменен)",
["preset.builtin_format"] = "Builtin - {0}",
["preset.custom_format"] = "Custom - {0}",
["preset.custom"] = "Custom",
["preset.candle"] = "Свеча",
["preset.torch"] = "Факел",
["preset.neon"] = "Неон",
["preset.alarm"] = "Тревога",
["preset.broken_lamp"] = "Сломанная лампа",
["preset.scifi"] = "Sci-Fi",
["preset.street_light"] = "Уличный фонарь"
};
}
}