New to KendoReact? Start a free 30-day trial

DatAInsights Composer Globalization
Premium

Updated on Nov 4, 2026

The globalization process combines the translation of component messages with adapting them to specific locales. The globalization support article lists the globalization features of each KendoReact component.

Internationalization

The internationalization process applies specific culture formats to a web application. The DatAInsights Composer formats the dates of the History items, the Grid aggregates, and the Gauge values in the culture of the nearest IntlProvider.

For more information, refer to:

Messages

The DatAInsights Composer supports the localization of its messages by utilizing the KendoReact Internationalization package.

The messages that the AI returns, for example, the text of a clarification question, are shown as they are. The DatAInsights Composer does not translate them.

The following example demonstrates how to load and apply the messages.

Example
View Source
Loading ...

The package exports a constant for each message key, named after the key without the datAInsightsComposer. prefix, for example, title or generateButton. You can use these constants as the keys when you call loadMessages. The datAInsightsComposerMessages export holds all keys with their default values.

tsx
import { loadMessages } from '@progress/kendo-react-intl';
import { title, generateButton } from '@progress/kendo-react-datainsights-composer';

loadMessages({ [title]: 'Que souhaitez-vous explorer ?', [generateButton]: 'Générer' }, 'fr-FR');

The following table lists the built-in message keys and their default values.

Message KeyDefault Value
datAInsightsComposer.labelAI Report Builder
datAInsightsComposer.titleWhat would you like to explore?
datAInsightsComposer.promptPlaceholdere.g. "Show revenue by region as a bar chart"
datAInsightsComposer.refinePlaceholdere.g. "Group by category" or "Switch to a line chart"
datAInsightsComposer.refineFieldLabelRefine this report
datAInsightsComposer.loadingMessageWorking on it…
datAInsightsComposer.generatingMessageGenerating your report...
datAInsightsComposer.generateButtonGenerate
datAInsightsComposer.applyButtonGenerate
datAInsightsComposer.tryAgainButtonGenerate
datAInsightsComposer.stopButtonStop generating
datAInsightsComposer.generatingButtonGenerating
datAInsightsComposer.refineButtonRefine
datAInsightsComposer.confirmButtonConfirm
datAInsightsComposer.discardButtonDiscard
datAInsightsComposer.discardActionTextDiscard
datAInsightsComposer.removeButtonRemove
datAInsightsComposer.historyButtonHistory
datAInsightsComposer.clarificationMessageAdd more detail to your prompt to generate a visualization.
datAInsightsComposer.unsupportedMessageThe request cannot be fulfilled with the available fields.
datAInsightsComposer.aiDeclinedMessageThe AI declined to fulfill this request. Please rephrase your prompt and try again.
datAInsightsComposer.unsupportedAlternativesMessageYou can show this data as {0}.
datAInsightsComposer.alternativesListSeparator,
datAInsightsComposer.alternativesLastMessage{0}, or {1}
datAInsightsComposer.aiServiceErrorMessageAn error occurred while contacting the AI service. Please try again.
datAInsightsComposer.renderErrorMessageThis report could not be displayed.
datAInsightsComposer.invalidConfigMessageInvalid configuration — some fields are not available in the current dataset.
datAInsightsComposer.invalidStructureMessageThe configuration cannot be rendered: {0}.
datAInsightsComposer.disallowedTypeMessageA {0} is not available here.
datAInsightsComposer.componentTypeChangedMessageRefining changed the visualization from {0} to {1}, which isn't allowed here.
datAInsightsComposer.tooManyCategoriesMessage"{0}" has more than {1} distinct values, which is too many to chart. Try grouping by a coarser field.
datAInsightsComposer.noDataMessageNo data matches this request. Try different values or a different wording.
datAInsightsComposer.datasetNotResolvedMessageCouldn't find a dataset matching that request. Try rephrasing it.
datAInsightsComposer.ambiguousDatasetMessageThat request could match more than one dataset ({0}). Which did you mean?
datAInsightsComposer.historyHeadingVersion History
datAInsightsComposer.historyVersionTitleVersion history
datAInsightsComposer.historyRestoreButtonRestore {0}
datAInsightsComposer.historyRestoreTitleRestore to this version
datAInsightsComposer.historyTodayToday, {0}
datAInsightsComposer.historyEmptyNo history yet.
datAInsightsComposer.browseDataSourcesButtonData Source
datAInsightsComposer.availableDataSourcesLabelAvailable data sources
datAInsightsComposer.searchDataSourcesPlaceholderSearch data sources
datAInsightsComposer.dataSourcesPopupLabelDatasets
datAInsightsComposer.dataSourceFieldsLabel{0} fields
datAInsightsComposer.aggregateSumSum
datAInsightsComposer.aggregateAverageAverage
datAInsightsComposer.aggregateCountCount
datAInsightsComposer.aggregateMinMin
datAInsightsComposer.aggregateMaxMax

The generateButton, tryAgainButton, and applyButton keys all default to Generate, so the submit button keeps the same text in every state. Each key labels the submit button in a different situation, so you can customize them separately:

  • generateButton—The submit button of the main prompt, for example, Generate.
  • tryAgainButton—Replaces generateButton after a request fails or the AI cannot build a visualization from the prompt, for example, Try again.
  • applyButton—The submit button of the refine prompt that appears after the user selects Refine, for example, Apply.
In this article
InternationalizationMessagesSuggested Links
Not finding the help you need?
Contact Support