cometchat-i18n — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cometchat-i18n (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Ground truth: localization is the `CometChatLocalize` class on React, Angular, iOS and Android. Two exceptions: React Native uses `CometChatI18nProvider` + the `useCometChatTranslation` hook (there is noCometChatLocalizein the RN kit — catalog-confirmed), and Flutter is moving toCometChatLocalizebut the shipping 6.1.0 kit still exposes `Translations` (seecometchat-flutter-v6-customization→ Localization — STAGED pending the kit). Exact methods and built-in string keys differ by family and major — FETCH the signature from the resolved family's localize doc viacometchat-<family>-core/references/docs-map.md(intent: localization / localize). Do not carry an API across families or majors (v6 React, for one, renamed language codes and keys). Never assert a key set from memory — look it up in the kit'sresources/<lang>/translation.json/ the localize page.
Making the chat speak another language, shipping to a multi-locale or RTL market, adding/overriding wording, or fixing a UI that shows a raw key (e.g. group_info) instead of text.
Most UI Kits localize through CometChatLocalize (React Native is the exception — it uses CometChatI18nProvider + the useCometChatTranslation hook): it can detect the user's browser/device language and set the active locale, and it exposes the current locale to components (which read their strings from it). The three things you do:
locale prop on CometChatProvider — <CometChatProvider locale="fr"> — applied on mount/change.)CometChatLocalize.getSharedInstance()?.addTranslation({ "en-us": { key: "value" } }) — an INSTANCE method taking a nested per-language map; reach the live instance via getSharedInstance(), never new CometChatLocalize(); other families have the equivalent — React Native instead uses the CometChatI18nProvider `translations` prop, keyed on the active language code: under the default auto-detect that's the 2-letter device code, so use translations={{ "en": { KEY: "value" } }} — a regional key like en-US is ignored unless you also pass selectedLanguage="en-US", and codes must match the kit's keys exactly (case-sensitive) — e.g. zh-tw is lowercase but en-US/en-GB are uppercase-region; not addTranslation. Provider props: selectedLanguage · autoDetectLanguage · translations · fallbackLanguage — {DOCS_BASE}/ui-kit/react-native/localize). Fetch the exact call for your family.useLocale().getLocalizedString(key)), never a hardcoded English literal.The exact class methods, the supported language list, and the key namespace are per family+major — fetch them; this file is the discipline, the docs are the signatures.
A snake_case token in the UI (group_info, add_members, sample_*) means a missing or wrong key — the localizer returns the key on a miss. Causes and fixes:
sample_*) → look up the CURRENT key in the kit's resources/<lang>/translation.json or the localize doc; don't guess.dir="rtl" on the app root or the locale-driven wrapper; native: the platform's RTL layout support). The kit follows the surrounding direction; your host must set it.{DOCS_BASE}/ui-kit/react-native/localize → Supported Languages) are all LTR (no Arabic/Hebrew/Farsi/Urdu). An RTL language is only possible as a custom translations entry + a matching selectedLanguage, with the host handling layout direction — re-check that page before promising RTL chat on React Native.margin-inline-start, etc.) so your chrome mirrors correctly.message-translation feature (per-message, cometchat-<family>-features), a different thing from UI-Kit localization.CometChatLocalize (React · Angular · iOS · Android), or change the selectedLanguage prop on CometChatI18nProvider (React Native — there is no CometChatLocalize setter there).dir/layout direction yourself.Switching the app language re-renders the chat in that language · no snake_case keys appear in the UI · custom/overridden strings show · an RTL locale mirrors layout and direction-sensitive icons · dates/times read in the locale · your language switcher and the kit's language (CometChatLocalize, or React Native's selectedLanguage prop) stay in sync.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.