Sourced from i18next-cli's changelog.
1.67.3
- feat(lint): new opt-in
lint.checkPunctuationConcatenationflags punctuation glued onto a translation, e.g.<label><Trans>Email</Trans>:</label>or<div>- <Trans>item</Trans></div>. Punctuation spacing and form differ across languages (French needs a narrow no-break space before:, CJK uses fullwidth:, RTL reorders), so it belongs inside the translation or in semantic markup. Accepts the same values ascheckConcatenation('warn'/'error'/'off'/ boolean) and defaults to'off', since keeping punctuation out of a translation is often deliberate. Individual occurrences can be suppressed with thei18next-instrument-ignoredirective (#275).1.67.2
- fix(lint): broaden the
checkConcatenationJSX detection to flag any ≥2 adjacent translation units rendered as direct siblings — a<Trans>component or a{t(...)}expression. This now catches<Trans>…</Trans>{t('…')},{t('a')}{t('b')}and two<Trans>separated only by whitespace, in addition to the previous "<Trans>… text …<Trans>" case. Single translations next to plain literal text or punctuation are still not flagged (#275).