← Torna alla home

MENO DUBBI.
PIÙ CONTROLLO.

Installa il filtro, scegli una policy e valida i testi degli utenti senza API né servizi esterni.

01

Avvio rapido

Usa il pacchetto JavaScript in Node o nel browser, oppure il pacchetto Dart puro in Flutter. Entrambi condividono regole di rilevamento ed esiti attesi.

JAVASCRIPT / TYPESCRIPT
npm install italian-profanity
import { createChecker } from "italian-profanity";

const checker = createChecker({
  profile: "balanced",
  languages: ["it"],
  contacts: false,
  maxLength: 64,
});

const result = checker.check("D10 p0rc0");
if (result.action === "block") {
  // Rifiuta il nickname inviato.
}
DART / FLUTTER
flutter pub add italian_profanity
import 'package:italian_profanity/italian_profanity.dart';

final checker = ItalianProfanity.createChecker(
  profile: Profile.balanced,
  languages: ['it'],
  contacts: false,
  maxLength: 64,
);

final result = checker.check('Claudio');
if (result.action == Action.block) {
  // Rifiuta il nickname inviato.
}

Per pacchetti Dart fuori da Flutter, esegui dart pub add italian_profanity.

02

API

TypeScript e Dart condividono quattro punti d'ingresso:

FunzioneA cosa serve
check(text)Restituisce un'azione (allow, review o block) e le corrispondenze.
findMatches(text)Elenca le regole rilevate senza applicare una decisione di moderazione.
isClean(text)Restituisce true solo quando l'azione è allow, non review.
createChecker(options)Riusa la stessa policy, le lingue, le eccezioni e le impostazioni tra un controllo e l'altro.

Ogni corrispondenza indica categoria, gravità, confidenza e posizione nel testo originale. Le posizioni sono offset UTF-16: trattale come dati potenzialmente sensibili.

03

Policy

Balanced

La predefinita, pensata per ridurre i falsi positivi sui nomi comuni.

Strict

Più severa con i termini ambigui. Valutane l'impatto prima di adottarla.

Lenient

Meno severa, per prodotti in cui un avviso è più utile di un rifiuto.

Rendi esplicita la policy del tuo prodotto. Se non hai una coda di revisione manuale, puoi rifiutare solo block e gestire review a parte. Non dare per scontato che isClean() faccia questa distinzione al posto tuo.

04

Personalizzazione

  • Lingue: l'italiano è attivo di default. Attiva la copertura inglese curata con languages: ["it", "en"].
  • Contatti: rilevamento facoltativo di URL, email e numeri di telefono con contacts: true.
  • Regole aggiuntive: aggiungi regole a parola intera specifiche del tuo prodotto invece di modificare il dataset condiviso.
  • Eccezioni e soglie: regola la sensibilità per categoria senza riscrivere il rilevatore.

La guida d'integrazione completa descrive tutte le opzioni e la migrazione dai filtri esistenti.

Apri la guida d'integrazione ↗
05

In produzione

  • Ricontrolla sul server. I controlli lato client migliorano l'esperienza ma si possono sempre aggirare.
  • Allinea le versioni. Usa la stessa release e le stesse opzioni su backend e app.
  • Valida la lunghezza a parte. Il filtro può esaminare solo la parte iniziale configurata di un testo lungo.
  • Proteggi la privacy. Non salvare nickname, corrispondenze o offset reali nella telemetria di moderazione.
  • Controlla le differenze tra release. Nuove regole possono cambiare l'esito di testi prima consentiti.
06

Limiti

Un filtro lessicale non è una moderazione completa.

La libreria non comprende intenzioni o contesto e non può garantire che un testo consentito sia appropriato. Alcuni nomi ambigui restituiscono volutamente review.

I dialetti regionali sono coperti solo in parte. Il dataset inglese facoltativo è curato, ma non equivale a un servizio completo di moderazione in inglese. Prova la libreria su casi reali prima di applicare blocchi rigidi.

Manca qualcosa?

Esempi riproducibili ed eccezioni ben motivate aiutano il progetto a migliorare.

Apri una issue