# How to Add a New Locale

> Create a new locale in StringLane by entering its BCP 47 code. What file gets created, and what happens on multi-package projects.

Source: https://stringlane.app/docs/add-a-locale
Last updated: 2026-08-19

Adding a locale creates a new localization file in your project folder. The new locale then appears alongside every other one in the detail pane, and in the Issues panel.

## Steps

1. With a project open, click **+ Add Locale** in **Settings → Project → General**, below the locale list.

![Settings → Project → General: project name, file format, base locale, and the Locales list with a Remove link per locale and the + Add Locale button beneath it](/docs-screenshots/settings-general.webp)

2. The **Add New Locale** dialog asks for one thing: a **Locale Code** in [BCP 47](https://www.rfc-editor.org/info/bcp47) form — `de`, `fr-CA`, `zh-Hans`, `pt-BR`.

3. As you type, StringLane shows the file it is about to create (`Will create: app_it.arb`). It rejects codes that are malformed or already in the project, and **Create Locale** stays disabled until the code is valid.

![Add New Locale dialog: a single Locale Code field with the will-create filename preview beneath it, and Cancel / Create Locale buttons](/docs-screenshots/add-locale-dialog.webp)

> **There is no language picker.** You type the code, not a language name — "French" will not resolve to `fr`. If you are unsure of a code, [the IANA subtag registry](https://www.iana.org/assignments/language-subtag-registry) is the authority; the short answer is usually the two-letter ISO 639-1 code, optionally plus a region (`pt-BR`) or script (`zh-Hans`).

## Multi-package projects

If your project spans several packages or namespaces — a multi-module Android app, or an i18next setup with separate namespace folders — the dialog also shows a **Packages** list with a checkbox per origin, and a filename preview for each.

Tick the ones that should get the new locale. StringLane remembers your selection and pre-ticks the same set next time. See [How to Open a Localization Project](/docs/open-a-project) for how multi-origin projects are detected.

## Translate it straight away

The moment the file is created, StringLane offers a **Translate New Locale** prompt: *"Would you like to AI-translate all keys into `it` now?"*

- **Translate Now** starts a bulk translation into the new locale immediately. It is disabled until an AI provider is configured — see [Set Up AI Translation](/docs/set-up-ai-translation).
- **Later** dismisses it. You can always run the same thing afterwards from the **✨ Translate…** popover in the sidebar footer.

## What gets created

StringLane creates a new localization file in your project using the same format and naming convention as your existing files:

- **ARB:** `app_fr.arb` alongside your existing `app_en.arb`
- **iOS .strings:** `fr.lproj/Localizable.strings`
- **Android XML:** `res/values-fr/strings.xml`
- **i18next JSON:** `fr/translation.json`

The new file is empty, so every key shows the red **Missing** badge for that locale.

![List View after adding a locale: every key shows a Missing badge for the new locale until it is translated](/docs-screenshots/list-view-overview.webp)

## After adding a locale

From here you can:

- **Bulk translate with AI**: click **✨ Translate…** in the sidebar footer and pick the new locale under **Missing keys**. See [How to Bulk-Translate a Locale](/docs/bulk-translate-a-locale).
- **Give the AI regional guidance**: 50 locales ship with built-in cultural context that is applied automatically. See [How to Use Locale Presets](/docs/use-locale-presets).
- **Translate manually**: click each cell and type your translation.
- **Check coverage**: use the Missing filter in the search bar to see only untranslated keys.
