"i18n-keyless does not support plurals or genders"
It does. Pass count and one source form ({count} items), and the model writes every CLDR plural branch each language needs — French 2, Russian 4, Arabic 6 — validated against Intl.PluralRules before they are saved. Ordinals (1st, 2e) and gender/select work the same way. Guide: Plurals and genders.
import { I18nKeylessText } from "i18n-keyless-react";
function CartLine({ count }: { count: number }) {
return (
<I18nKeylessText count={count}>
{"{count} articles dans votre panier"}
</I18nKeylessText>
);
}
Zero-specific display text ("Your cart is empty" instead of "0 items") is a conditional in the component — that is display logic, not a plural rule.