Add LocalizationSettings
This commit is contained in:
@@ -53,6 +53,11 @@ namespace FlaxEditor.Content.Create
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
NavigationSettings,
|
NavigationSettings,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The localization settings.
|
||||||
|
/// </summary>
|
||||||
|
LocalizationSettings,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The build settings.
|
/// The build settings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -108,6 +113,7 @@ namespace FlaxEditor.Content.Create
|
|||||||
typeof(PhysicsSettings),
|
typeof(PhysicsSettings),
|
||||||
typeof(GraphicsSettings),
|
typeof(GraphicsSettings),
|
||||||
typeof(NavigationSettings),
|
typeof(NavigationSettings),
|
||||||
|
typeof(LocalizationSettings),
|
||||||
typeof(BuildSettings),
|
typeof(BuildSettings),
|
||||||
typeof(InputSettings),
|
typeof(InputSettings),
|
||||||
typeof(WindowsPlatformSettings),
|
typeof(WindowsPlatformSettings),
|
||||||
|
|||||||
@@ -934,6 +934,7 @@ namespace FlaxEditor.Modules
|
|||||||
Proxy.Add(new SettingsProxy(typeof(PhysicsSettings)));
|
Proxy.Add(new SettingsProxy(typeof(PhysicsSettings)));
|
||||||
Proxy.Add(new SettingsProxy(typeof(GraphicsSettings)));
|
Proxy.Add(new SettingsProxy(typeof(GraphicsSettings)));
|
||||||
Proxy.Add(new SettingsProxy(typeof(NavigationSettings)));
|
Proxy.Add(new SettingsProxy(typeof(NavigationSettings)));
|
||||||
|
Proxy.Add(new SettingsProxy(typeof(LocalizationSettings)));
|
||||||
Proxy.Add(new SettingsProxy(typeof(BuildSettings)));
|
Proxy.Add(new SettingsProxy(typeof(BuildSettings)));
|
||||||
Proxy.Add(new SettingsProxy(typeof(InputSettings)));
|
Proxy.Add(new SettingsProxy(typeof(InputSettings)));
|
||||||
Proxy.Add(new SettingsProxy(typeof(WindowsPlatformSettings)));
|
Proxy.Add(new SettingsProxy(typeof(WindowsPlatformSettings)));
|
||||||
|
|||||||
@@ -309,6 +309,7 @@ namespace FlaxEditor.Modules
|
|||||||
{ "FlaxEditor.Content.Settings.InputSettings", "Settings" },
|
{ "FlaxEditor.Content.Settings.InputSettings", "Settings" },
|
||||||
{ "FlaxEditor.Content.Settings.LayersAndTagsSettings", "Settings" },
|
{ "FlaxEditor.Content.Settings.LayersAndTagsSettings", "Settings" },
|
||||||
{ "FlaxEditor.Content.Settings.NavigationSettings", "Settings" },
|
{ "FlaxEditor.Content.Settings.NavigationSettings", "Settings" },
|
||||||
|
{ "FlaxEditor.Content.Settings.LocalizationSettings", "Settings" },
|
||||||
{ "FlaxEditor.Content.Settings.PhysicsSettings", "Settings" },
|
{ "FlaxEditor.Content.Settings.PhysicsSettings", "Settings" },
|
||||||
{ "FlaxEditor.Content.Settings.TimeSettings", "Settings" },
|
{ "FlaxEditor.Content.Settings.TimeSettings", "Settings" },
|
||||||
{ "FlaxEditor.Content.Settings.UWPPlatformSettings", "Settings" },
|
{ "FlaxEditor.Content.Settings.UWPPlatformSettings", "Settings" },
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
#include "Engine/Input/InputSettings.h"
|
#include "Engine/Input/InputSettings.h"
|
||||||
#include "Engine/Audio/AudioSettings.h"
|
#include "Engine/Audio/AudioSettings.h"
|
||||||
#include "Engine/Navigation/NavigationSettings.h"
|
#include "Engine/Navigation/NavigationSettings.h"
|
||||||
|
#include "Engine/Localization/LocalizationSettings.h"
|
||||||
#include "Engine/Content/Content.h"
|
#include "Engine/Content/Content.h"
|
||||||
#include "Engine/Content/JsonAsset.h"
|
#include "Engine/Content/JsonAsset.h"
|
||||||
#include "Engine/Content/AssetReference.h"
|
#include "Engine/Content/AssetReference.h"
|
||||||
@@ -127,6 +128,7 @@ bool GameSettings::Load()
|
|||||||
PRELOAD_SETTINGS(Input);
|
PRELOAD_SETTINGS(Input);
|
||||||
PRELOAD_SETTINGS(Graphics);
|
PRELOAD_SETTINGS(Graphics);
|
||||||
PRELOAD_SETTINGS(Navigation);
|
PRELOAD_SETTINGS(Navigation);
|
||||||
|
PRELOAD_SETTINGS(Localization);
|
||||||
PRELOAD_SETTINGS(GameCooking);
|
PRELOAD_SETTINGS(GameCooking);
|
||||||
#undef PRELOAD_SETTINGS
|
#undef PRELOAD_SETTINGS
|
||||||
|
|
||||||
@@ -158,6 +160,7 @@ void GameSettings::Apply()
|
|||||||
APPLY_SETTINGS(InputSettings);
|
APPLY_SETTINGS(InputSettings);
|
||||||
APPLY_SETTINGS(GraphicsSettings);
|
APPLY_SETTINGS(GraphicsSettings);
|
||||||
APPLY_SETTINGS(NavigationSettings);
|
APPLY_SETTINGS(NavigationSettings);
|
||||||
|
APPLY_SETTINGS(LocalizationSettings);
|
||||||
APPLY_SETTINGS(BuildSettings);
|
APPLY_SETTINGS(BuildSettings);
|
||||||
APPLY_SETTINGS(PlatformSettings);
|
APPLY_SETTINGS(PlatformSettings);
|
||||||
#undef APPLY_SETTINGS
|
#undef APPLY_SETTINGS
|
||||||
@@ -197,6 +200,7 @@ void GameSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* mo
|
|||||||
DESERIALIZE(Input);
|
DESERIALIZE(Input);
|
||||||
DESERIALIZE(Graphics);
|
DESERIALIZE(Graphics);
|
||||||
DESERIALIZE(Navigation);
|
DESERIALIZE(Navigation);
|
||||||
|
DESERIALIZE(Localization);
|
||||||
DESERIALIZE(GameCooking);
|
DESERIALIZE(GameCooking);
|
||||||
|
|
||||||
// Per-platform settings containers
|
// 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")]
|
[EditorOrder(1045), EditorDisplay("Other Settings"), AssetReference(typeof(NavigationSettings), true), Tooltip("Reference to Navigation Settings asset")]
|
||||||
public JsonAsset Navigation;
|
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>
|
/// <summary>
|
||||||
/// Reference to <see cref="BuildSettings"/> asset.
|
/// Reference to <see cref="BuildSettings"/> asset.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -219,6 +225,8 @@ namespace FlaxEditor.Content.Settings
|
|||||||
return LoadAsset<GraphicsSettings>(gameSettings.Graphics) as T;
|
return LoadAsset<GraphicsSettings>(gameSettings.Graphics) as T;
|
||||||
if (type == typeof(NavigationSettings))
|
if (type == typeof(NavigationSettings))
|
||||||
return LoadAsset<NavigationSettings>(gameSettings.Navigation) as T;
|
return LoadAsset<NavigationSettings>(gameSettings.Navigation) as T;
|
||||||
|
if (type == typeof(LocalizationSettings))
|
||||||
|
return LoadAsset<LocalizationSettings>(gameSettings.Localization) as T;
|
||||||
if (type == typeof(BuildSettings))
|
if (type == typeof(BuildSettings))
|
||||||
return LoadAsset<BuildSettings>(gameSettings.GameCooking) as T;
|
return LoadAsset<BuildSettings>(gameSettings.GameCooking) as T;
|
||||||
if (type == typeof(InputSettings))
|
if (type == typeof(InputSettings))
|
||||||
@@ -321,6 +329,8 @@ namespace FlaxEditor.Content.Settings
|
|||||||
return SaveAsset(gameSettings, ref gameSettings.Graphics, obj);
|
return SaveAsset(gameSettings, ref gameSettings.Graphics, obj);
|
||||||
if (type == typeof(NavigationSettings))
|
if (type == typeof(NavigationSettings))
|
||||||
return SaveAsset(gameSettings, ref gameSettings.Navigation, obj);
|
return SaveAsset(gameSettings, ref gameSettings.Navigation, obj);
|
||||||
|
if (type == typeof(LocalizationSettings))
|
||||||
|
return SaveAsset(gameSettings, ref gameSettings.Localization, obj);
|
||||||
if (type == typeof(BuildSettings))
|
if (type == typeof(BuildSettings))
|
||||||
return SaveAsset(gameSettings, ref gameSettings.GameCooking, obj);
|
return SaveAsset(gameSettings, ref gameSettings.GameCooking, obj);
|
||||||
if (type == typeof(InputSettings))
|
if (type == typeof(InputSettings))
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public:
|
|||||||
Guid Input;
|
Guid Input;
|
||||||
Guid Graphics;
|
Guid Graphics;
|
||||||
Guid Navigation;
|
Guid Navigation;
|
||||||
|
Guid Localization;
|
||||||
Guid GameCooking;
|
Guid GameCooking;
|
||||||
|
|
||||||
// Per-platform settings containers
|
// Per-platform settings containers
|
||||||
|
|||||||
@@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
#include "Localization.h"
|
#include "Localization.h"
|
||||||
#include "CultureInfo.h"
|
#include "CultureInfo.h"
|
||||||
|
#include "LocalizationSettings.h"
|
||||||
#include "Engine/Core/Log.h"
|
#include "Engine/Core/Log.h"
|
||||||
|
#include "Engine/Core/Config/GameSettings.h"
|
||||||
#include "Engine/Engine/EngineService.h"
|
#include "Engine/Engine/EngineService.h"
|
||||||
|
#include "Engine/Content/Content.h"
|
||||||
|
#include "Engine/Serialization/Serialization.h"
|
||||||
|
|
||||||
class LocalizationService : public EngineService
|
class LocalizationService : public EngineService
|
||||||
{
|
{
|
||||||
@@ -21,6 +25,18 @@ namespace
|
|||||||
CultureInfo CurrentCulture(0);
|
CultureInfo CurrentCulture(0);
|
||||||
CultureInfo CurrentLanguage(0);
|
CultureInfo CurrentLanguage(0);
|
||||||
LocalizationService LocalizationServiceInstance;
|
LocalizationService LocalizationServiceInstance;
|
||||||
|
|
||||||
|
IMPLEMENT_SETTINGS_GETTER(LocalizationSettings, Localization);
|
||||||
|
|
||||||
|
void LocalizationSettings::Apply()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void LocalizationSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
|
||||||
|
{
|
||||||
|
DESERIALIZE(LocalizedStringTables);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LocalizationService::Init()
|
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