SurveyJS v2.5.4

Released: December 30, 2025

SurveyJS v2.5.4 introduces support for splitting a survey JSON schema into a layout schema and separate localization schemas, enabling dynamic loading of translations and reducing overall schema size.

Split Survey JSON Schema to Load Translations Dynamically

By default, a survey JSON schema includes all user-defined translations for every language configured in the survey. When a survey supports many languages, this can significantly increase the size of the JSON schema.

To optimize payload size and improve loading performance, you can now split the survey schema into a layout schema that contains no textual content and one or more localization schemas that store translations for specific languages. You can then load only the required languages at runtime.

To support this workflow, the SurveyModel API has been extended with the following members:

  • getLocalizationJSON(locales) method
    Generates a localization JSON schema that containing all languages or a specified subset of locales.

  • mergeLocalizationJSON(json, locales) method
    Applies a localization schema to an existing survey model. You can optionally specify which languages to apply.

  • storeLocaleStrings option in the toJSON(options) method
    When storeLocaleStrings is disabled, toJSON() generates a layout-only JSON schema without any textual content.

The following examples demonstrate how to generate and apply split JSON schemas.

Generate Split JSON Schemas

// ...
// Omitted: `SurveyModel` creation
// ...

// Generate a layout-only JSON schema
const layoutJson = survey.toJSON({ storeLocaleStrings: false });

// Option 1: Generate a multi-language localization JSON schema with all languages
const localizationJson = survey.getLocalizationJSON();

// Option 2: Generate a multi-language localization JSON schema with specific languages
// (default - English, French, and Italian)
const localizationJson = survey.getLocalizationJSON([ "default", "fr", "it" ]);

// Option 3: Generate multiple single-language localization JSON schemas
const defaultLocalizationJson = survey.getLocalizationJSON([ "default" ]);
const frLocalizationJson = survey.getLocalizationJSON([ "fr" ]);
const itLocalizationJson = survey.getLocalizationJSON([ "it" ]);

// ...
// Save the generated JSON schemas to your storage
// ...

Apply Split JSON Schemas

// ...
// Load the required JSON schemas from your storage
// ...

// Apply the layout JSON schema
survey.fromJSON(layoutJson);

// Option 1: Apply all languages from a multi-language localization JSON schema
survey.mergeLocalizationJSON(localizationJson);

// Option 2: Apply specific languages from a multi-language localization JSON schema
survey.mergeLocalizationJSON(localizationJson, [ "fr", "it" ]);

// Option 3: Apply single-language localization JSON schemas
survey.mergeLocalizationJSON(frLocalizationJson);
survey.mergeLocalizationJSON(itLocalizationJson);

Bug Fixes and Minor Enhancements

Form Library

  • Nested Dynamic Panel restores removed panels after value change when panelCount is set (#10739)
  • Dropdown: Cannot select items with Apple Pencil (#10698)

Survey Creator

  • Preview tab: Part of the preview device cannot be reached via scrolling when the device orientation is portrait (#7322)
  • Specified foreground color is not applied when using a previously created custom UI theme (#7349)

How to Update SurveyJS Libraries in Your Application

Angular
npm i survey-core@v2.5.4 survey-angular-ui@v2.5.4 --save
npm i survey-creator-core@v2.5.4 survey-creator-angular@v2.5.4 --save
npm i survey-analytics@v2.5.4 --save
npm i survey-pdf@v2.5.4 --save
React
npm i survey-core@v2.5.4 survey-react-ui@v2.5.4 --save
npm i survey-creator-core@v2.5.4 survey-creator-react@v2.5.4 --save
npm i survey-analytics@v2.5.4 --save
npm i survey-pdf@v2.5.4 --save
Vue.js
npm i survey-core@v2.5.4 survey-vue3-ui@v2.5.4 --save
npm i survey-creator-core@v2.5.4 survey-creator-vue@2.5.4 --save
npm i survey-analytics@2.5.4 --save
npm i survey-pdf@2.5.4 --save
HTML/CSS/JavaScript
<link href="https://unpkg.com/survey-core@2.5.4/survey-core.min.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/survey-core@2.5.4/survey.core.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/survey-js-ui@2.5.4/survey-js-ui.min.js"></script>

<script src="https://unpkg.com/survey-core@2.5.4/themes/index.min.js"></script>
<script src="https://unpkg.com/survey-creator-core@2.5.4/themes/index.min.js"></script>

<link href="https://unpkg.com/survey-creator-core@2.5.4/survey-creator-core.min.css" type="text/css" rel="stylesheet">
<script src="https://unpkg.com/survey-creator-core@2.5.4/survey-creator-core.min.js"></script>
<script src="https://unpkg.com/survey-creator-js@2.5.4/survey-creator-js.min.js"></script>

<link href="https://unpkg.com/survey-analytics@2.5.4/survey.analytics.min.css" rel="stylesheet">
<script src="https://unpkg.com/survey-analytics@2.5.4/survey.analytics.min.js"></script>

<script src="https://unpkg.com/survey-pdf@2.5.4/survey.pdf.min.js"></script>
<script src="https://unpkg.com/survey-pdf@2.5.4/pdf-form-filler.min.js"></script>

Your cookie settings

We use cookies to make your browsing experience more convenient and personal. Some cookies are essential, while others help us analyse traffic. Your personal data and cookies may be used for ad personalization. By clicking “Accept All”, you consent to the use of all cookies as described in our Terms of Use and Privacy Statement. You can manage your preferences in “Cookie settings.”

Your renewal subscription expires soon.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.

Your renewal subscription has expired.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.