# LocalizedString

> A serializable reference that resolves and formats a localized text value.

## Definition

* **Type:** Class
* **Namespace:** [Unity.Localization](/engine/6000.7/script-reference/unity/localization.md)
* **Assembly:** UnityEngine.LocalizationRuntimeModule
* **Inherits from:** [LocalizedEntry\<IStringEntry>](/engine/6000.7/script-reference/unity/localization/localizedentry1.md)
* **Implements:** [IVariable](/engine/6000.7/script-reference/unity/smartstrings/persistentvariables/ivariable.md)

```csharp
public class LocalizedString : LocalizedEntry<IStringEntry>, IVariable
```

## Remarks

A [LocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring.md) extends [LocalizedEntry\<TEntry>](/engine/6000.7/script-reference/unity/localization/localizedentry1.md) to resolve an [IStringEntry](/engine/6000.7/script-reference/unity/localization/istringentry.md) and return its formatted text. Smart entries are formatted through Smart Strings, with placeholders such as `{score}` resolved against the reference's [LocalizedString.LocalVariables](/engine/6000.7/script-reference/unity/localization/localizedstring/localvariables.md), and the resolved value is passed through the locale's post-processing hook before it is returned. Resolve the value with [LocalizedString.GetLocalizedStringAsync](/engine/6000.7/script-reference/unity/localization/localizedstring/getlocalizedstringasync.md), or read it synchronously with [LocalizedString.GetLocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring/getlocalizedstring.md) once the table is loaded. Subscribe to [LocalizedString.StringChanged](/engine/6000.7/script-reference/unity/localization/localizedstring/stringchanged.md) to receive the value immediately and again whenever the selected locale changes on [LocalizationSettings](/engine/6000.7/script-reference/unity/localization/localizationsettings.md).

Additional Resources: [LocalizationSettings](/engine/6000.7/script-reference/unity/localization/localizationsettings.md), [ResourceDatabase](/engine/6000.7/script-reference/unity/localization/resourcedatabase.md), [TableReference](/engine/6000.7/script-reference/unity/localization/tablereference.md), [TableEntryReference](/engine/6000.7/script-reference/unity/localization/tableentryreference.md), [LocalVariablesGroup](/engine/6000.7/script-reference/unity/localization/localvariablesgroup.md), [IVariable](/engine/6000.7/script-reference/unity/smartstrings/persistentvariables/ivariable.md)

Resolve a localized string and keep a label updated as the locale changes.

## Examples

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

namespace Unity.Localization.Samples
{
    public class LocalizedStringResolveExample
    {
        public void Resolve()
        {
            var greeting = new LocalizedString();
            greeting.SetReference("My Strings", "HELLO");
            greeting.StringChanged += value => Debug.Log(value);
        }
    }
}
```

## Properties

| Property                                                                                               | Description                                                                                       |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
| [LocalVariables](/engine/6000.7/script-reference/unity/localization/localizedstring/localvariables.md) | The local variables that Smart String placeholders resolve against when this string is formatted. |

## Methods

| Method                                                                                                                   | Description                                                                                                   |
| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
| [GetLocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring/getlocalizedstring.md)           | Resolves the localized string synchronously when the table is cached or a synchronous provider can supply it. |
| [GetLocalizedStringAsync](/engine/6000.7/script-reference/unity/localization/localizedstring/getlocalizedstringasync.md) | Resolves the localized string asynchronously, formatting it with the given arguments.                         |
| [GetSourceValue](/engine/6000.7/script-reference/unity/localization/localizedstring/getsourcevalue.md)                   | Resolves this string so it can be read as a Smart String placeholder in another string.                       |
| [RefreshString](/engine/6000.7/script-reference/unity/localization/localizedstring/refreshstring.md)                     | Re-resolves the value and pushes the result to subscribers.                                                   |

## Events

| Member                                                                                               | Description                                                                                    |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| [StringChanged](/engine/6000.7/script-reference/unity/localization/localizedstring/stringchanged.md) | Occurs when the resolved string value changes, and once immediately when a handler subscribes. |

## Delegates

| Delegate                                                                                                             | Description                                                          |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| [LocalizedString.ChangeHandler](/engine/6000.7/script-reference/unity/localization/localizedstring/changehandler.md) | Represents a method that receives a resolved localized string value. |

## Inheritance

**Inherited Members:**

* [LocalizedEntry\<IStringEntry>.SetReference(TableReference, TableEntryReference)](/engine/6000.7/script-reference/unity/localization/localizedentry1/setreference.md)
* [LocalizedEntry\<IStringEntry>.GetEntryAsync(CancellationToken)](/engine/6000.7/script-reference/unity/localization/localizedentry1/getentryasync.md)
* [LocalizedEntry\<IStringEntry>.GetEntry()](/engine/6000.7/script-reference/unity/localization/localizedentry1/getentry.md)
* [LocalizedEntry\<IStringEntry>.TableEntryReference()](/engine/6000.7/script-reference/unity/localization/localizedentry1/tableentryreference.md)
* [LocalizedEntry\<IStringEntry>.IsEmpty()](/engine/6000.7/script-reference/unity/localization/localizedentry1/isempty.md)
* [LocalizedReference.ResolveOverrideLocale()](/engine/6000.7/script-reference/unity/localization/localizedreference/resolveoverridelocale.md)
* [LocalizedReference.ForceUpdate()](/engine/6000.7/script-reference/unity/localization/localizedreference/forceupdate.md)
* [LocalizedReference.TableReference()](/engine/6000.7/script-reference/unity/localization/localizedreference/tablereference.md)
* [LocalizedReference.LocaleOverride()](/engine/6000.7/script-reference/unity/localization/localizedreference/localeoverride.md)
* [LocalizedReference.EnableFallback()](/engine/6000.7/script-reference/unity/localization/localizedreference/enablefallback.md)
* [LocalizedReference.HasLocaleOverride()](/engine/6000.7/script-reference/unity/localization/localizedreference/haslocaleoverride.md)
* [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)
