# Localization

> **Warning**

The legacy editor is deprecated. Please visit the docs covering our new
[editor](/docs/dashboard/dashboard-creating-paywalls/paywall-editor-overview).



You can localize paywalls for specific locales. The SDK will select the appropriate paywall locale based on the device's locale settings. If the chosen locale is not available, the English version will be displayed.

Select a paywall from the dashboard and click on **EN** to show the locale dropdown. Then click on &#x2A;*Edit localizations ->**:

<img src="__img0" />

Click **Download Template** to download the strings file for all of your paywalls:

<img src="__img1" />

This file follows a `"original text" = "translated text"` format for each of your paywall text elements. You should translate all the strings in the file into your desired language. [Variables](/docs/dashboard/dashboard-creating-paywalls/paywall-editor-variables) inside text fields will be replaced with `{}` in the original text.

> 🚧
>
> English-language variables such as `{ primary.trialPeriodText }` cannot be localized as these are substituted by the SDK in English only. If you want to localize these, you'll need to hardcode them into the paywall with text, e.g. "3-day", so that their text can be picked up and substituted by the localization template.

Once you’ve completed translation, click **Add Language**:

<img src="__img2" />

Then select from a locale from the dropdown:

<img src="__img3" />

Upload your translation by clicking on the **Upload Button**:

<img src="__img4" />

Then click on the pop up and select your strings file:

<img src="__img5" />

Click the `**<- Paywall Editor**` button to head back to your paywall. You can preview your localized paywall by selecting the newly translated locale from your localization dropdown:

<img src="__img6" />

You can also preview it on device using the [In-App Previews](/docs/sdk/quickstart/in-app-paywall-previews).

Third Party Localization [#third-party-localization]

If you choose to use a third party localization service, Superwall supports a few! We support Lokalise and Crowdin.

Once configured, Superwall will automatically synchronize your strings to your chosen provider and subscribe to updates.

> 👇
>
> Superwall won't grab translated variables until they've been marked as "Reviewed" or "Approved" in your chosen provider.

Lokalise [#lokalise]

To set up Lokalise, you'll need to [generate an API key](https://app.lokalise.com/profile) from your dashboard.

<img src="__img7" />

Grant the token `read and write` access to your project.

<img src="__img8" />

Once you've got the token, head on over to Superwall and select Settings -> Localization. Choose `Lokalise` from the dropdown and enter your API key.

<img src="__img9" />

Once you've added a valid API key, you should see a dropdown for the Lokalise project to use.

Select your project, click save, then start localizing!

Crowdin [#crowdin]

To set up Crowdin, you'll need to [generate an API key](https://crowdin.com/settings#api-key).

<img src="__img10" />

Grant the API key the `webhooks` and all `projects` scopes.

<img src="__img11" />

Once you've got the token, head on over to Superwall and select Settings -> Localization. Choose `Crowdin` from the dropdown and enter your API key.

<img src="__img12" />

Once you've added a valid API key, you should see a dropdown for the Crowdin project to use.

Select your project, click save, then start localizing!