LocalizationConfiguration Cluster
Cluster ID: 0x002B |
Endpoint: Endpoint 0 (Root / Node level)
LocalizationConfiguration manages the device's language and regional settings. It enables the controller (App / voice assistant) to query which languages the device supports
and switch the device's current language locale. Language tags follow the BCP 47 standard (e.g. "en-US", "zh-CN").
This Cluster is very simple — only 2 attributes, no commands.
Language switching is done by directly writing the ActiveLocale attribute.
When users switch device language in the App (e.g. changing a door lock's voice prompts from English to Chinese),
they are writing a new ActiveLocale value to this Cluster.
It can also be used to automatically set the device language to match the phone's system language after commissioning.
Attribute Overview
LocalizationConfiguration has only two attributes, both mandatory. Click an attribute ID to jump to its detailed description.
| ID | Name | Type | Access | Description |
|---|---|---|---|---|
0x00 |
ActiveLocale | string | Read/Write | Currently active language locale (BCP 47 tag) |
0x01 |
SupportedLocales | list<string> | Read-only | List of all language locales supported by the device |
ActiveLocale (Current Language Region)
The device's currently active language locale tag, in BCP 47 format (e.g. "en-US", "zh-CN").
Writing a new value switches the device language, but the written value must be in the SupportedLocales list;
otherwise the device will return CONSTRAINT_ERROR.
BCP 47 language tags consist of a language code and an optional region code, connected by a hyphen. Common examples:
en-US— English (United States)zh-CN— Simplified Chinese (Mainland China)zh-TW— Traditional Chinese (Taiwan)ja-JP— Japanese (Japan)de-DE— German (Germany)
Write example (switching device to Simplified Chinese):
{
"writeRequests": [{
"attributePath": {
"endpointId": 0,
"clusterId": "0x002B",
"attributeId": "0x00" // ActiveLocale
},
"attributeValue": "zh-CN" // Switch to Simplified Chinese
}]
}
SupportedLocales (Supported Language List)
Read-only attribute, returning the list of all language locale tags supported by the device. List content is determined by device firmware; Apps cannot modify it. Before switching languages, read this attribute first to confirm the device supports the target language.
Support lists vary widely across devices. Low-cost devices may only support one language ["en-US"],
while high-end devices may support over a dozen. Always check this list before switching languages to avoid errors from writing unsupported values.
Commands
LocalizationConfiguration Cluster does not define any commands.
All operations are done through direct attribute reads/writes — read SupportedLocales to check supported languages,
write ActiveLocale to switch language. This is one of the simplest interaction patterns in Matter.
Example Data
Reading LocalizationConfiguration Cluster attributes of a smart door lock device:
{
// --- Attributes ---
"0x0": "en-US", // ActiveLocale = current language locale
"0x1": [ // SupportedLocales = device supported language list
"en-US",
"zh-CN",
"zh-TW",
"ja-JP",
"ko-KR",
"de-DE",
"fr-FR"
]
}
Real-world Scenarios
Scenario 1: Automatically Set Device Language After Commissioning
After device commissioning, the App automatically aligns the device language with the phone's system language, avoiding manual setup:
- Get the phone's system language (e.g.
"zh-CN") - Read the device's
SupportedLocalesattribute to get the supported list - Check if the system language is in the supported list:
- Exact match takes priority (
"zh-CN") - If no exact match, try language prefix matching (any item starting with
"zh") - If neither matches, keep the device's default language without modification
- Exact match takes priority (
- After a successful match, Write to
ActiveLocaleto complete the switch
Scenario 2: App Language Settings UI
Provide a "Language Settings" option on the device details page for manual language selection:
- Enter the device language settings page, read
SupportedLocalesto render the options list - Read
ActiveLocaleto mark the currently selected item - After the user selects a new language, Write to
ActiveLocale - Refresh UI after successful write; if
CONSTRAINT_ERRORis returned, notify the user that the language is not supported
It is recommended to convert BCP 47 tags to user-readable language names (e.g. display "zh-CN" as "Simplified Chinese"),
instead of showing raw tags directly.
LocalizationConfiguration affects the device's own language behavior (e.g. voice prompts, screen display text), not the App's UI language. After switching, the device may need a few seconds to load internal language resources, during which the device behavior may briefly remain in the old language.