# Get started with localization

> Set up localization in a project and translate your first string.

Set up localization in a project and translate your first string.

Follow these steps once to create the settings, add languages, author a translation, and preview the result in the Unity Editor.

## Create the Localization settings

To create the settings asset:

1. Open **Edit** > Editor and select **Localization**.
2. Select **Create localization settings** and select where to save the asset.

The settings asset holds your locales, startup behavior, and content sources. Unity loads it automatically in the Editor and in builds. For details, refer to [Localization settings reference](/engine/6000.7/manual/localization/settings-reference.md).

## Add locales

A locale describes a language and region, such as English or French (Canada). To add the languages you want to support:

1. In **Project Settings** > **Localization**, select **Add locale**.
2. In the **Add locales** window, search for each language you want to support and add it.
3. Set the **Project locale** to the language you author in. The project locale is the default when no other selection applies.

For information about fallback locales, startup locale selection, and disabling locales, refer to [Locales](/engine/6000.7/manual/localization/locales.md).

## Create a table collection

A table collection stores one value per locale for each key. To create a table collection:

1. Select **Assets** > **Create** > **Localization** > **Resource Table Collection**, and select where to save the collection and its per-locale tables.
2. Open **Window** > **Localization** > **Resource Tables** and select the collection.
3. Add a key, for example `greeting`, with the entry type **String**, and enter a value for each locale column.

For entry types, Smart Strings, and variants, refer to [Localization tables](/engine/6000.7/manual/localization/translations/tables.md).

## Use the localized string

Then, reference the entry. How you reference it depends on where you need the localized value:

* In UI Toolkit, bind a Label's text to the entry. Refer to [Localize UI created with UI Toolkit](/engine/6000.7/manual/localization/translations/localize-ui-toolkit.md).
* On a GameObject, add a **Localize String Event** component and wire its event to your text component. Refer to [Localize strings](/engine/6000.7/manual/localization/translations/localize-strings.md).
* In a script, add a [`LocalizedString`](/engine/6000.7/script-reference/unity/localization/localizedstring.md) field and subscribe to its [`StringChanged`](/engine/6000.7/script-reference/unity/localization/localizedstring/stringchanged.md) event. Refer to [Display dynamic values in a localized string](/engine/6000.7/manual/localization/examples/example-string-local-variables.md).

## Preview another language

The Editor's main toolbar has a preview locale dropdown. To show or hide it, right-click (macOS: **Ctrl**+click) the toolbar. Changing the dropdown changes the selected locale, and localized values update to match.

## Additional resources

* [How localization works](/engine/6000.7/manual/localization/how-localization-works.md)
* [Locales](/engine/6000.7/manual/localization/locales.md)
* [Localization tables](/engine/6000.7/manual/localization/translations/tables.md)
* [Localize strings](/engine/6000.7/manual/localization/translations/localize-strings.md)
