# LocalizedReference

> The serializable base for a reference into a localization table, pairing a table collection with an optional locale override.

## Definition

* **Type:** Class
* **Namespace:** [Unity.Localization](/engine/6000.7/script-reference/unity/localization.md)
* **Assembly:** UnityEngine.LocalizationRuntimeModule
* **Inherits from:** [CustomBinding](/engine/6000.7/script-reference/unityengine/uielements/custombinding.md)

```csharp
public abstract class LocalizedReference : CustomBinding
```

## Remarks

A [LocalizedReference](/engine/6000.7/script-reference/unity/localization/localizedreference.md) identifies the [TableReference](/engine/6000.7/script-reference/unity/localization/tablereference.md) to resolve against and, optionally, the [LocalizedReference.LocaleOverride](/engine/6000.7/script-reference/unity/localization/localizedreference/localeoverride.md) to resolve in. When no override is set, the reference resolves in the locale selected on [LocalizationSettings](/engine/6000.7/script-reference/unity/localization/localizationsettings.md). Concrete subclasses resolve either a whole table ([LocalizedTable](/engine/6000.7/script-reference/unity/localization/localizedtable.md)) or a single entry within one ([LocalizedEntry\<TEntry>](/engine/6000.7/script-reference/unity/localization/localizedentry1.md), along with the [LocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring.md) and [LocalizedAsset\<TObject>](/engine/6000.7/script-reference/unity/localization/localizedasset1.md) types built on it). Resolution goes through the [ResourceDatabase](/engine/6000.7/script-reference/unity/localization/resourcedatabase.md) provider chain, so lookups are asynchronous by default; set [LocalizationSettings.PreferredLoading](/engine/6000.7/script-reference/unity/localization/localizationsettings/preferredloading.md) to [LoadingPreference.Synchronous](/engine/6000.7/script-reference/unity/localization/loadingpreference/synchronous.md) to resolve synchronously when the value is available. Store a reference in a serialized field to expose it in the Inspector, then read the localized value at runtime.

Additional Resources: [LocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring.md), [LocalizedAsset\<TObject>](/engine/6000.7/script-reference/unity/localization/localizedasset1.md), [LocalizedTable](/engine/6000.7/script-reference/unity/localization/localizedtable.md), [ResourceDatabase](/engine/6000.7/script-reference/unity/localization/resourcedatabase.md), [TableReference](/engine/6000.7/script-reference/unity/localization/tablereference.md)

Configure a reference through the derived [LocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring.md) type and choose the locale it resolves in.

## Examples

```csharp
using Unity.Localization;
using UnityEngine;

namespace Unity.Localization.Samples
{
    public class LocalizedReferenceConfigureExample
    {
        public void Configure()
        {
            var reference = new LocalizedString();
            reference.TableReference = "My Strings";
            reference.TableEntryReference = "HELLO";
            reference.LocaleOverride = new LocaleIdentifier("fr");
        }
    }
}
```

## Constructors

| Constructor                                                                                           | Description                    |
| ----------------------------------------------------------------------------------------------------- | ------------------------------ |
| [LocalizedReference()](/engine/6000.7/script-reference/unity/localization/localizedreference/ctor.md) | Creates a localized reference. |

## Properties

| Property                                                                                                        | Description                                                                                          |
| --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| [EnableFallback](/engine/6000.7/script-reference/unity/localization/localizedreference/enablefallback.md)       | Whether to walk the locale fallback chain when the resolving locale has no value for this reference. |
| [HasLocaleOverride](/engine/6000.7/script-reference/unity/localization/localizedreference/haslocaleoverride.md) | Whether a locale override is set on this reference.                                                  |
| [IsEmpty](/engine/6000.7/script-reference/unity/localization/localizedreference/isempty.md)                     | Whether this reference is unset and resolves to no value.                                            |
| [LocaleOverride](/engine/6000.7/script-reference/unity/localization/localizedreference/localeoverride.md)       | The locale used to resolve this reference instead of the locale selected in the project settings.    |
| [TableReference](/engine/6000.7/script-reference/unity/localization/localizedreference/tablereference.md)       | The localization table collection that this reference resolves against.                              |

## Methods

| Method                                                                                                                  | Description                                                                                             |
| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| [ForceUpdate](/engine/6000.7/script-reference/unity/localization/localizedreference/forceupdate.md)                     | Called when the reference changes so subclasses can refresh any live listeners.                         |
| [ResolveOverrideLocale](/engine/6000.7/script-reference/unity/localization/localizedreference/resolveoverridelocale.md) | Resolves the override locale from the project settings for subclasses to pass to the resource database. |

## Inheritance

**Inherited Members:**

* [Binding.SetGlobalLogLevel(BindingLogLevel)](/engine/6000.7/script-reference/unityengine/uielements/binding/setgloballoglevel.md)
* [Binding.GetGlobalLogLevel()](/engine/6000.7/script-reference/unityengine/uielements/binding/getgloballoglevel.md)
* [Binding.SetPanelLogLevel(IPanel, BindingLogLevel)](/engine/6000.7/script-reference/unityengine/uielements/binding/setpanelloglevel.md)
* [Binding.GetPanelLogLevel(IPanel)](/engine/6000.7/script-reference/unityengine/uielements/binding/getpanelloglevel.md)
* [Binding.ResetPanelLogLevel(IPanel)](/engine/6000.7/script-reference/unityengine/uielements/binding/resetpanelloglevel.md)
* [Binding.MarkDirty()](/engine/6000.7/script-reference/unityengine/uielements/binding/markdirty.md)
* [Binding.isDirty](/engine/6000.7/script-reference/unityengine/uielements/binding/isdirty.md)
* [Binding.updateTrigger](/engine/6000.7/script-reference/unityengine/uielements/binding/updatetrigger.md)
