Language and Translations

Default Language

The default language for UI and error messages is en (english). You can change this to any supported language or add your own translations.

Setting German as Default

const jedison = new Jedison.Create({
  language: 'de'
})

Languages Included

Jedison comes with these languages ready to use:

  • en (english)
  • de (german)
  • it (italian)
  • es (spanish)

If a translation is missing or you forget to add one, Jedison will automatically use the English version instead.

Adding Translations

You can add new languages using the translations option. Just set the language option to your new language code.

You can also override the default English translations if needed.

Translation and Templates

The translation system uses template placeholders that get dynamically replaced with actual values during runtime. These placeholders are wrapped in double curly braces and provide context-specific information in error messages.

For example, when validating against a minLength constraint, the template will be replaced with the schema's specified minimum length value. This allows for dynamic, accurate error messages that reflect the actual validation rules.

  const jedison = new Jedison.Create({
  language: 'de',
  translations: {
    de: {
      errorAdditionalProperties: 'Hat die zusätzliche Eigenschaft "{{ property }}", aber keine zusätzlichen Eigenschaften sind erlaubt.',
      errorAnyOf: 'Muss mindestens einem der bereitgestellten Schemata entsprechen.',
      errorConst: 'Muss den Wert {{ const }} haben.',
      errorContains: 'Muss mindestens ein Element enthalten, das dem bereitgestellten Schema entspricht.',
      errorDependentRequired: 'Muss die erforderlichen Eigenschaften haben: {{ dependentRequired }}.',
      errorEnum: 'Muss einer der aufgeführten Werte sein: {{ enum }}.',
      errorExclusiveMaximum: 'Muss kleiner als {{ exclusiveMaximum }} sein.',
      errorExclusiveMinimum: 'Muss größer als {{ exclusiveMinimum }} sein.',
      errorFormat: 'Muss ein gültiges {{ format }} sein.',
      errorItems: 'Muss Elemente enthalten, die dem bereitgestellten Schema entsprechen.',
      errorMaximum: 'Muss höchstens {{ maximum }} sein.',
      errorMaxItems: 'Darf höchstens {{ maxItems }} Elemente enthalten.',
      errorMaxLength: 'Darf höchstens {{ maxLength }} Zeichen lang sein.',
      errorMaxProperties: 'Darf höchstens {{ maxProperties }} Eigenschaften haben.',
      errorMaxContains: 'Darf höchstens {{ maxContains }} Elemente enthalten, die dem bereitgestellten Schema entsprechen. Aktuell enthält es {{ counter }}.',
      errorMinContains: 'Muss mindestens {{ minContains }} Elemente enthalten, die dem bereitgestellten Schema entsprechen. Aktuell enthält es {{ counter }}.',
      errorMinimum: 'Muss mindestens {{ minimum }} sein.',
      errorMinItems: 'Muss mindestens {{ minItems }} Elemente enthalten.',
      errorMinLength: 'Muss mindestens {{ minLength }} Zeichen lang sein.',
      errorMinProperties: 'Muss mindestens {{ minProperties }} Eigenschaften haben.',
      errorMultipleOf: 'Muss ein Vielfaches von {{ multipleOf }} sein.',
      errorNot: 'Darf nicht dem bereitgestellten Schema entsprechen.',
      errorOneOf: 'Muss genau einem der bereitgestellten Schemata entsprechen. Derzeit entspricht es {{ counter }} der Schemata.',
      errorPattern: 'Muss dem Muster "{{ pattern }}" entsprechen.',
      errorPrefixItems: 'Element {{ index }} entspricht nicht der Validierung.',
      errorPropertyNames: 'Der Eigenschaftsname "{{ propertyName }}" entspricht nicht der Validierung.',
      errorProperties: 'Die folgenden Eigenschaften entsprechen nicht ihren Schemata: {{ properties }}',
      errorRequired: 'Muss die erforderlichen Eigenschaften haben: {{ required }}.',
      errorType: 'Muss vom Typ {{ type }} sein.',
      errorUnevaluatedProperties: 'Hat eine ungültige nicht bewertete Eigenschaft "{{ property }}"',
      errorUniqueItems: 'Muss eindeutige Elemente haben.',
      arrayDelete: 'Element löschen',
      arrayMoveUp: 'Nach oben verschieben',
      arrayMoveDown: 'Nach unten verschieben',
      arrayDrag: 'Ziehen',
      arrayAdd: 'Element hinzufügen',
      arrayConfirmDelete: 'Möchten Sie dieses Element wirklich löschen?',
      objectAddProperty: 'Eigenschaft hinzufügen',
      objectPropertyAdded: 'Feld wurde dem Formular hinzugefügt',
      objectPropertyRemoved: 'Feld wurde aus dem Formular entfernt',
      propertiesToggle: 'Eigenschaften',
      collapseToggle: 'Einklappen'
    }
  }
})

German Translation Example

See how the placeholders work in this example. The error message will show "Muss mindestens 3 Zeichen lang sein" because of minLength: 3.

Notice that all UI elements including buttons were also translated to German in this example.

We used the option showErrors: 'always' to make validation messages appear immediately rather than waiting for user interaction.