![Alexander Kyereboah](https://web.dev/images/authors/alexanderkyereboah.jpg) Alexander Kyereboah [GitHub](https://github.com/kyerebo) [LinkedIn](https://www.linkedin.com/in/kyereboah)

<br />


Published: April 24, 2026

<br />

We're excited to announce the launch of the manifest localization feature in
Chrome and Edge 148. This step forward for web app developers and their global
audiences, was implemented by the Microsoft Edge team, in collaboration with the
Chrome team.

For too long, web app manifests have had no built-in support for multiple
languages. This forced you to choose between a single-language experience or
complex workarounds.

Manifest localization changes that by bringing simple and robust language
support directly to your manifest file.

## The problem: lack of language support in the manifest

Prior to Chrome and Edge 148, web app manifests only let you define one set of
fields, such as `name`, `description`, and `short_name` for your app. This
limitation means that your app appears with the same name and description
regardless of your user's preferred language, creating a worse experience for
non-English or multilingual audiences.

To support multiple languages, you've had to rely on intricate client-side
solutions or forego localization altogether.

## The solution: Manifest localization

Manifest localization is an extension to the web app manifest specification.
You can define localized values for manifest fields like `name`, `short_name`,
`description`, and more, by using the new `_localized` suffix.

For example, by providing `name` and `name_localized`, you can specify your
app's default name, and translations for different languages directly inside
your manifest.

The browser will automatically select and display the version that best matches
the user's language preferences, creating a seamless multilingual experience
from installation to actual usage.

## Define localized fields

To use manifest localization, add fields with the `_localized` suffix to
your `manifest.json` file, defining translations by using
[BCP47](https://developer.mozilla.org/docs/Glossary/BCP_47_language_tag)
language tags:

```json
{
 "lang": "en-US",
 "dir": "ltr",
 "name": "Color Picker",
 "name_localized": {
  "de": "Farbwähler",
  "en": {"value": "Color Picker"},
  "en-GB": {"value": "Colour Picker", "dir": "ltr"},
  "fr": {"value": "Sélecteur de Couleur", "lang": "fr-CA", "dir": "ltr"},
  "ar": {"value": "`منتقي` `الألوان`", "dir": "rtl"}
 }
}
```

With this structure, a user who has their browser set to a language that matches
one of the entries will see your app's name in their language. Otherwise, the
default name value is used.

Currently, the web app manifest fields that are available for localization are:

- `name`
- `short_name`
- `description`
- `icons`
- `shortcuts`
  - `name`
  - `short_name`
  - `description`
  - `icons`

For a detailed list of localizable fields and full implementation details, see
the [Web App Manifest specification](https://www.w3.org/TR/appmanifest/).

## Demo

To see the manifest localization feature in action, check out our demo app in
Chrome or Edge 148 or later:

- [Live demo](https://microsoftedge.github.io/Demos/pwa-manifest-localization/)
- [Source code](https://github.com/MicrosoftEdge/Demos/tree/main/pwa-manifest-localization/)

## Feedback

Manifest localization is available in Chrome and Microsoft Edge starting with
version 148. We encourage you to experiment, provide feedback, and help us
refine this feature as we move toward a more multilingual web. Try it today and
let us know what you think!

Let us know your feedback by
[creating a new issue on the W3C manifest repo](https://github.com/w3c/manifest/issues).