Loading...
Loading...
Localization (i18n) across all CometChat UI Kit families — React, React Native, Angular, Android (V5/V6), iOS, Flutter (V5/V6). Covers CometChatLocalize.init signature differences (positional vs object), bundled languages, custom-language registration, RTL support, fallback to English, and cross-family drift risks. Cross-family — applies wherever the agent is configuring CometChat localization.
npx skill4agent add cometchat/cometchat-skills cometchat-i18ninitimport { CometChatLocalize } from "@cometchat/chat-uikit-react";
CometChatLocalize.init({
language: "es",
fallbackLanguage: "en",
});init({ ... })import { CometChatLocalize } from "@cometchat/chat-uikit-react-native";
CometChatLocalize.init({
language: "es",
fallbackLanguage: "en",
});import { CometChatLocalize } from "@cometchat/chat-uikit-angular";
CometChatLocalize.init("es");
// or with custom resources:
CometChatLocalize.init("es", { es: { CHAT: "Charla" } });.init({ language: "es" })language = [object Object]// Kotlin
CometChatLocalize.setLocale(Locale.forLanguageTag("es"))// Java
CometChatLocalize.setLocale(Locale.forLanguageTag("es"));setLocaleinitjava.util.LocalesetLocale(Locale)import CometChatUIKitSwift
CometChatLocalize.setLocale(locale: "es")setLocale(locale:)Localeimport 'package:cometchat_calls_uikit/cometchat_calls_uikit.dart';
CometChatLocalize.init(language: 'es');import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
CometChatLocalize.init(language: 'es');| Family | Init call | Notes |
|---|---|---|
| React (v6) | | Object |
| React Native (v5) | | Object |
| Angular (v4) | | Positional — drift trap |
| Android (V5/V6) | | Method name |
| iOS (V5) | | Method name |
| Flutter (V5/V6) | | Named arg |
// React example — in your provider
useEffect(() => {
CometChatUIKit.init(settings).then(() => {
CometChatLocalize.init({ language: getUserLocale(), fallbackLanguage: "en" });
// Now mount kit components
});
}, []);// Android — in Application.onCreate
override fun onCreate() {
super.onCreate()
val settings = UIKitSettings.Builder()/* ... */.build()
CometChatUIKit.init(this, settings) {
CometChatLocalize.setLocale(Locale.forLanguageTag(getUserLocale()))
}
}// iOS — in App.init or AppDelegate
CometChat.init(appId: ...) { _, error in
guard error == nil else { return }
CometChatLocalize.setLocale(locale: Locale.preferredLanguages.first ?? "en")
}CometChatLocalize.init({
language: "es",
fallbackLanguage: "en",
resources: {
es: {
CHAT: "Charla",
MESSAGES: "Mensajes",
// ... override only the strings you want
},
},
});CometChatLocalize.init("es", {
es: { CHAT: "Charla", MESSAGES: "Mensajes" },
});val customResources = mapOf(
"CHAT" to "Charla",
"MESSAGES" to "Mensajes",
)
CometChatLocalize.setLocale(Locale("es"))
CometChatLocalize.addStringResources("es", customResources) // verify symbolCometChatLocalize.setLocale(locale: "es")
CometChatLocalize.setStringResources(["CHAT": "Charla"], for: "es")CometChatLocalize.init(
language: 'es',
resources: {
'es': { 'CHAT': 'Charla', 'MESSAGES': 'Mensajes' },
},
);<html dir="rtl">useEffect(() => {
const lang = currentLocale;
document.documentElement.dir = ["ar", "he", "fa", "ur"].includes(lang) ? "rtl" : "ltr";
CometChatLocalize.init({ language: lang });
}, [currentLocale]);I18nManager.forceRTL(true)import { I18nManager, NativeModules, Platform } from "react-native";
if (isRTLLocale(language) && !I18nManager.isRTL) {
I18nManager.forceRTL(true);
if (__DEV__) {
console.warn("RTL set — app must restart for layout change to apply");
} else {
NativeModules.DevSettings.reload();
}
}MaterialApp.localizationsDelegatesLocale('ar')// React/RN/Flutter
CometChatLocalize.init({ language: "es", fallbackLanguage: "en" });fallbackLanguageinitsetLocale// Web — browser language
const language = navigator.language.split("-")[0]; // "en-US" → "en"
// React Native — device language
import * as Localization from "expo-localization"; // Expo
const language = Localization.locale.split("-")[0];
// or react-native-localize for bare RN:
import { getLocales } from "react-native-localize";
const language = getLocales()[0]?.languageCode ?? "en";// Android
val language = Locale.getDefault().language // "en"// iOS
let language = Locale.preferredLanguages.first?.split(separator: "-").first.map(String.init) ?? "en"// Flutter
import 'dart:ui';
final language = window.locale.languageCode; // 'en'en-USinitsetLocalekey={language}<div key={language}>
<CometChatConversations />
</div>initCHAT_HEADER_TITLEdocument.dirI18nManager.forceRTL"chat""CHAT"initsetLocalefallbackLanguagedocument.documentElement.dirI18nManager.forceRTLkey={language}dir="rtl"I18nManager.forceRTLcometchat-{family}-corecometchat-{family}-customizationcometchat-{family}-troubleshootingcometchat-a11y