Skip to main content
Version: v6

Upgrading from v5

Introduction

The CometChat v6 React UI Kit introduces a revamped localization system with enhanced support for language management, date formatting, and missing key handling. This guide outlines the key differences and provides a step-by-step migration process from v5 to v6.


Overview of Changes

Featurev5v6
InitializationUsed init(language, resources) with separate params.Uses init(settings: LocalizationSettings) with a configuration object.
Translation ManagementManually updated translations using resources.Uses translationsForLanguage in init() and addTranslation().
Language CodesUsed shorthand codes (e.g., en, fr).Uses full language-region codes (e.g., en-US, fr).
Date & Time LocalizationNot configurable.Supports CalendarObject for date formatting.
Timezone HandlingNot available.Introduced timezone setting.
Missing Key HandlerNot available.Introduced missingKeyHandler to handle missing translations.

CometChatLocalize

Initialization

In CometChat v5 UI Kit, the CometChatLocalize.init() accepts 2 parameters: language & resources

V5 UI Kit
CometChatLocalize.init("en", {
CHATS: "Chats",
});

In CometChat v6 UI Kit, the CometChatLocalize.init() method accepts a localization setting instead of individual parameters.

V6 UI Kit
CometChatLocalize.init({
language: "en-US",
translationsForLanguage: {
"en-US": { conversation_chat_title: "Chats" },
},
disableAutoDetection: false,
disableDateTimeLocalization: false,
timezone: "Europe/Madrid",
calendarObject: new CalendarObject({
today: "hh:mm A",
yesterday: "[Yesterday]",
otherDays: "DD MMM YYYY, hh:mm A",
relativeTime: {
minute: "%d minute ago",
minutes: "%d minutes ago",
hour: "%d hour ago",
hours: "%d hours ago",
},
}),
missingKeyHandler: (key) => `Missing translation: ${key}`,
});

Language Code Changes

In CometChat v5 UI Kit, the language code for English was en. In CometChat v6 UI Kit, the language codes have been expanded to distinguish between regional variants: • en-US for American English • en-GB for British English

There are no changes for any other languages.


Managing Translations

In CometChat v5 UI Kit, the only way to add or override translations was by passing them in the init() method.

V5 UI Kit
CometChatLocalize.init("en", {
CHATS: "Chats",
});

In CometChat v6 UI Kit, translations can be added or overridden using the init() method or the addTranslation() method.

V6 UI Kit
CometChatLocalize.addTranslation({
"en-US": { conversation_chat_title: "Chats" },
});

Handling Date & Time Localization

CometChat v5 UI Kit lacked support for date formatting, but CometChat v6 UI Kit introduces the CalendarObject for date and time formatting.

V6 UI Kit
const formattedDate = new CalendarObject({
today: "[Today at] hh:mm A",
yesterday: "[Yesterday at] hh:mm A",
otherDays: "DD MMM YYYY, hh:mm A",
});
CometChatLocalize.init({
calendarObject: formattedDate,
});

Handling Missing Translation Keys

CometChat v5 UI Kit did not handle missing translation keys, whereas CometChat v6 UI Kit introduces a missingKeyHandler for better control.

V6 UI Kit
CometChatLocalize.init({
missingKeyHandler: (key) => `Missing translation: ${key}`,
});

Migrating JSON Translation Files

In CometChat v5 UI Kit, the language code for English was en.

V5 UI Kit
{
"en": {
"CHATS": "Chats"
}
}

In CometChat v6 UI Kit, the language codes have been expanded to distinguish between regional variants: en-US & en-GB.

V6 UI Kit
{
"en-US": {
"conversation": "conversation_chat_title"
}
}

🔹 Make sure your JSON translation files follow the new format.


Additional Resources

🔹 Check the GitHub Repository for More Info:CometChatLocalize ClassLanguage JSON Files

Properties & Methods

In CometChat v6 UI Kit, several props and methods in components and the CometChatLocalize class have been updated. For a detailed overview of newly added, renamed, and removed properties/methods, refer to the Property Changes Documentation.