Add LocalizationSettings
This commit is contained in:
@@ -53,6 +53,11 @@ namespace FlaxEditor.Content.Create
|
||||
/// </summary>
|
||||
NavigationSettings,
|
||||
|
||||
/// <summary>
|
||||
/// The localization settings.
|
||||
/// </summary>
|
||||
LocalizationSettings,
|
||||
|
||||
/// <summary>
|
||||
/// The build settings.
|
||||
/// </summary>
|
||||
@@ -108,6 +113,7 @@ namespace FlaxEditor.Content.Create
|
||||
typeof(PhysicsSettings),
|
||||
typeof(GraphicsSettings),
|
||||
typeof(NavigationSettings),
|
||||
typeof(LocalizationSettings),
|
||||
typeof(BuildSettings),
|
||||
typeof(InputSettings),
|
||||
typeof(WindowsPlatformSettings),
|
||||
|
||||
@@ -934,6 +934,7 @@ namespace FlaxEditor.Modules
|
||||
Proxy.Add(new SettingsProxy(typeof(PhysicsSettings)));
|
||||
Proxy.Add(new SettingsProxy(typeof(GraphicsSettings)));
|
||||
Proxy.Add(new SettingsProxy(typeof(NavigationSettings)));
|
||||
Proxy.Add(new SettingsProxy(typeof(LocalizationSettings)));
|
||||
Proxy.Add(new SettingsProxy(typeof(BuildSettings)));
|
||||
Proxy.Add(new SettingsProxy(typeof(InputSettings)));
|
||||
Proxy.Add(new SettingsProxy(typeof(WindowsPlatformSettings)));
|
||||
|
||||
@@ -309,6 +309,7 @@ namespace FlaxEditor.Modules
|
||||
{ "FlaxEditor.Content.Settings.InputSettings", "Settings" },
|
||||
{ "FlaxEditor.Content.Settings.LayersAndTagsSettings", "Settings" },
|
||||
{ "FlaxEditor.Content.Settings.NavigationSettings", "Settings" },
|
||||
{ "FlaxEditor.Content.Settings.LocalizationSettings", "Settings" },
|
||||
{ "FlaxEditor.Content.Settings.PhysicsSettings", "Settings" },
|
||||
{ "FlaxEditor.Content.Settings.TimeSettings", "Settings" },
|
||||
{ "FlaxEditor.Content.Settings.UWPPlatformSettings", "Settings" },
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "Engine/Input/InputSettings.h"
|
||||
#include "Engine/Audio/AudioSettings.h"
|
||||
#include "Engine/Navigation/NavigationSettings.h"
|
||||
#include "Engine/Localization/LocalizationSettings.h"
|
||||
#include "Engine/Content/Content.h"
|
||||
#include "Engine/Content/JsonAsset.h"
|
||||
#include "Engine/Content/AssetReference.h"
|
||||
@@ -127,6 +128,7 @@ bool GameSettings::Load()
|
||||
PRELOAD_SETTINGS(Input);
|
||||
PRELOAD_SETTINGS(Graphics);
|
||||
PRELOAD_SETTINGS(Navigation);
|
||||
PRELOAD_SETTINGS(Localization);
|
||||
PRELOAD_SETTINGS(GameCooking);
|
||||
#undef PRELOAD_SETTINGS
|
||||
|
||||
@@ -158,6 +160,7 @@ void GameSettings::Apply()
|
||||
APPLY_SETTINGS(InputSettings);
|
||||
APPLY_SETTINGS(GraphicsSettings);
|
||||
APPLY_SETTINGS(NavigationSettings);
|
||||
APPLY_SETTINGS(LocalizationSettings);
|
||||
APPLY_SETTINGS(BuildSettings);
|
||||
APPLY_SETTINGS(PlatformSettings);
|
||||
#undef APPLY_SETTINGS
|
||||
@@ -197,6 +200,7 @@ void GameSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* mo
|
||||
DESERIALIZE(Input);
|
||||
DESERIALIZE(Graphics);
|
||||
DESERIALIZE(Navigation);
|
||||
DESERIALIZE(Localization);
|
||||
DESERIALIZE(GameCooking);
|
||||
|
||||
// Per-platform settings containers
|
||||
|
||||
@@ -79,6 +79,12 @@ namespace FlaxEditor.Content.Settings
|
||||
[EditorOrder(1045), EditorDisplay("Other Settings"), AssetReference(typeof(NavigationSettings), true), Tooltip("Reference to Navigation Settings asset")]
|
||||
public JsonAsset Navigation;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to <see cref="LocalizationSettings"/> asset.
|
||||
/// </summary>
|
||||
[EditorOrder(1046), EditorDisplay("Other Settings"), AssetReference(typeof(LocalizationSettings), true), Tooltip("Reference to Localization Settings asset")]
|
||||
public JsonAsset Localization;
|
||||
|
||||
/// <summary>
|
||||
/// Reference to <see cref="BuildSettings"/> asset.
|
||||
/// </summary>
|
||||
@@ -219,6 +225,8 @@ namespace FlaxEditor.Content.Settings
|
||||
return LoadAsset<GraphicsSettings>(gameSettings.Graphics) as T;
|
||||
if (type == typeof(NavigationSettings))
|
||||
return LoadAsset<NavigationSettings>(gameSettings.Navigation) as T;
|
||||
if (type == typeof(LocalizationSettings))
|
||||
return LoadAsset<LocalizationSettings>(gameSettings.Localization) as T;
|
||||
if (type == typeof(BuildSettings))
|
||||
return LoadAsset<BuildSettings>(gameSettings.GameCooking) as T;
|
||||
if (type == typeof(InputSettings))
|
||||
@@ -321,6 +329,8 @@ namespace FlaxEditor.Content.Settings
|
||||
return SaveAsset(gameSettings, ref gameSettings.Graphics, obj);
|
||||
if (type == typeof(NavigationSettings))
|
||||
return SaveAsset(gameSettings, ref gameSettings.Navigation, obj);
|
||||
if (type == typeof(LocalizationSettings))
|
||||
return SaveAsset(gameSettings, ref gameSettings.Localization, obj);
|
||||
if (type == typeof(BuildSettings))
|
||||
return SaveAsset(gameSettings, ref gameSettings.GameCooking, obj);
|
||||
if (type == typeof(InputSettings))
|
||||
|
||||
@@ -68,6 +68,7 @@ public:
|
||||
Guid Input;
|
||||
Guid Graphics;
|
||||
Guid Navigation;
|
||||
Guid Localization;
|
||||
Guid GameCooking;
|
||||
|
||||
// Per-platform settings containers
|
||||
|
||||
@@ -2,8 +2,12 @@
|
||||
|
||||
#include "Localization.h"
|
||||
#include "CultureInfo.h"
|
||||
#include "LocalizationSettings.h"
|
||||
#include "Engine/Core/Log.h"
|
||||
#include "Engine/Core/Config/GameSettings.h"
|
||||
#include "Engine/Engine/EngineService.h"
|
||||
#include "Engine/Content/Content.h"
|
||||
#include "Engine/Serialization/Serialization.h"
|
||||
|
||||
class LocalizationService : public EngineService
|
||||
{
|
||||
@@ -21,6 +25,18 @@ namespace
|
||||
CultureInfo CurrentCulture(0);
|
||||
CultureInfo CurrentLanguage(0);
|
||||
LocalizationService LocalizationServiceInstance;
|
||||
|
||||
IMPLEMENT_SETTINGS_GETTER(LocalizationSettings, Localization);
|
||||
|
||||
void LocalizationSettings::Apply()
|
||||
{
|
||||
}
|
||||
|
||||
void LocalizationSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
|
||||
{
|
||||
DESERIALIZE(LocalizedStringTables);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool LocalizationService::Init()
|
||||
|
||||
31
Source/Engine/Localization/LocalizationSettings.h
Normal file
31
Source/Engine/Localization/LocalizationSettings.h
Normal file
@@ -0,0 +1,31 @@
|
||||
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Engine/Core/Config/Settings.h"
|
||||
#include "Engine/Content/AssetReference.h"
|
||||
#include "LocalizedStringTable.h"
|
||||
|
||||
/// <summary>
|
||||
/// Game localization and internalization settings container.
|
||||
/// </summary>
|
||||
API_CLASS(sealed, Namespace="FlaxEditor.Content.Settings") class FLAXENGINE_API LocalizationSettings : public SettingsBase
|
||||
{
|
||||
DECLARE_SCRIPTING_TYPE_MINIMAL(LocalizationSettings);
|
||||
public:
|
||||
/// <summary>
|
||||
/// The list of the string localization tables used by the game.
|
||||
/// </summary>
|
||||
API_FIELD()
|
||||
Array<AssetReference<LocalizedStringTable>> LocalizedStringTables;
|
||||
|
||||
public:
|
||||
/// <summary>
|
||||
/// Gets the instance of the settings asset (default value if missing). Object returned by this method is always loaded with valid data to use.
|
||||
/// </summary>
|
||||
static LocalizationSettings* Get();
|
||||
|
||||
// [SettingsBase]
|
||||
void Apply() override;
|
||||
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override;
|
||||
};
|
||||
Reference in New Issue
Block a user