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
| Feature | v5 | v6 |
|---|---|---|
| Initialization | Used init(language, resources) with separate params. | Uses init(settings: LocalizationSettings) with a configuration object. |
| Translation Management | Manually updated translations using resources. | Uses translationsForLanguage in init() and addTranslation(). |
| Language Codes | Used shorthand codes (e.g., en, fr). | Uses full language-region codes (e.g., en-US, fr). |
| Date & Time Localization | Not configurable. | Supports CalendarObject for date formatting. |
| Timezone Handling | Not available. | Introduced timezone setting. |
| Missing Key Handler | Not 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.