Major version: Pivot language from `_key` to `language` field
Published: March 11, 2026
v6.0.0
New major version
sanity-plugin-internationalized-array now stores the language identifier in a dedicated language field instead of using _key for this purpose, and @sanity/document-internationalization has a direct dependency on this plugin to manage the translations.metadata files.
When a field has outdated data a warning banner will render to alert users.
Loading...
Why
Sanity uses _key internally for array item identity, diffing, and reordering. Storing the language ID there caused issues with:
- Array reordering and diffing in the Studio.
- Portable Text operations that rely on stable keys.
- Copy/paste operations between documents where keys could collide.
Data format change
Before (v4):
{
"_key": "en",
"_type": "internationalizedArrayStringValue",
"value": "hello"
}After (v5):
{
"_key": "randomKey",
"language": "en",
"_type": "internationalizedArrayStringValue",
"value": "hello"
}How to upgrade
Read the full migration guide here for this plugin.
You can also read the migration guide for internationalized-array here.
