# InitializeAsync()

> Loads the available locales and selects the startup locale, running once.

## Definition

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

```csharp
public static Awaitable InitializeAsync()
```

### Returns

| Type                                                                  | Description                                                                                           |
| --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| [Awaitable](/engine/6000.7/script-reference/unityengine/awaitable.md) | An awaitable that completes when initialization has finished, or immediately when it has already run. |

### Remarks

Discovers locales that the asset providers expose through [ILocaleDiscovery](/engine/6000.7/script-reference/unity/localization/ilocalediscovery.md) and adds them to the registered [LocalizationSettings.AvailableLocales](/engine/6000.7/script-reference/unity/localization/localizationsettings/availablelocales.md), then selects the startup locale by evaluating the [LocalizationSettings.StartupSelectors](/engine/6000.7/script-reference/unity/localization/localizationsettings/startupselectors.md) in order (skipping disabled locales) and falling back to [LocalizationSettings.ProjectLocale](/engine/6000.7/script-reference/unity/localization/localizationsettings/projectlocale.md). Initialization runs only once; the first synchronous or asynchronous resolve through the [LocalizationSettings.Database](/engine/6000.7/script-reference/unity/localization/localizationsettings/database.md) triggers it automatically, so calling this explicitly is only needed when you want to await completion. When it finishes it raises [LocalizationSettings.InitializationCompleted](/engine/6000.7/script-reference/unity/localization/localizationsettings/initializationcompleted.md).

Waits for localization to be ready before resolving a string.

### Examples

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

namespace Unity.Localization.Samples
{
    public class InitializeAsyncExample : MonoBehaviour
    {
        async void Start()
        {
            await LocalizationSettings.InitializeAsync();
            string title = await LocalizationSettings.ResourceDatabase.GetLocalizedStringAsync("UI Text", "title");
            Debug.Log(title);
        }
    }
}
```
