Skip to main content

Translating Credential Schemas

When creating a credential schema, you can provide translations for the schema name, schema description, and individual claim names. The Core publishes these translations in the issuer metadata, allowing wallets to display credentials in the holder's preferred language.

Default lanugage

The Core has a default language, which is en unless overridden in the configuration:

defaultLanguage: "de"

The key of each claim is automatically mapped to the default language. To override this, include an explicit translation for the default language.

Add translations to a schema

Pass a translations object at the root level to provide localized versions of the schema name and description:

{
"name": "Simple Schema",
"translations": {
"name": {
"en": "Simple Schema",
"de": "Einfaches Schema",
},
"description": {
"en": "A simple test schema",
"de": "Ein einfaches Testschema",
}
},
...
}

The name field at the root level is required regardless of translations provided.

Add translations to claims

Pass a translations object on individual claims to provide localized versions of the claim name:

{
"claims": [
{
"key": "First Name",
"datatype": "STRING",
"required": true,
"translations": {
"name": {
"en": "First Name",
"de": "Vorname"
}
}
},
{
"key": "Last Name",
"datatype": "STRING",
"required": true,
"translations": {
"name": {
"en": "Last Name",
"de": "Nachname"
}
}
}
],
...
}

Complete example

A schema creation request with translations at both the schema and claim level:

{
"name": "Simple Schema",
"formats": [
{
"format": "SD_JWT_VC"
}
],
"claims": [
{
"key": "First Name",
"datatype": "STRING",
"required": true,
"translations": {
"name": {
"en": "First Name",
"de": "Vorname"
}
}
},
{
"key": "Last Name",
"datatype": "STRING",
"required": true,
"translations": {
"name": {
"en": "Last Name",
"de": "Nachname"
}
}
}
],
"layoutType": "CARD",
"translations": {
"name": {
"en": "Simple Schema",
"de": "Einfaches Schema"
},
"description": {
"en": "A simple test schema",
"de": "Ein einfaches Testschema"
}
}
}

Language keys

The system does not validate language keys; any freeform string up to 256 characters is accepted. Refer to RFC 5646 for the OpenID4VCI mandated standard.