Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


LocalizationSettings

The runtime settings for localization: the available locales, the selected locale, and the resource database.
Read time 6 minutesLast updated 5 days ago

Definition

[HelpURL("localization/localization-settings-reference")]public class LocalizationSettings : ScriptableObject

Remarks

This is the central entry point for the standalone localization runtime, and it works with no package installed. One active instance is exposed through LocalizationSettings.Instance; its LocalizationSettings.Database (a ResourceDatabase) resolves localized strings and assets. Locales are held here as plain Locale objects, and everything else refers to a locale by its LocaleIdentifier code, resolved through LocalizationSettings.GetLocale. The locale list is polymorphic (
[SerializeReference]
), so locale subclasses such as a pseudo-locale can be added. Register locales with LocalizationSettings.AddLocale; asset providers can contribute more during LocalizationSettings.InitializeAsync. The startup locale is decided by the LocalizationSettings.StartupSelectors. Call LocalizationSettings.InitializeAsync to load locales and select the startup locale.
Initializes localization and switches to a specific locale.

Examples

using Unity.Localization;using UnityEngine;namespace Unity.Localization.Samples{ public class InitializeAndSwitchLocaleExample : MonoBehaviour { async void Start() { await LocalizationSettings.InitializeAsync(); Locale french = LocalizationSettings.Instance.GetLocale(new LocaleIdentifier("fr")); if (french != null) LocalizationSettings.SelectedLocale = french; } }}

Static Fields

Value

Description

ConfigNameThe key under which the active settings are stored as an editor build config object.

Properties

Property

Description

AvailableLocalesThe locales registered on this settings instance.
DatabaseThe resource database that resolves localized content for this instance.
DeferInitializationWhether the system waits for an explicit call to LocalizationSettings.InitializeAsync before it initializes.
IsInitializedWhether initialization has completed.
ProjectLocaleThe default project locale used when no other locale is selected.
SelectedProviderThe asset provider used as the default when creating new localized content.
SmartStringsSettingsThe Smart Strings settings whose formatter resolves this project's Smart String entries.
StartupSelectorThe selector that chose the startup locale, or null when the chain fell through to the project locale.
StartupSelectorsThe startup locale selectors, evaluated in order to pick the selected locale on initialization.

Static Properties

Property

Description

HasSettingsWhether an active settings instance is registered.
InstanceThe active settings instance, or null when none is registered.
PreferredLoadingThe default loading behaviour used by the reference accessors and their change events.
PreloadBehaviorThe preload behavior the flagged table collections follow.
ResourceDatabaseThe active resource database, or null when no settings instance is registered.
SelectedLocaleThe currently selected locale, or null when none is selected.

Methods

Method

Description

AddLocaleRegisters a locale as available, deduplicated by locale code.
EvaluateStartupLocaleRuns the startup selector chain and returns the locale it produces, without selecting it.
GetLocaleReturns the available locale with the given identifier, or null.
GetSmartFormatterReturns the Smart formatter used to format Smart String entries.
RemoveLocaleRemoves a locale from the available set.

Static Methods

Method

Description

InitializeAsyncLoads the available locales and selects the startup locale, running once.

Static Events

Member

Description

InitializationCompletedRaised once after initialization completes.
SelectedLocaleChangedRaised after the selected locale changes.

Inheritance

Inherited Members

Operators

Operator

Description

operator ==Compares two object references to see if they refer to the same object.
boolDetermines whether the object exists.
operator !=Compares if two objects refer to a different object.