Class LocalizationSettings
The localization settings is the core component to the localization system.
It provides the entry point to all player based localization features.
Inheritance
LocalizationSettings
Syntax
public class LocalizationSettings : ScriptableObject, IReset, IDisposable
Properties
AssetDatabase
The asset database is responsible for providing localized assets.
Declaration
public static LocalizedAssetDatabase AssetDatabase { get; set; }
Property Value
AvailableLocales
Declaration
public static ILocalesProvider AvailableLocales { get; set; }
Property Value
HasSettings
Indicates if there is a LocalizationSettings present. If one is not found then it will attempt to find one however
unlike Instance it will not create a default, if one can not be found.
Declaration
public static bool HasSettings { get; }
Property Value
InitializationOperation
The localization system may not be immediately ready. Loading Locales, preloading assets etc.
This operation can be used to check when the system is ready. You can yield on this in a coroutine to wait.
If InitializeSynchronously is true then this operation will complete synchronously the first time it is called.
Uses WaitForCompletion to force the loading to complete synchronously.
Please note that WaitForCompletion is not supported on
WebGL and InitializeSynchronously
will be ignored when running on WebGL.
Declaration
public static AsyncOperationHandle<LocalizationSettings> InitializationOperation { get; }
Property Value
Examples
This shows how to use a coroutine to wait for the Initialization Operation to complete.
public class InitializationOperationExampleAsync : MonoBehaviour
{
IEnumerator Start()
{
yield return LocalizationSettings.InitializationOperation;
Debug.Log("Initialization Completed");
}
}
This shows how to use the Completed event to get a callback when the Initialization Operation is complete.
public class InitializationOperationExampleAsyncEvent : MonoBehaviour
{
void Start()
{
var init = LocalizationSettings.InitializationOperation;
init.Completed += a => Debug.Log("Initialization Completed");
}
}
This shows how to force the Initialization Operation to complete synchronously using WaitForCompletion.
Note WaitForCompletion is not supported on WebGL.
public class InitializationOperationExampleSync : MonoBehaviour
{
void Start()
{
// Force initialization to complete synchronously.
LocalizationSettings.InitializationOperation.WaitForCompletion();
}
}
InitializeSynchronously
Declaration
public static bool InitializeSynchronously { get; set; }
Property Value
Instance
Singleton instance for the Localization Settings.
Declaration
public static LocalizationSettings Instance { get; set; }
Property Value
Returns the Localization Settings Metadata.
Metadata can be used to contain additional information such as App Name localization settings.
Declaration
public static MetadataCollection Metadata { get; }
Property Value
PreloadBehavior
Determines which tables, that have been marked as preload, will be loaded during the preloading step.
Declaration
public static PreloadBehavior PreloadBehavior { get; set; }
Property Value
ProjectLocale
When tracking property variants in a scene, any changes you make whilst in this Locale are saved into the source object instead of as a variant.
Declaration
public static Locale ProjectLocale { get; set; }
Property Value
SelectedLocale
The current selected Locale. This is the Locale that will be used by default when localizing assets and strings.
Calling this when the Localization system has not initialized will force the Localization system to load all Locales before returning,
see SelectedLocaleAsync for a version that will load the Locales asynchronously.
Declaration
public static Locale SelectedLocale { get; set; }
Property Value
SelectedLocaleAsync
The current selected Locale. This is the Locale that will be used by default when localizing assets and strings.
If InitializationOperation has not been completed yet then this will wait for the AvailableLocales part to complete first.
It will not wait for the entire InitializationOperation but just the part that initializes the Locales.
See SelectedLocale for a synchronous version that will block until the Locales have been loaded.
Declaration
public static AsyncOperationHandle<Locale> SelectedLocaleAsync { get; }
Property Value
StartupLocaleSelectors
Declaration
public static List<IStartupLocaleSelector> StartupLocaleSelectors { get; }
Property Value
StringDatabase
The string database is responsible for providing localized string assets.
Declaration
public static LocalizedStringDatabase StringDatabase { get; set; }
Property Value
Methods
GetAssetDatabase()
Declaration
public virtual LocalizedAssetDatabase GetAssetDatabase()
Returns
GetAvailableLocales()
Declaration
public virtual ILocalesProvider GetAvailableLocales()
Returns
GetInitializationOperation()
Declaration
public virtual AsyncOperationHandle<LocalizationSettings> GetInitializationOperation()
Returns
GetInstanceDontCreateDefault()
Returns the singleton of the LocalizationSettings but does not create a default one if no active settings are found.
Declaration
public static LocalizationSettings GetInstanceDontCreateDefault()
Returns
Returns the Localization Settings Metadata.
Metadata can be used to contain additional information such as App Name localization settings.
Declaration
public MetadataCollection GetMetadata()
Returns
GetSelectedLocale()
Declaration
public virtual Locale GetSelectedLocale()
Returns
GetSelectedLocaleAsync()
Declaration
public virtual AsyncOperationHandle<Locale> GetSelectedLocaleAsync()
Returns
GetStartupLocaleSelectors()
Declaration
public List<IStartupLocaleSelector> GetStartupLocaleSelectors()
Returns
GetStringDatabase()
Returns the string database being used to localize all strings.
Declaration
public virtual LocalizedStringDatabase GetStringDatabase()
Returns
OnLocaleRemoved(Locale)
Declaration
public virtual void OnLocaleRemoved(Locale locale)
Parameters
Type |
Name |
Description |
Locale |
locale |
|
ResetState()
Resets the internal state of the object so it is ready to be used again and does not contain any data left over from a previous run.
Declaration
Implements
SelectLocaleUsingStartupSelectors()
Declaration
protected virtual Locale SelectLocaleUsingStartupSelectors()
Returns
SetAssetDatabase(LocalizedAssetDatabase)
Declaration
public void SetAssetDatabase(LocalizedAssetDatabase database)
Parameters
SetAvailableLocales(ILocalesProvider)
Declaration
public void SetAvailableLocales(ILocalesProvider available)
Parameters
SetSelectedLocale(Locale)
Declaration
public void SetSelectedLocale(Locale locale)
Parameters
Type |
Name |
Description |
Locale |
locale |
|
SetStringDatabase(LocalizedStringDatabase)
Sets the string database to be used for localizing all strings.
Declaration
public void SetStringDatabase(LocalizedStringDatabase database)
Parameters
Events
OnSelectedLocaleChanged
Declaration
public event Action<Locale> OnSelectedLocaleChanged
Event Type
SelectedLocaleChanged
Declaration
public static event Action<Locale> SelectedLocaleChanged
Event Type
Examples
This shows how to keep track of the current selected Locale.
public class SelectedLocaleChangedExample : MonoBehaviour
{
Locale currentLocale;
void OnEnable()
{
LocalizationSettings.SelectedLocaleChanged += OnSelectedLocaleChanged;
}
void OnDisable()
{
LocalizationSettings.SelectedLocaleChanged -= OnSelectedLocaleChanged;
}
IEnumerable Start()
{
// Get the initial selected locale value
var selectedLocale = LocalizationSettings.SelectedLocaleAsync;
yield return selectedLocale;
currentLocale = selectedLocale.Result;
}
void OnSelectedLocaleChanged(Locale locale)
{
currentLocale = locale;
}
void OnGUI()
{
if (currentLocale != null)
GUILayout.Label("The current locale is " + currentLocale.LocaleName);
}
}