Document Internationalization plugin v6.0.0: Major version: Pivot language from `_key` to `language` field

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.

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.