# StringChanged

> Occurs when the resolved string value changes, and once immediately when a handler subscribes.

## Definition

* **Type:** Event
* **Namespace:** [Unity.Localization](/engine/6000.7/script-reference/unity/localization.md)
* **Assembly:** UnityEngine.LocalizationRuntimeModule

```csharp
public event LocalizedString.ChangeHandler StringChanged
```

### Remarks

Adding a handler invokes it right away with the current value, then again whenever the selected locale changes or [LocalizedString.RefreshString()](/engine/6000.7/script-reference/unity/localization/localizedstring/refreshstring.md) runs. Because resolution is asynchronous, the first call arrives after the value has loaded. Removing the last handler stops the reference from listening for locale changes.

Additional Resources: [LocalizedString.RefreshString()](/engine/6000.7/script-reference/unity/localization/localizedstring/refreshstring.md), [LocalizedString.GetLocalizedStringAsync](/engine/6000.7/script-reference/unity/localization/localizedstring/getlocalizedstringasync.md)

Update a UI label whenever the localized value changes.

### Examples

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

namespace Unity.Localization.Samples
{
    public class LocalizedStringChangedExample : MonoBehaviour
    {
        public TextMesh label;

        void Start()
        {
            var localizedString = new LocalizedString();
            localizedString.SetReference("My Strings", "HELLO");
            // Raised whenever the value changes, including when the selected locale changes.
            localizedString.StringChanged += value => label.text = value;
        }
    }
}
```
