diff --git a/lib/form_builder_validators.dart b/lib/form_builder_validators.dart index 225a2743..32c81181 100644 --- a/lib/form_builder_validators.dart +++ b/lib/form_builder_validators.dart @@ -31,6 +31,7 @@ export 'localization/intl/messages_tr.dart'; export 'localization/intl/messages_uk.dart'; export 'localization/intl/messages_zh.dart'; export 'localization/l10n.dart'; +export 'localization/profanity/profanity.dart'; export 'src/base_validator.dart'; export 'src/bool/bool.dart'; export 'src/collection/collection.dart'; diff --git a/lib/l10n/intl_ar.arb b/lib/l10n/intl_ar.arb index 0db04f6e..45fab1f1 100644 --- a/lib/l10n/intl_ar.arb +++ b/lib/l10n/intl_ar.arb @@ -86,5 +86,6 @@ "vinErrorText": "يجب أن تكون القيمة رقم VIN صالح.", "languageCodeErrorText": "يجب أن تكون القيمة رمز لغة صالح.", "floatErrorText": "يجب أن تكون القيمة رقم عشري صالح.", - "hexadecimalErrorText": "يجب أن تكون القيمة رقم سداسي عشري صالح." -} \ No newline at end of file + "hexadecimalErrorText": "يجب أن تكون القيمة رقم سداسي عشري صالح.", + "profanityErrorText": "يجب ألا تحتوي القيمة على: {profanity}." +} diff --git a/lib/l10n/intl_bg.arb b/lib/l10n/intl_bg.arb index dfa0b669..945d7f6c 100644 --- a/lib/l10n/intl_bg.arb +++ b/lib/l10n/intl_bg.arb @@ -86,5 +86,6 @@ "vinErrorText": "Стойността трябва да бъде валиден VIN.", "languageCodeErrorText": "Стойността трябва да бъде валиден езиков код.", "floatErrorText": "Стойността трябва да бъде валидно число с плаваща запетая.", - "hexadecimalErrorText": "Стойността трябва да бъде валиден шестнадесетичен номер." -} \ No newline at end of file + "hexadecimalErrorText": "Стойността трябва да бъде валиден шестнадесетичен номер.", + "profanityErrorText": "Стойността не трябва да съдържа: {profanity}." +} diff --git a/lib/l10n/intl_bn.arb b/lib/l10n/intl_bn.arb index 617db002..e51e028b 100644 --- a/lib/l10n/intl_bn.arb +++ b/lib/l10n/intl_bn.arb @@ -86,5 +86,6 @@ "vinErrorText": "মানটি একটি বৈধ VIN হতে হবে।", "languageCodeErrorText": "মানটি একটি বৈধ ভাষা কোড হতে হবে।", "floatErrorText": "মান একটি বৈধ ভাসমান বিন্দু সংখ্যা হতে হবে।", - "hexadecimalErrorText": "মান একটি বৈধ হেক্সাডেসিমাল সংখ্যা হতে হবে।" -} \ No newline at end of file + "hexadecimalErrorText": "মান একটি বৈধ হেক্সাডেসিমাল সংখ্যা হতে হবে।", + "profanityErrorText": "মানের মধ্যে এইগুলি থাকা যাবে না: {profanity}." +} diff --git a/lib/l10n/intl_bs.arb b/lib/l10n/intl_bs.arb index 4ca3a8ce..3a27c59e 100644 --- a/lib/l10n/intl_bs.arb +++ b/lib/l10n/intl_bs.arb @@ -86,5 +86,6 @@ "vinErrorText": "Vrijednost mora biti ispravan VIN.", "languageCodeErrorText": "Vrijednost mora biti ispravan kod jezika.", "floatErrorText": "Vrijednost mora biti ispravan broj s pomičnim zarezom.", - "hexadecimalErrorText": "Vrijednost mora biti ispravan heksadecimalni broj." -} \ No newline at end of file + "hexadecimalErrorText": "Vrijednost mora biti ispravan heksadecimalni broj.", + "profanityErrorText": "Vrijednost ne smije sadržavati: {profanity}." +} diff --git a/lib/l10n/intl_ca.arb b/lib/l10n/intl_ca.arb index a173dba7..1a67b679 100644 --- a/lib/l10n/intl_ca.arb +++ b/lib/l10n/intl_ca.arb @@ -86,5 +86,6 @@ "vinErrorText": "El valor ha de ser un VIN vàlid.", "languageCodeErrorText": "El valor ha de ser un codi de llengua vàlid.", "floatErrorText": "El valor ha de ser un nombre de coma flotant vàlid.", - "hexadecimalErrorText": "El valor ha de ser un nombre hexadecimal vàlid." -} \ No newline at end of file + "hexadecimalErrorText": "El valor ha de ser un nombre hexadecimal vàlid.", + "profanityErrorText": "El valor no ha de contenir: {profanity}." +} diff --git a/lib/l10n/intl_cs.arb b/lib/l10n/intl_cs.arb index d748d5d0..6d7888e6 100644 --- a/lib/l10n/intl_cs.arb +++ b/lib/l10n/intl_cs.arb @@ -86,5 +86,6 @@ "vinErrorText": "Hodnota musí být platný VIN.", "languageCodeErrorText": "Hodnota musí být platný kód jazyka.", "floatErrorText": "Hodnota musí být platné desetinné číslo.", - "hexadecimalErrorText": "Hodnota musí být platné šestnáctkové číslo." -} \ No newline at end of file + "hexadecimalErrorText": "Hodnota musí být platné šestnáctkové číslo.", + "profanityErrorText": "Hodnota nesmí obsahovat: {profanity}." +} diff --git a/lib/l10n/intl_da.arb b/lib/l10n/intl_da.arb index 7749fdd7..ece1da4d 100644 --- a/lib/l10n/intl_da.arb +++ b/lib/l10n/intl_da.arb @@ -86,5 +86,6 @@ "vinErrorText": "Værdien skal være en gyldig VIN.", "languageCodeErrorText": "Værdien skal være en gyldig sprogkode.", "floatErrorText": "Værdien skal være et gyldigt flydende punkt nummer.", - "hexadecimalErrorText": "Værdien skal være et gyldigt hexadecimalt nummer." -} \ No newline at end of file + "hexadecimalErrorText": "Værdien skal være et gyldigt hexadecimalt nummer.", + "profanityErrorText": "Værdien må ikke indeholde: {profanity}." +} diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb index 76b4b4dd..66e4ad9a 100644 --- a/lib/l10n/intl_de.arb +++ b/lib/l10n/intl_de.arb @@ -86,5 +86,6 @@ "vinErrorText": "Der Wert muss eine gültige Fahrzeug-Identifizierungsnummer (VIN) sein.", "languageCodeErrorText": "Der Wert muss ein gültiger Sprachcode sein.", "floatErrorText": "Der Wert muss eine gültige Fließkommazahl sein.", - "hexadecimalErrorText": "Der Wert muss eine gültige hexadezimale Zahl sein." -} \ No newline at end of file + "hexadecimalErrorText": "Der Wert muss eine gültige hexadezimale Zahl sein.", + "profanityErrorText": "Der Wert darf nicht enthalten: {profanity}." +} diff --git a/lib/l10n/intl_el.arb b/lib/l10n/intl_el.arb index 6d134dca..cab7364e 100644 --- a/lib/l10n/intl_el.arb +++ b/lib/l10n/intl_el.arb @@ -86,5 +86,6 @@ "vinErrorText": "Η τιμή πρέπει να είναι ένας έγκυρος αριθμός VIN.", "languageCodeErrorText": "Η τιμή πρέπει να είναι ένας έγκυρος κωδικός γλώσσας.", "floatErrorText": "Η τιμή πρέπει να είναι έγκυρος δεκαδικός αριθμός κινητής υποδιαστολής.", - "hexadecimalErrorText": "Η τιμή πρέπει να είναι έγκυρος δεκαεξαδικός αριθμός." -} \ No newline at end of file + "hexadecimalErrorText": "Η τιμή πρέπει να είναι έγκυρος δεκαεξαδικός αριθμός.", + "profanityErrorText": "Η τιμή δεν πρέπει να περιέχει: {profanity}." +} diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index af5e7a0f..da8fd38a 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -282,5 +282,14 @@ "vinErrorText": "Value must be a valid VIN.", "languageCodeErrorText": "Value must be a valid language code.", "floatErrorText": "Value must be a valid floating point number.", - "hexadecimalErrorText": "Value must be a valid hexadecimal number." + "hexadecimalErrorText": "Value must be a valid hexadecimal number.", + "profanityErrorText": "Value must not contain: {profanity}.", + "@profanityErrorText": { + "placeholders": { + "profanity": { + "type": "String", + "description": "The prohibited profane word or phrase" + } + } + } } diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb index 42abb12a..e24800eb 100644 --- a/lib/l10n/intl_es.arb +++ b/lib/l10n/intl_es.arb @@ -86,5 +86,6 @@ "vinErrorText": "El valor debe ser un VIN válido.", "languageCodeErrorText": "El valor debe ser un código de idioma válido.", "floatErrorText": "El valor debe ser un número de punto flotante válido.", - "hexadecimalErrorText": "El valor debe ser un número hexadecimal válido." -} \ No newline at end of file + "hexadecimalErrorText": "El valor debe ser un número hexadecimal válido.", + "profanityErrorText": "El valor no debe contener: {profanity}." +} diff --git a/lib/l10n/intl_et.arb b/lib/l10n/intl_et.arb index a59b5345..da63bbee 100644 --- a/lib/l10n/intl_et.arb +++ b/lib/l10n/intl_et.arb @@ -86,5 +86,6 @@ "vinErrorText": "Väärtus peab olema kehtiv VIN.", "languageCodeErrorText": "Väärtus peab olema kehtiv keelekood.", "floatErrorText": "Väärtus peab olema kehtiv ujukomaarv.", - "hexadecimalErrorText": "Väärtus peab olema kehtiv kuueteistkümnendkohtade süsteemi arv." -} \ No newline at end of file + "hexadecimalErrorText": "Väärtus peab olema kehtiv kuueteistkümnendkohtade süsteemi arv.", + "profanityErrorText": "Väärtus ei tohi sisaldada: {profanity}." +} diff --git a/lib/l10n/intl_fa.arb b/lib/l10n/intl_fa.arb index b18340ef..41824771 100644 --- a/lib/l10n/intl_fa.arb +++ b/lib/l10n/intl_fa.arb @@ -86,5 +86,6 @@ "vinErrorText": "مقدار باید یک شماره VIN معتبر باشد.", "languageCodeErrorText": "مقدار باید یک کد زبان معتبر باشد.", "floatErrorText": "مقدار باید یک عدد اعشاری معتبر باشد.", - "hexadecimalErrorText": "مقدار باید یک عدد هگزادسیمال معتبر باشد." -} \ No newline at end of file + "hexadecimalErrorText": "مقدار باید یک عدد هگزادسیمال معتبر باشد.", + "profanityErrorText": "مقدار نباید حاوی این کلمات باشد: {profanity}." +} diff --git a/lib/l10n/intl_fi.arb b/lib/l10n/intl_fi.arb index 21597268..fb2c2d32 100644 --- a/lib/l10n/intl_fi.arb +++ b/lib/l10n/intl_fi.arb @@ -86,5 +86,6 @@ "vinErrorText": "Arvon on oltava kelvollinen VIN.", "languageCodeErrorText": "Arvon on oltava kelvollinen kielikoodi.", "floatErrorText": "Arvon on oltava kelvollinen liukuluku.", - "hexadecimalErrorText": "Arvon on oltava kelvollinen heksadesimaaliluku." -} \ No newline at end of file + "hexadecimalErrorText": "Arvon on oltava kelvollinen heksadesimaaliluku.", + "profanityErrorText": "Arvon ei pidä sisältää: {profanity}." +} diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index 5d7b99c1..d7cbc9da 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -86,5 +86,6 @@ "vinErrorText": "La valeur doit être un numéro VIN valide.", "languageCodeErrorText": "La valeur doit être un code de langue valide.", "floatErrorText": "La valeur doit être un nombre à virgule flottante valide.", - "hexadecimalErrorText": "La valeur doit être un nombre hexadécimal valide." -} \ No newline at end of file + "hexadecimalErrorText": "La valeur doit être un nombre hexadécimal valide.", + "profanityErrorText": "La valeur ne doit pas contenir : {profanity}." +} diff --git a/lib/l10n/intl_he.arb b/lib/l10n/intl_he.arb index 1e5b3cab..0f4e8e60 100644 --- a/lib/l10n/intl_he.arb +++ b/lib/l10n/intl_he.arb @@ -86,5 +86,6 @@ "vinErrorText": "הערך חייב להיות מספר VIN חוקי.", "languageCodeErrorText": "הערך חייב להיות קוד שפה חוקי.", "floatErrorText": "הערך חייב להיות מספר נקודה צפה חוקי.", - "hexadecimalErrorText": "הערך חייב להיות מספר הקסדצימלי חוקי." -} \ No newline at end of file + "hexadecimalErrorText": "הערך חייב להיות מספר הקסדצימלי חוקי.", + "profanityErrorText": "הערך לא יכול להכיל: {profanity}." +} diff --git a/lib/l10n/intl_hi.arb b/lib/l10n/intl_hi.arb index a370361d..fe600380 100644 --- a/lib/l10n/intl_hi.arb +++ b/lib/l10n/intl_hi.arb @@ -86,5 +86,6 @@ "vinErrorText": "मान मान्य VIN होना चाहिए।", "languageCodeErrorText": "मान मान्य भाषा कोड होना चाहिए।", "floatErrorText": "मान्य फ़्लोटिंग पॉइंट नंबर होना चाहिए।", - "hexadecimalErrorText": "मान्य हेक्साडेसिमल नंबर होना चाहिए।" -} \ No newline at end of file + "hexadecimalErrorText": "मान्य हेक्साडेसिमल नंबर होना चाहिए।", + "profanityErrorText": "मान मान में शामिल नहीं होना चाहिए: {profanity}." +} diff --git a/lib/l10n/intl_hr.arb b/lib/l10n/intl_hr.arb index 73d88f0a..c1b328d2 100644 --- a/lib/l10n/intl_hr.arb +++ b/lib/l10n/intl_hr.arb @@ -86,5 +86,6 @@ "vinErrorText": "Vrijednost mora biti važeći VIN.", "languageCodeErrorText": "Vrijednost mora biti važeći jezični kod.", "floatErrorText": "Vrijednost mora biti valjani broj s pomičnim zarezom.", - "hexadecimalErrorText": "Vrijednost mora biti valjani heksadecimalni broj." -} \ No newline at end of file + "hexadecimalErrorText": "Vrijednost mora biti valjani heksadecimalni broj.", + "profanityErrorText": "Vrijednost ne smije sadržavati: {profanity}." +} diff --git a/lib/l10n/intl_hu.arb b/lib/l10n/intl_hu.arb index 1f658910..cdd48e05 100644 --- a/lib/l10n/intl_hu.arb +++ b/lib/l10n/intl_hu.arb @@ -86,5 +86,6 @@ "vinErrorText": "Az értéknek egy érvényes járműazonosító számnak kell lennie.", "languageCodeErrorText": "Az értéknek egy érvényes nyelvkódnak kell lennie.", "floatErrorText": "Az értéknek érvényes lebegőpontos számnak kell lennie.", - "hexadecimalErrorText": "Az értéknek érvényes hexadecimális számnak kell lennie." -} \ No newline at end of file + "hexadecimalErrorText": "Az értéknek érvényes hexadecimális számnak kell lennie.", + "profanityErrorText": "Az érték nem tartalmazhat: {profanity}." +} diff --git a/lib/l10n/intl_id.arb b/lib/l10n/intl_id.arb index 3b28acc5..9821f77b 100644 --- a/lib/l10n/intl_id.arb +++ b/lib/l10n/intl_id.arb @@ -86,5 +86,6 @@ "vinErrorText": "Nilai harus berupa VIN yang valid.", "languageCodeErrorText": "Nilai harus berupa kode bahasa yang valid.", "floatErrorText": "Nilai harus berupa angka floating point yang valid.", - "hexadecimalErrorText": "Nilai harus berupa angka heksadesimal yang valid." -} \ No newline at end of file + "hexadecimalErrorText": "Nilai harus berupa angka heksadesimal yang valid.", + "profanityErrorText": "Nilai tidak boleh mengandung: {profanity}." +} diff --git a/lib/l10n/intl_it.arb b/lib/l10n/intl_it.arb index 028696f8..fdfe4a40 100644 --- a/lib/l10n/intl_it.arb +++ b/lib/l10n/intl_it.arb @@ -86,5 +86,6 @@ "vinErrorText": "Il valore deve essere un VIN valido.", "languageCodeErrorText": "Il valore deve essere un codice lingua valido.", "floatErrorText": "Il valore deve essere un numero in virgola mobile valido.", - "hexadecimalErrorText": "Il valore deve essere un numero esadecimale valido." -} \ No newline at end of file + "hexadecimalErrorText": "Il valore deve essere un numero esadecimale valido.", + "profanityErrorText": "Il valore non deve contenere: {profanity}." +} diff --git a/lib/l10n/intl_ja.arb b/lib/l10n/intl_ja.arb index ac200051..e20fb4fe 100644 --- a/lib/l10n/intl_ja.arb +++ b/lib/l10n/intl_ja.arb @@ -86,5 +86,6 @@ "vinErrorText": "値は有効なVINでなければなりません。", "languageCodeErrorText": "値は有効な言語コードでなければなりません。", "floatErrorText": "値は有効な浮動小数点数でなければなりません。", - "hexadecimalErrorText": "値は有効な16進数でなければなりません。" -} \ No newline at end of file + "hexadecimalErrorText": "値は有効な16進数でなければなりません。", + "profanityErrorText": "値に含めてはいけません: {profanity}。" +} diff --git a/lib/l10n/intl_km.arb b/lib/l10n/intl_km.arb index 3175ec8c..84a4a5bc 100644 --- a/lib/l10n/intl_km.arb +++ b/lib/l10n/intl_km.arb @@ -86,5 +86,6 @@ "vinErrorText": "តម្លៃត្រូវតែជាលេខ VIN ដែលត្រឹមត្រូវ។", "languageCodeErrorText": "តម្លៃត្រូវតែជាកូដភាសាដែលត្រឹមត្រូវ។", "floatErrorText": "តម្លៃត្រូវតែជាចំនួនទសភាគត្រឹមត្រូវ។", - "hexadecimalErrorText": "តម្លៃត្រូវតែជាលេខសិប្បកម្មត្រឹមត្រូវ។" -} \ No newline at end of file + "hexadecimalErrorText": "តម្លៃត្រូវតែជាលេខសិប្បកម្មត្រឹមត្រូវ។", + "profanityErrorText": "តម្លៃមិនត្រូវមាន: {profanity}." +} diff --git a/lib/l10n/intl_ko.arb b/lib/l10n/intl_ko.arb index 1efefd4e..6712de85 100644 --- a/lib/l10n/intl_ko.arb +++ b/lib/l10n/intl_ko.arb @@ -86,5 +86,6 @@ "vinErrorText": "값은 유효한 VIN이어야 합니다.", "languageCodeErrorText": "값은 유효한 언어 코드이어야 합니다.", "floatErrorText": "값은 유효한 부동 소수점 수여야 합니다.", - "hexadecimalErrorText": "값은 유효한 16진수여야 합니다." -} \ No newline at end of file + "hexadecimalErrorText": "값은 유효한 16진수여야 합니다.", + "profanityErrorText": "값에는 다음 내용을 포함할 수 없습니다: {profanity}." +} diff --git a/lib/l10n/intl_ku.arb b/lib/l10n/intl_ku.arb index caf8f557..c19692de 100644 --- a/lib/l10n/intl_ku.arb +++ b/lib/l10n/intl_ku.arb @@ -86,5 +86,6 @@ "vinErrorText": "Nirxî divê yekem hejmarê VIN derbasdar be.", "languageCodeErrorText": "Nirxî divê yekem kodê zimanê derbasdar be.", "floatErrorText": "Gerrdê hewce ye ku zêdeya rast bibe.", - "hexadecimalErrorText": "Gerrdê hewce ye ku hexa de rast bibe." -} \ No newline at end of file + "hexadecimalErrorText": "Gerrdê hewce ye ku hexa de rast bibe.", + "profanityErrorText": "Naxa nabe ku nadirîn: {profanity}." +} diff --git a/lib/l10n/intl_lo.arb b/lib/l10n/intl_lo.arb index 049194ca..5a55d6f3 100644 --- a/lib/l10n/intl_lo.arb +++ b/lib/l10n/intl_lo.arb @@ -86,5 +86,6 @@ "vinErrorText": "ຄ່າຕ້ອງເປັນ VIN ທີ່ຖືກຕ້ອງ.", "languageCodeErrorText": "ຄ່າຕ້ອງເປັນໄລຄໂລດພາສາທີ່ຖືກຕ້ອງ.", "floatErrorText": "ຄ່າຕ້ອງເປັນໂຕເລກ float ທີ່ຖືກຕ້ອງ.", - "hexadecimalErrorText": "ຄ່າຕ້ອງເປັນໂຕເລກເຮັກຊະເດສິມທີ່ຖືກຕ້ອງ." -} \ No newline at end of file + "hexadecimalErrorText": "ຄ່າຕ້ອງເປັນໂຕເລກເຮັກຊະເດສິມທີ່ຖືກຕ້ອງ.", + "profanityErrorText": "ຄ່າຄວນບໍ່ປະກອບດ້ວຍ: {profanity}." +} diff --git a/lib/l10n/intl_mn.arb b/lib/l10n/intl_mn.arb index c9e3722a..bb0599d1 100644 --- a/lib/l10n/intl_mn.arb +++ b/lib/l10n/intl_mn.arb @@ -86,5 +86,6 @@ "vinErrorText": "Утга нь хүчин төгөлдөр VIN байх ёстой.", "languageCodeErrorText": "Утга нь хүчин төгөлдөр хэлний код байх ёстой.", "floatErrorText": "Утга нь буцаж ирдэг зөв хөвөгч цэгийн тоо байх ёстой.", - "hexadecimalErrorText": "Утга нь буцаж ирдэг зөв арван зургаатын тоо байх ёстой." -} \ No newline at end of file + "hexadecimalErrorText": "Утга нь буцаж ирдэг зөв арван зургаатын тоо байх ёстой.", + "profanityErrorText": "Утга нь дараах үгийг агуулж болохгүй: {profanity}." +} diff --git a/lib/l10n/intl_ms.arb b/lib/l10n/intl_ms.arb index 3698711d..cf29bbf4 100644 --- a/lib/l10n/intl_ms.arb +++ b/lib/l10n/intl_ms.arb @@ -86,5 +86,6 @@ "vinErrorText": "Nilai mesti nombor VIN yang sah.", "languageCodeErrorText": "Nilai mesti kod bahasa yang sah.", "floatErrorText": "Nilai mesti nombor terapung sah.", - "hexadecimalErrorText": "Nilai mesti nombor heksadesimal sah." -} \ No newline at end of file + "hexadecimalErrorText": "Nilai mesti nombor heksadesimal sah.", + "profanityErrorText": "Nilai tidak boleh mengandungi: {profanity}." +} diff --git a/lib/l10n/intl_ne.arb b/lib/l10n/intl_ne.arb index 7582a947..7340f60f 100644 --- a/lib/l10n/intl_ne.arb +++ b/lib/l10n/intl_ne.arb @@ -86,5 +86,6 @@ "vinErrorText": "मान मान्य VIN हुनुपर्छ।", "languageCodeErrorText": "मान मान्य भाषाको कोड हुनुपर्छ।", "floatErrorText": "मान्यता प्राप्त फ्लोटिङ पोइन्ट नम्बर हुनुपर्छ।", - "hexadecimalErrorText": "मान्यता प्राप्त हेक्साडेसिमल नम्बर हुनुपर्छ।" -} \ No newline at end of file + "hexadecimalErrorText": "मान्यता प्राप्त हेक्साडेसिमल नम्बर हुनुपर्छ।", + "profanityErrorText": "मान {profanity} समाविष्ट गर्नु हुँदैन।" +} diff --git a/lib/l10n/intl_nl.arb b/lib/l10n/intl_nl.arb index 36a2cc8f..21e1b23b 100644 --- a/lib/l10n/intl_nl.arb +++ b/lib/l10n/intl_nl.arb @@ -86,5 +86,6 @@ "vinErrorText": "Waarde moet een geldig VIN zijn.", "languageCodeErrorText": "Waarde moet een geldige taalcode zijn.", "floatErrorText": "Waarde moet een geldig drijvend-komma getal zijn.", - "hexadecimalErrorText": "Waarde moet een geldig hexadecimaal getal zijn." -} \ No newline at end of file + "hexadecimalErrorText": "Waarde moet een geldig hexadecimaal getal zijn.", + "profanityErrorText": "Waarde mag niet bevatten: {profanity}." +} diff --git a/lib/l10n/intl_no.arb b/lib/l10n/intl_no.arb index 5d7506bb..e73fc8ba 100644 --- a/lib/l10n/intl_no.arb +++ b/lib/l10n/intl_no.arb @@ -86,5 +86,6 @@ "vinErrorText": "Verdien må være et gyldig VIN.", "languageCodeErrorText": "Verdien må være en gyldig språkkode.", "floatErrorText": "Verdien må være et gyldig flyttall.", - "hexadecimalErrorText": "Verdien må være et gyldig heksadesimalt tall." -} \ No newline at end of file + "hexadecimalErrorText": "Verdien må være et gyldig heksadesimalt tall.", + "profanityErrorText": "Verdien må ikke inneholde: {profanity}." +} diff --git a/lib/l10n/intl_pl.arb b/lib/l10n/intl_pl.arb index 8b5cc2d7..2f3f9f53 100644 --- a/lib/l10n/intl_pl.arb +++ b/lib/l10n/intl_pl.arb @@ -86,5 +86,6 @@ "vinErrorText": "Wartość musi być prawidłowym numerem VIN.", "languageCodeErrorText": "Wartość musi być prawidłowym kodem języka.", "floatErrorText": "Wartość musi być prawidłową liczbą zmiennoprzecinkową.", - "hexadecimalErrorText": "Wartość musi być prawidłową liczbą szesnastkową." -} \ No newline at end of file + "hexadecimalErrorText": "Wartość musi być prawidłową liczbą szesnastkową.", + "profanityErrorText": "Wartość nie może zawierać: {profanity}." +} diff --git a/lib/l10n/intl_pt.arb b/lib/l10n/intl_pt.arb index 11a1c6c2..847d9aaf 100644 --- a/lib/l10n/intl_pt.arb +++ b/lib/l10n/intl_pt.arb @@ -86,5 +86,6 @@ "vinErrorText": "O valor deve ser um VIN válido.", "languageCodeErrorText": "O valor deve ser um código de idioma válido.", "floatErrorText": "O valor deve ser um número de ponto flutuante válido.", - "hexadecimalErrorText": "O valor deve ser um número hexadecimal válido." -} \ No newline at end of file + "hexadecimalErrorText": "O valor deve ser um número hexadecimal válido.", + "profanityErrorText": "O valor não deve conter: {profanity}." +} diff --git a/lib/l10n/intl_ro.arb b/lib/l10n/intl_ro.arb index 659d09eb..1c3e5f1a 100644 --- a/lib/l10n/intl_ro.arb +++ b/lib/l10n/intl_ro.arb @@ -86,5 +86,6 @@ "vinErrorText": "Valoarea trebuie să fie un VIN valid.", "languageCodeErrorText": "Valoarea trebuie să fie un cod de limbă valid.", "floatErrorText": "Valoarea trebuie să fie un număr zecimal valid.", - "hexadecimalErrorText": "Valoarea trebuie să fie un număr hexadecimal valid." -} \ No newline at end of file + "hexadecimalErrorText": "Valoarea trebuie să fie un număr hexadecimal valid.", + "profanityErrorText": "Valoarea nu trebuie să conțină: {profanity}." +} diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb index 015ce131..5519a751 100644 --- a/lib/l10n/intl_ru.arb +++ b/lib/l10n/intl_ru.arb @@ -86,5 +86,6 @@ "vinErrorText": "Значение должно быть действительным VIN.", "languageCodeErrorText": "Значение должно быть действительным кодом языка.", "floatErrorText": "Значение должно быть допустимым числом с плавающей запятой.", - "hexadecimalErrorText": "Значение должно быть допустимым шестнадцатеричным числом." -} \ No newline at end of file + "hexadecimalErrorText": "Значение должно быть допустимым шестнадцатеричным числом.", + "profanityErrorText": "Значение не должно содержать: {profanity}." +} diff --git a/lib/l10n/intl_sk.arb b/lib/l10n/intl_sk.arb index cdb33c15..ef666c96 100644 --- a/lib/l10n/intl_sk.arb +++ b/lib/l10n/intl_sk.arb @@ -86,5 +86,6 @@ "vinErrorText": "Hodnota musí byť platné číslo VIN.", "languageCodeErrorText": "Hodnota musí byť platný kód jazyka.", "floatErrorText": "Hodnota musí byť platné desatinné číslo.", - "hexadecimalErrorText": "Hodnota musí byť platné hexadecimálne číslo." -} \ No newline at end of file + "hexadecimalErrorText": "Hodnota musí byť platné hexadecimálne číslo.", + "profanityErrorText": "Hodnota nesmie obsahovať: {profanity}." +} diff --git a/lib/l10n/intl_sl.arb b/lib/l10n/intl_sl.arb index 6e06a7d4..5e126d6d 100644 --- a/lib/l10n/intl_sl.arb +++ b/lib/l10n/intl_sl.arb @@ -86,5 +86,6 @@ "vinErrorText": "Vrednost mora biti veljavna identifikacijska številka vozila (VIN).", "languageCodeErrorText": "Vrednost mora biti veljavna koda jezika.", "floatErrorText": "Vrednost mora biti veljavno število s plavajočo vejico.", - "hexadecimalErrorText": "Vrednost mora biti veljavno šestnajstiško število." -} \ No newline at end of file + "hexadecimalErrorText": "Vrednost mora biti veljavno šestnajstiško število.", + "profanityErrorText": "Vrednost ne sme vsebovati: {profanity}." +} diff --git a/lib/l10n/intl_sq.arb b/lib/l10n/intl_sq.arb index b9d7a2cf..7003f180 100644 --- a/lib/l10n/intl_sq.arb +++ b/lib/l10n/intl_sq.arb @@ -86,5 +86,6 @@ "vinErrorText": "Vlera duhet të jetë një VIN i vlefshëm.", "languageCodeErrorText": "Vlera duhet të jetë një kod gjuhe i vlefshëm.", "floatErrorText": "Vlera duhet të jetë një numër i vlefshëm me pikë lundruese.", - "hexadecimalErrorText": "Vlera duhet të jetë një numër i vlefshëm heksadecimal." + "hexadecimalErrorText": "Vlera duhet të jetë një numër i vlefshëm heksadecimal.", + "profanityErrorText": "Vlera nuk duhet të përmbajë: {profanity}." } diff --git a/lib/l10n/intl_sv.arb b/lib/l10n/intl_sv.arb index abfb0a3d..89130702 100644 --- a/lib/l10n/intl_sv.arb +++ b/lib/l10n/intl_sv.arb @@ -86,5 +86,6 @@ "vinErrorText": "Värdet måste vara ett giltigt VIN.", "languageCodeErrorText": "Värdet måste vara en giltig språkkod.", "floatErrorText": "Värdet måste vara ett giltigt flyttal.", - "hexadecimalErrorText": "Värdet måste vara ett giltigt hexadecimaltal." -} \ No newline at end of file + "hexadecimalErrorText": "Värdet måste vara ett giltigt hexadecimaltal.", + "profanityErrorText": "Värdet får inte innehålla: {profanity}." +} diff --git a/lib/l10n/intl_sw.arb b/lib/l10n/intl_sw.arb index 5dcf203e..efc9009b 100644 --- a/lib/l10n/intl_sw.arb +++ b/lib/l10n/intl_sw.arb @@ -86,5 +86,6 @@ "vinErrorText": "Thamani lazima iwe VIN halali.", "languageCodeErrorText": "Thamani lazima iwe msimbo halali wa lugha.", "floatErrorText": "Thamani lazima iwe nambari sahihi ya nukta mvutano.", - "hexadecimalErrorText": "Thamani lazima iwe nambari sahihi ya hekshadesimali." -} \ No newline at end of file + "hexadecimalErrorText": "Thamani lazima iwe nambari sahihi ya hekshadesimali.", + "profanityErrorText": "Thamani haipaswi kuwa na: {profanity}." +} diff --git a/lib/l10n/intl_ta.arb b/lib/l10n/intl_ta.arb index 71176758..d63d0c72 100644 --- a/lib/l10n/intl_ta.arb +++ b/lib/l10n/intl_ta.arb @@ -86,5 +86,6 @@ "vinErrorText": "மதிப்பு ஒரு செல்லுபடியான வாகன அடையாள எணாக (VIN) இருக்க வேண்டும்.", "languageCodeErrorText": "மதிப்பு ஒரு செல்லுபடியான மொழி குறியீடாக இருக்க வேண்டும்.", "floatErrorText": "மதிப்பு சரியான மிதக்கும் புள்ளி எண் ஆக இருக்க வேண்டும்.", - "hexadecimalErrorText": "மதிப்பு சரியான ஹெக்சாடெசிமல் எண் ஆக இருக்க வேண்டும்." -} \ No newline at end of file + "hexadecimalErrorText": "மதிப்பு சரியான ஹெக்சாடெசிமல் எண் ஆக இருக்க வேண்டும்.", + "profanityErrorText": "மதிப்பு கொண்டிருக்கக்கூடாது: {profanity}." +} diff --git a/lib/l10n/intl_th.arb b/lib/l10n/intl_th.arb index 410eadfa..bc184899 100644 --- a/lib/l10n/intl_th.arb +++ b/lib/l10n/intl_th.arb @@ -86,5 +86,6 @@ "vinErrorText": "ค่าต้องเป็นหมายเลข VIN ที่ถูกต้อง", "languageCodeErrorText": "ค่าต้องเป็นรหัสภาษาที่ถูกต้อง", "floatErrorText": "ค่าต้องเป็นตัวเลขทศนิยมที่ถูกต้อง", - "hexadecimalErrorText": "ค่าต้องเป็นเลขฐานสิบหกที่ถูกต้อง" -} \ No newline at end of file + "hexadecimalErrorText": "ค่าต้องเป็นเลขฐานสิบหกที่ถูกต้อง", + "profanityErrorText": "ค่าต้องไม่ประกอบด้วย: {profanity}." +} diff --git a/lib/l10n/intl_tr.arb b/lib/l10n/intl_tr.arb index d163ce6a..ab600cb1 100644 --- a/lib/l10n/intl_tr.arb +++ b/lib/l10n/intl_tr.arb @@ -86,5 +86,6 @@ "vinErrorText": "Değer geçerli bir VIN numarası olmalıdır.", "languageCodeErrorText": "Değer geçerli bir dil kodu olmalıdır.", "floatErrorText": "Değer geçerli bir noktalı sayı olmalıdır.", - "hexadecimalErrorText": "Değer geçerli bir onaltılık sayı olmalıdır." -} \ No newline at end of file + "hexadecimalErrorText": "Değer geçerli bir onaltılık sayı olmalıdır.", + "profanityErrorText": "Değer şunları içermemelidir: {profanity}." +} diff --git a/lib/l10n/intl_uk.arb b/lib/l10n/intl_uk.arb index d7149043..c4fcc88d 100644 --- a/lib/l10n/intl_uk.arb +++ b/lib/l10n/intl_uk.arb @@ -86,5 +86,6 @@ "vinErrorText": "Значення повинно бути дійсним VIN.", "languageCodeErrorText": "Значення повинно бути дійсним кодом мови.", "floatErrorText": "Значення повинно бути дійсним числом з плаваючою комою.", - "hexadecimalErrorText": "Значення повинно бути дійсним шістнадцятковим числом." -} \ No newline at end of file + "hexadecimalErrorText": "Значення повинно бути дійсним шістнадцятковим числом.", + "profanityErrorText": "Значення не повинно містити: {profanity}." +} diff --git a/lib/l10n/intl_vi.arb b/lib/l10n/intl_vi.arb index b82dd2f4..3d8f071d 100644 --- a/lib/l10n/intl_vi.arb +++ b/lib/l10n/intl_vi.arb @@ -86,5 +86,6 @@ "vinErrorText": "Giá trị phải là số VIN hợp lệ.", "languageCodeErrorText": "Giá trị phải là mã ngôn ngữ hợp lệ.", "floatErrorText": "Giá trị phải là một số dấu phẩy động hợp lệ.", - "hexadecimalErrorText": "Giá trị phải là một số thập lục phân hợp lệ." -} \ No newline at end of file + "hexadecimalErrorText": "Giá trị phải là một số thập lục phân hợp lệ.", + "profanityErrorText": "Giá trị không được chứa: {profanity}." +} diff --git a/lib/l10n/intl_zh.arb b/lib/l10n/intl_zh.arb index 1f433690..b30c652b 100644 --- a/lib/l10n/intl_zh.arb +++ b/lib/l10n/intl_zh.arb @@ -86,5 +86,6 @@ "vinErrorText": "值必须是有效的车辆识别码(VIN)。", "languageCodeErrorText": "值必须是有效的语言代码。", "floatErrorText": "值必须是有效的浮点数。", - "hexadecimalErrorText": "值必须是有效的十六进制数。" -} \ No newline at end of file + "hexadecimalErrorText": "值必须是有效的十六进制数。", + "profanityErrorText": "数值不得包含:{profanity}。" +} diff --git a/lib/l10n/intl_zh_Hant.arb b/lib/l10n/intl_zh_Hant.arb index 8f76cdf9..60ee243c 100644 --- a/lib/l10n/intl_zh_Hant.arb +++ b/lib/l10n/intl_zh_Hant.arb @@ -86,5 +86,6 @@ "vinErrorText": "值必須是一個有效的車輛識別號。", "languageCodeErrorText": "值必須是一個有效的語言代碼。", "floatErrorText": "數值必須為有效的浮點數。", - "hexadecimalErrorText": "數值必須為有效的十六進位數字。" -} \ No newline at end of file + "hexadecimalErrorText": "數值必須為有效的十六進位數字。", + "profanityErrorText": "內容不可包含:{profanity}。" +} diff --git a/lib/localization/profanity/profanity.dart b/lib/localization/profanity/profanity.dart new file mode 100644 index 00000000..66e6f4ea --- /dev/null +++ b/lib/localization/profanity/profanity.dart @@ -0,0 +1,146 @@ +import 'package:intl/intl.dart' as intl; + +import 'profanity_ar.dart'; +import 'profanity_bg.dart'; +import 'profanity_bn.dart'; +import 'profanity_bs.dart'; +import 'profanity_ca.dart'; +import 'profanity_cs.dart'; +import 'profanity_da.dart'; +import 'profanity_de.dart'; +import 'profanity_el.dart'; +import 'profanity_en.dart'; +import 'profanity_es.dart'; +import 'profanity_et.dart'; +import 'profanity_fa.dart'; +import 'profanity_fi.dart'; +import 'profanity_fr.dart'; +import 'profanity_he.dart'; +import 'profanity_hi.dart'; +import 'profanity_hr.dart'; +import 'profanity_hu.dart'; +import 'profanity_id.dart'; +import 'profanity_it.dart'; +import 'profanity_ja.dart'; +import 'profanity_km.dart'; +import 'profanity_ko.dart'; +import 'profanity_ku.dart'; +import 'profanity_lo.dart'; +import 'profanity_mn.dart'; +import 'profanity_ms.dart'; +import 'profanity_ne.dart'; +import 'profanity_nl.dart'; +import 'profanity_no.dart'; +import 'profanity_pl.dart'; +import 'profanity_pt.dart'; +import 'profanity_ro.dart'; +import 'profanity_ru.dart'; +import 'profanity_sk.dart'; +import 'profanity_sl.dart'; +import 'profanity_sq.dart'; +import 'profanity_sv.dart'; +import 'profanity_sw.dart'; +import 'profanity_ta.dart'; +import 'profanity_th.dart'; +import 'profanity_tr.dart'; +import 'profanity_uk.dart'; +import 'profanity_vi.dart'; +import 'profanity_zh.dart'; +import 'profanity_zh_hant.dart'; + +/// {@template profanity_template} +/// Base class for all profanity lists. +/// {@endtemplate} +abstract class Profanity { + /// Creates a new instance of the profanity list. + Profanity(String locale) + : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + + /// The locale name for the profanity list. + final String localeName; + + /// The list of profanity words. + List get profanityList; + + /// The list of supported locales. + static List supportedLocales = [ + ProfanityAr(), + ProfanityBg(), + ProfanityBn(), + ProfanityBs(), + ProfanityCa(), + ProfanityCs(), + ProfanityDa(), + ProfanityDe(), + ProfanityEl(), + ProfanityEn(), + ProfanityEs(), + ProfanityEt(), + ProfanityFa(), + ProfanityFi(), + ProfanityFr(), + ProfanityHe(), + ProfanityHi(), + ProfanityHr(), + ProfanityHu(), + ProfanityId(), + ProfanityIt(), + ProfanityJa(), + ProfanityKm(), + ProfanityKo(), + ProfanityKu(), + ProfanityLo(), + ProfanityMn(), + ProfanityMs(), + ProfanityNe(), + ProfanityNl(), + ProfanityNo(), + ProfanityPl(), + ProfanityPt(), + ProfanityRo(), + ProfanityRu(), + ProfanitySk(), + ProfanitySl(), + ProfanitySq(), + ProfanitySv(), + ProfanitySw(), + ProfanityTa(), + ProfanityTh(), + ProfanityTr(), + ProfanityUk(), + ProfanityVi(), + ProfanityZhHant(), + ProfanityZh() + ]; + + /// Returns the profanity list for the given locale. + static Profanity of(String locale) { + return supportedLocales.firstWhere( + (Profanity profanity) => profanity.localeName == locale, + orElse: () => ProfanityEn(), + ); + } + + /// Returns the profanity list for the given locales. + static List ofLocales(List locales) { + return locales.map((String locale) => of(locale)).toList(); + } + + /// Returns the list of profanity words for the given list of profanity. + static List profanityListOf(List profanity) { + return profanity + .map((Profanity profanity) => profanity.profanityList) + .expand((List list) => list) + .toList(); + } + + /// Returns the list of profanity words for the given list of locales. + static List profanityListOfLocales(List locales) { + return profanityListOf(ofLocales(locales)); + } + + /// Returns the list of profanity words for all supported locales. + static List profanityListAll() { + return profanityListOf(supportedLocales); + } +} diff --git a/lib/localization/profanity/profanity_ar.dart b/lib/localization/profanity/profanity_ar.dart new file mode 100644 index 00000000..eb440db7 --- /dev/null +++ b/lib/localization/profanity/profanity_ar.dart @@ -0,0 +1,50 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityAr extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityAr([super.locale = 'ar']); + + @override + List get profanityList => [ + 'سكس', + 'طيز', + 'شرج', + 'لعق', + 'لحس', + 'مص', + 'تمص', + 'بيضان', + 'ثدي', + 'بز', + 'بزاز', + 'حلمة', + 'مفلقسة', + 'بظر', + 'كس', + 'فرج', + 'شهوة', + 'شاذ', + 'مبادل', + 'عاهرة', + 'جماع', + 'قضيب', + 'زب', + 'لوطي', + 'لواط', + 'سحاق', + 'سحاقية', + 'اغتصاب', + 'خنثي', + 'احتلام', + 'نيك', + 'متناك', + 'متناكة', + 'شرموطة', + 'عرص', + 'خول', + 'قحبة', + 'لبوة' + ]; +} diff --git a/lib/localization/profanity/profanity_bg.dart b/lib/localization/profanity/profanity_bg.dart new file mode 100644 index 00000000..42d1b392 --- /dev/null +++ b/lib/localization/profanity/profanity_bg.dart @@ -0,0 +1,27 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityBg extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityBg([super.locale = 'bg']); + + @override + List profanityList = [ + 'гъз', + 'ебан', + 'путка', + 'кур', + 'мамка ти', + 'курва', + 'лайно', + 'кочина', + 'педераст', + 'секс', + 'боклук', + 'пикня', + 'майка ти', + 'гомик', + 'ебаняк' + ]; +} diff --git a/lib/localization/profanity/profanity_bn.dart b/lib/localization/profanity/profanity_bn.dart new file mode 100644 index 00000000..4d5e1fde --- /dev/null +++ b/lib/localization/profanity/profanity_bn.dart @@ -0,0 +1,36 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityBn extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityBn([super.locale = 'bn']); + + @override + List profanityList = [ + 'যন্ত্রণা', + 'মা চোদা', + 'বিকৃত', + 'পিশাচ', + 'বাজে', + 'গাধা', + 'চোদন', + 'জঘন্য', + 'চোদা', + 'চুদাই', + 'চুত', + 'ল্যাওড়া', + 'গুদ', + 'কাম', + 'ধর্ষণ', + 'নেংটা', + 'চুচি', + 'চটি', + 'দুধ', + 'নাপিত', + 'মাগি', + 'খানকি', + 'খারাপ', + 'বাজে' + ]; +} diff --git a/lib/localization/profanity/profanity_bs.dart b/lib/localization/profanity/profanity_bs.dart new file mode 100644 index 00000000..87286cac --- /dev/null +++ b/lib/localization/profanity/profanity_bs.dart @@ -0,0 +1,32 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityBs extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityBs([super.locale = 'bs']); + + @override + List profanityList = [ + 'kurva', + 'jebač', + 'govno', + 'pizda', + 'debil', + 'idiot', + 'šupak', + 'kurac', + 'pička', + 'jebanje', + 'peder', + 'lezbejka', + 'droca', + 'jebi', + 'drkati', + 'onanirati', + 'sranje', + 'čmar', + 'šupčina', + 'kurvin sin' + ]; +} diff --git a/lib/localization/profanity/profanity_ca.dart b/lib/localization/profanity/profanity_ca.dart new file mode 100644 index 00000000..9be64923 --- /dev/null +++ b/lib/localization/profanity/profanity_ca.dart @@ -0,0 +1,36 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityCa extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityCa([super.locale = 'ca']); + + @override + List profanityList = [ + 'puto', + 'fill de puta', + 'xorra', + 'mala persona', + 'palla', + 'sexe', + 'collons', + 'follar', + 'cony', + 'bragueta', + 'follar', + 'capullo', + 'cabron', + 'merda', + 'cabró', + 'joder', + 'polla', + 'teta', + 'mamada', + 'porno', + 'verga', + 'gilipolles', + 'cagar', + 'cagat' + ]; +} diff --git a/lib/localization/profanity/profanity_cs.dart b/lib/localization/profanity/profanity_cs.dart new file mode 100644 index 00000000..97724f8c --- /dev/null +++ b/lib/localization/profanity/profanity_cs.dart @@ -0,0 +1,53 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityCs extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityCs([super.locale = 'cs']); + + @override + List get profanityList => [ + 'bordel', + 'buzna', + 'čumět', + 'čurák', + 'debil', + 'do piče', + 'do prdele', + 'dršťka', + 'držka', + 'flundra', + 'hajzl', + 'hovno', + 'chcanky', + 'chuj', + 'jebat', + 'kokot', + 'kokotina', + 'koňomrd', + 'kunda', + 'kurva', + 'mamrd', + 'mrdat', + 'mrdka', + 'mrdník', + 'oslošoust', + 'piča', + 'píčus', + 'píchat', + 'pizda', + 'prcat', + 'prdel', + 'prdelka', + 'sračka', + 'srát', + 'šoustat', + 'šulin', + 'vypíčenec', + 'zkurvit', + 'zkurvysyn', + 'zmrd', + 'žrát' + ]; +} diff --git a/lib/localization/profanity/profanity_da.dart b/lib/localization/profanity/profanity_da.dart new file mode 100644 index 00000000..023d7f0f --- /dev/null +++ b/lib/localization/profanity/profanity_da.dart @@ -0,0 +1,32 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityDa extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityDa([super.locale = 'da']); + + @override + List get profanityList => [ + 'anus', + 'bøsserøv', + 'cock', + 'fisse', + 'fissehår', + 'fuck', + 'hestepik', + 'kussekryller', + 'lort', + 'luder', + 'pik', + 'pikhår', + 'pikslugeri', + 'piksutteri', + 'pis', + 'røv', + 'røvhul', + 'røvskæg', + 'røvspræke', + 'shit' + ]; +} diff --git a/lib/localization/profanity/profanity_de.dart b/lib/localization/profanity/profanity_de.dart new file mode 100644 index 00000000..dbc5c887 --- /dev/null +++ b/lib/localization/profanity/profanity_de.dart @@ -0,0 +1,78 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityDe extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityDe([super.locale = 'de']); + + @override + List get profanityList => [ + 'analritter', + 'arsch', + 'arschficker', + 'arschlecker', + 'arschloch', + 'bimbo', + 'bratze', + 'bumsen', + 'bonze', + 'dödel', + 'fick', + 'ficken', + 'flittchen', + 'fotze', + 'fratze', + 'hackfresse', + 'hure', + 'hurensohn', + 'ische', + 'kackbratze', + 'kacke', + 'kacken', + 'kackwurst', + 'kampflesbe', + 'kanake', + 'kimme', + 'lümmel', + 'MILF', + 'möpse', + 'morgenlatte', + 'möse', + 'mufti', + 'muschi', + 'nackt', + 'neger', + 'nigger', + 'nippel', + 'nutte', + 'onanieren', + 'orgasmus', + 'penis', + 'pimmel', + 'pimpern', + 'pinkeln', + 'pissen', + 'pisser', + 'popel', + 'poppen', + 'porno', + 'reudig', + 'rosette', + 'schabracke', + 'schlampe', + 'scheiße', + 'scheisser', + 'schiesser', + 'schnackeln', + 'schwanzlutscher', + 'schwuchtel', + 'tittchen', + 'titten', + 'vögeln', + 'vollpfosten', + 'wichse', + 'wichsen', + 'wichser' + ]; +} diff --git a/lib/localization/profanity/profanity_el.dart b/lib/localization/profanity/profanity_el.dart new file mode 100644 index 00000000..16b7960c --- /dev/null +++ b/lib/localization/profanity/profanity_el.dart @@ -0,0 +1,33 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityEl extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityEl([super.locale = 'el']); + + @override + List profanityList = [ + 'πουτσο', + 'προβλημα', + 'μαλακας', + 'καριόλης', + 'πασαλειμμένος', + 'τσουλάκι', + 'προβληματικός', + 'γαμώ', + 'πούστης', + 'μουνί', + 'κώλος', + 'βυζιά', + 'γαμήσι', + 'σκατά', + 'ψωλή', + 'πούτσος', + 'κουράδα', + 'πέος', + 'κλανιά', + 'κωλοτρυπίδα', + 'παλούκι' + ]; +} diff --git a/lib/localization/profanity/profanity_en.dart b/lib/localization/profanity/profanity_en.dart new file mode 100644 index 00000000..60ed55bb --- /dev/null +++ b/lib/localization/profanity/profanity_en.dart @@ -0,0 +1,415 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityEn extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityEn([super.locale = 'en']); + + @override + List get profanityList => [ + '2g1c', + '2 girls 1 cup', + 'acrotomophilia', + 'alabama hot pocket', + 'alaskan pipeline', + 'anal', + 'anilingus', + 'anus', + 'apeshit', + 'arsehole', + 'ass', + 'asshole', + 'assmunch', + 'auto erotic', + 'autoerotic', + 'babeland', + 'baby batter', + 'baby juice', + 'ball gag', + 'ball gravy', + 'ball kicking', + 'ball licking', + 'ball sack', + 'ball sucking', + 'bangbros', + 'bangbus', + 'bareback', + 'barely legal', + 'barenaked', + 'bastard', + 'bastardo', + 'bastinado', + 'bbw', + 'bdsm', + 'beaner', + 'beaners', + 'beaver cleaver', + 'beaver lips', + 'beastiality', + 'bestiality', + 'big black', + 'big breasts', + 'big knockers', + 'big tits', + 'bimbos', + 'birdlock', + 'bitch', + 'bitches', + 'black cock', + 'blonde action', + 'blonde on blonde action', + 'blowjob', + 'blow job', + 'blow your load', + 'blue waffle', + 'blumpkin', + 'bollocks', + 'bondage', + 'boner', + 'boob', + 'boobs', + 'booty call', + 'brown showers', + 'brunette action', + 'bukkake', + 'bulldyke', + 'bullet vibe', + 'bullshit', + 'bung hole', + 'bunghole', + 'busty', + 'butt', + 'buttcheeks', + 'butthole', + 'camel toe', + 'camgirl', + 'camslut', + 'camwhore', + 'carpet muncher', + 'carpetmuncher', + 'chocolate rosebuds', + 'cialis', + 'circlejerk', + 'cleveland steamer', + 'clit', + 'clitoris', + 'clover clamps', + 'clusterfuck', + 'cock', + 'cocks', + 'coprolagnia', + 'coprophilia', + 'cornhole', + 'coon', + 'coons', + 'creampie', + 'cum', + 'cumming', + 'cumshot', + 'cumshots', + 'cunnilingus', + 'cunt', + 'darkie', + 'date rape', + 'daterape', + 'deep throat', + 'deepthroat', + 'dendrophilia', + 'dick', + 'dildo', + 'dingleberry', + 'dingleberries', + 'dirty pillows', + 'dirty sanchez', + 'doggie style', + 'doggiestyle', + 'doggy style', + 'doggystyle', + 'dog style', + 'dolcett', + 'domination', + 'dominatrix', + 'dommes', + 'donkey punch', + 'double dong', + 'double penetration', + 'dp action', + 'dry hump', + 'dvda', + 'eat my ass', + 'ecchi', + 'ejaculation', + 'erotic', + 'erotism', + 'escort', + 'eunuch', + 'fag', + 'faggot', + 'fecal', + 'felch', + 'fellatio', + 'feltch', + 'female squirting', + 'femdom', + 'figging', + 'fingerbang', + 'fingering', + 'fisting', + 'foot fetish', + 'footjob', + 'frotting', + 'fuck', + 'fuck buttons', + 'fuckin', + 'fucking', + 'fucktards', + 'fudge packer', + 'fudgepacker', + 'futanari', + 'gangbang', + 'gang bang', + 'gay sex', + 'genitals', + 'giant cock', + 'girl on', + 'girl on top', + 'girls gone wild', + 'goatcx', + 'goatse', + 'god damn', + 'gokkun', + 'golden shower', + 'goodpoop', + 'goo girl', + 'goregasm', + 'grope', + 'group sex', + 'g-spot', + 'guro', + 'hand job', + 'handjob', + 'hard core', + 'hardcore', + 'hentai', + 'homoerotic', + 'honkey', + 'hooker', + 'horny', + 'hot carl', + 'hot chick', + 'how to kill', + 'how to murder', + 'huge fat', + 'humping', + 'incest', + 'intercourse', + 'jack off', + 'jail bait', + 'jailbait', + 'jelly donut', + 'jerk off', + 'jigaboo', + 'jiggaboo', + 'jiggerboo', + 'jizz', + 'juggs', + 'kike', + 'kinbaku', + 'kinkster', + 'kinky', + 'knobbing', + 'leather restraint', + 'leather straight jacket', + 'lemon party', + 'livesex', + 'lolita', + 'lovemaking', + 'make me come', + 'male squirting', + 'masturbate', + 'masturbating', + 'masturbation', + 'menage a trois', + 'milf', + 'missionary position', + 'mong', + 'motherfucker', + 'mound of venus', + 'mr hands', + 'muff diver', + 'muffdiving', + 'nambla', + 'nawashi', + 'negro', + 'neonazi', + 'nigga', + 'nigger', + 'nig nog', + 'nimphomania', + 'nipple', + 'nipples', + 'nsfw', + 'nsfw images', + 'nude', + 'nudity', + 'nutten', + 'nympho', + 'nymphomania', + 'octopussy', + 'omorashi', + 'one cup two girls', + 'one guy one jar', + 'orgasm', + 'orgy', + 'paedophile', + 'paki', + 'panties', + 'panty', + 'pedobear', + 'pedophile', + 'pegging', + 'penis', + 'phone sex', + 'piece of shit', + 'pikey', + 'pissing', + 'piss pig', + 'pisspig', + 'playboy', + 'pleasure chest', + 'pole smoker', + 'ponyplay', + 'poof', + 'poon', + 'poontang', + 'punany', + 'poop chute', + 'poopchute', + 'porn', + 'porno', + 'pornography', + 'prince albert piercing', + 'pthc', + 'pubes', + 'pussy', + 'queaf', + 'queef', + 'quim', + 'raghead', + 'raging boner', + 'rape', + 'raping', + 'rapist', + 'rectum', + 'reverse cowgirl', + 'rimjob', + 'rimming', + 'rosy palm', + 'rosy palm and her 5 sisters', + 'rusty trombone', + 'sadism', + 'santorum', + 'scat', + 'schlong', + 'scissoring', + 'semen', + 'sex', + 'sexcam', + 'sexo', + 'sexy', + 'sexual', + 'sexually', + 'sexuality', + 'shaved beaver', + 'shaved pussy', + 'shemale', + 'shibari', + 'shit', + 'shitblimp', + 'shitty', + 'shota', + 'shrimping', + 'skeet', + 'slanteye', + 'slut', + 's&m', + 'smut', + 'snatch', + 'snowballing', + 'sodomize', + 'sodomy', + 'spastic', + 'spic', + 'splooge', + 'splooge moose', + 'spooge', + 'spread legs', + 'spunk', + 'strap on', + 'strapon', + 'strappado', + 'strip club', + 'style doggy', + 'suck', + 'sucks', + 'suicide girls', + 'sultry women', + 'swastika', + 'swinger', + 'tainted love', + 'taste my', + 'tea bagging', + 'threesome', + 'throating', + 'thumbzilla', + 'tied up', + 'tight white', + 'tit', + 'tits', + 'titties', + 'titty', + 'tongue in a', + 'topless', + 'tosser', + 'towelhead', + 'tranny', + 'tribadism', + 'tub girl', + 'tubgirl', + 'tushy', + 'twat', + 'twink', + 'twinkie', + 'two girls one cup', + 'undressing', + 'upskirt', + 'urethra play', + 'urophilia', + 'vagina', + 'venus mound', + 'viagra', + 'vibrator', + 'violet wand', + 'vorarephilia', + 'voyeur', + 'voyeurweb', + 'voyuer', + 'vulva', + 'wank', + 'wetback', + 'wet dream', + 'white power', + 'whore', + 'worldsex', + 'wrapping men', + 'wrinkled starfish', + 'xx', + 'xxx', + 'yaoi', + 'yellow showers', + 'yiffy', + 'zoophilia', + '🖕' + ]; +} diff --git a/lib/localization/profanity/profanity_es.dart b/lib/localization/profanity/profanity_es.dart new file mode 100644 index 00000000..65345e94 --- /dev/null +++ b/lib/localization/profanity/profanity_es.dart @@ -0,0 +1,80 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityEs extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityEs([super.locale = 'es']); + + @override + List get profanityList => [ + 'Asesinato', + 'asno', + 'bastardo', + 'Bollera', + 'Cabrón', + 'Caca', + 'Chupada', + 'Chupapollas', + 'Chupetón', + 'concha', + 'Concha de tu madre', + 'Coño', + 'Coprofagía', + 'Culo', + 'Drogas', + 'Esperma', + 'Fiesta de salchichas', + 'Follador', + 'Follar', + 'Gilipichis', + 'Gilipollas', + 'Hacer una paja', + 'Haciendo el amor', + 'Heroína', + 'Hija de puta', + 'Hijaputa', + 'Hijo de puta', + 'Hijoputa', + 'Idiota', + 'Imbécil', + 'infierno', + 'Jilipollas', + 'Kapullo', + 'Lameculos', + 'Maciza', + 'Macizorra', + 'maldito', + 'Mamada', + 'Marica', + 'Maricón', + 'Mariconazo', + 'martillo', + 'Mierda', + 'Nazi', + 'Orina', + 'Pedo', + 'Pendejo', + 'Pervertido', + 'Pezón', + 'Pinche', + 'Pis', + 'Prostituta', + 'Puta', + 'Racista', + 'Ramera', + 'Sádico', + 'Semen', + 'Sexo', + 'Sexo oral', + 'Soplagaitas', + 'Soplapollas', + 'Tetas grandes', + 'Tía buena', + 'Travesti', + 'Trio', + 'Verga', + 'vete a la mierda', + 'Vulva' + ]; +} diff --git a/lib/localization/profanity/profanity_et.dart b/lib/localization/profanity/profanity_et.dart new file mode 100644 index 00000000..a1517600 --- /dev/null +++ b/lib/localization/profanity/profanity_et.dart @@ -0,0 +1,35 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityEt extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityEt([super.locale = 'et']); + + @override + List profanityList = [ + 'kurt', + 'võll', + 'pätakas', + 'mõttetu', + 'sitt', + 'kukk', + 'masturbeerima', + 'tuss', + 'perse', + 'idioot', + 'lits', + 'peenis', + 'vitt', + 'kepp', + 'munn', + 'neeger', + 'tampoon', + 'plika', + 'kanakas', + 'lollakas', + 'hullumeelne', + 'junn', + 'pask' + ]; +} diff --git a/lib/localization/profanity/profanity_fa.dart b/lib/localization/profanity/profanity_fa.dart new file mode 100644 index 00000000..046d7641 --- /dev/null +++ b/lib/localization/profanity/profanity_fa.dart @@ -0,0 +1,57 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityFa extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityFa([super.locale = 'fa']); + + @override + List get profanityList => [ + 'آب کیر', + 'ارگاسم', + 'برهنه', + 'پورن', + 'پورنو', + 'تجاوز', + 'تخمی', + 'جق', + 'جقی', + 'جلق', + 'جنده', + 'چوچول', + 'حشر', + 'حشری', + 'داف', + 'دودول', + 'ساک زدن', + 'سکس', + 'سکس کردن', + 'سکسی', + 'سوپر', + 'شق کردن', + 'شهوت', + 'شهوتی', + 'شونبول', + 'فیلم سوپر', + 'کس', + 'کس دادن', + 'کس کردن', + 'کسکش', + 'کوس', + 'کون', + 'کون دادن', + 'کون کردن', + 'کونکش', + 'کونی', + 'کیر', + 'کیری', + 'لاپا', + 'لاپایی', + 'لاشی', + 'لخت', + 'لش', + 'منی', + 'هرزه' + ]; +} diff --git a/lib/localization/profanity/profanity_fi.dart b/lib/localization/profanity/profanity_fi.dart new file mode 100644 index 00000000..2584bf97 --- /dev/null +++ b/lib/localization/profanity/profanity_fi.dart @@ -0,0 +1,142 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityFi extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityFi([super.locale = 'fi']); + + @override + List get profanityList => [ + 'alfred nussi', + 'bylsiä', + 'haahka', + 'haista paska', + 'haista vittu', + 'hatullinen', + 'helvetisti', + 'hevonkuusi', + 'hevonpaska', + 'hevonperse', + 'hevonvittu', + 'hevonvitunperse', + 'hitosti', + 'hitto', + 'huorata', + 'hässiä', + 'juosten kustu', + 'jutku', + 'jutsku', + 'jätkä', + 'kananpaska', + 'koiranpaska', + 'kuin esterin perseestä', + 'kulli', + 'kullinluikaus', + 'kuppainen', + 'kusaista', + 'kuseksia', + 'kusettaa', + 'kusi', + 'kusipää', + 'kusta', + 'kyrpiintynyt', + 'kyrpiintyä', + 'kyrpiä', + 'kyrpä', + 'kyrpänaama', + 'kyrvitys', + 'lahtari', + 'lutka', + 'molo', + 'molopää', + 'mulkero', + 'mulkku', + 'mulkvisti', + 'muna', + 'munapää', + 'munaton', + 'mutakuono', + 'mutiainen', + 'naida', + 'nainti', + 'narttu', + 'neekeri', + 'nekru', + 'nuolla persettä', + 'nussia', + 'nussija', + 'nussinta', + 'paljaalla', + 'palli', + 'pallit', + 'paneskella', + 'panettaa', + 'panna', + 'pano', + 'pantava', + 'paska', + 'paskainen', + 'paskamainen', + 'paskanmarjat', + 'paskantaa', + 'paskapuhe', + 'paskapää', + 'paskattaa', + 'paskiainen', + 'paskoa', + 'pehko', + 'pentele', + 'perkele', + 'perkeleesti', + 'persaukinen', + 'perse', + 'perseennuolija', + 'perseet olalla', + 'persereikä', + 'perseääliö', + 'persläpi', + 'perspano', + 'persvako', + 'pilkunnussija', + 'pillu', + 'pillut', + 'pipari', + 'piru', + 'pistää', + 'pyllyvako', + 'reikä', + 'reva', + 'ripsipiirakka', + 'runkata', + 'runkkari', + 'runkkaus', + 'runkku', + 'ryssä', + 'rättipää', + 'saatanasti', + 'suklaaosasto', + 'tavara', + 'toosa', + 'tuhkaluukku', + 'tumputtaa', + 'turpasauna', + 'tussu', + 'tussukka', + 'tussut', + 'vakipano', + 'vetää käteen', + 'viiksi', + 'vittu', + 'vittuilla', + 'vittuilu', + 'vittumainen', + 'vittuuntua', + 'vittuuntunut', + 'vitun', + 'vitusti', + 'vituttaa', + 'vitutus', + 'äpärä' + ]; +} diff --git a/lib/localization/profanity/profanity_fr.dart b/lib/localization/profanity/profanity_fr.dart new file mode 100644 index 00000000..12ab3bcb --- /dev/null +++ b/lib/localization/profanity/profanity_fr.dart @@ -0,0 +1,38 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityFr extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityFr([super.locale = 'fr']); + + @override + List profanityList = [ + 'merde', + 'putain', + 'connard', + 'salope', + 'bordel', + 'enculé', + 'bite', + 'chatte', + 'nique', + 'putain de merde', + 'salaud', + 'pute', + 'chiottes', + 'pédé', + 'tapette', + 'cul', + 'couilles', + 'branleur', + 'sodomie', + 'saloperie', + 'branlette', + 'gueule', + 'enculer', + 'godemiché', + 'masturbation', + 'viande à brûler' + ]; +} diff --git a/lib/localization/profanity/profanity_he.dart b/lib/localization/profanity/profanity_he.dart new file mode 100644 index 00000000..e3062fc8 --- /dev/null +++ b/lib/localization/profanity/profanity_he.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityHe extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityHe([super.locale = 'he']); + + @override + List profanityList = [ + 'זין', + 'חרא', + 'זונה', + 'מניאק', + 'אידיוט', + 'טיפש', + 'אימא שלך', + 'בת זונה', + 'בן זונה', + 'פאק', + 'שד', + 'ניאוף', + 'כוס', + 'חרמן', + 'זיין', + 'בהמה', + 'מפגר', + 'עכברוש', + 'מזדיין', + 'לעזאזל', + 'זין בעין', + 'נבלה', + 'מזדיינת', + 'פאקינג', + 'רקטום' + ]; +} diff --git a/lib/localization/profanity/profanity_hi.dart b/lib/localization/profanity/profanity_hi.dart new file mode 100644 index 00000000..e9dfc4ef --- /dev/null +++ b/lib/localization/profanity/profanity_hi.dart @@ -0,0 +1,131 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityHi extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityHi([super.locale = 'hi']); + + @override + List get profanityList => [ + 'aand', + 'aandu', + 'balatkar', + 'balatkari', + 'behen chod', + 'beti chod', + 'bhadva', + 'bhadve', + 'bhandve', + 'bhangi', + 'bhootni ke', + 'bhosad', + 'bhosadi ke', + 'boobe', + 'chakke', + 'chinaal', + 'chinki', + 'chod', + 'chodu', + 'chodu bhagat', + 'chooche', + 'choochi', + 'choope', + 'choot', + 'choot ke baal', + 'chootia', + 'chootiya', + 'chuche', + 'chuchi', + 'chudaap', + 'chudai khanaa', + 'chudam chudai', + 'chude', + 'chut', + 'chut ka chuha', + 'chut ka churan', + 'chut ka mail', + 'chut ke baal', + 'chut ke dhakkan', + 'chut maarli', + 'chutad', + 'chutadd', + 'chutan', + 'chutia', + 'chutiya', + 'gaand', + 'gaandfat', + 'gaandmasti', + 'gaandufad', + 'gandfattu', + 'gandu', + 'gashti', + 'gasti', + 'ghassa', + 'ghasti', + 'gucchi', + 'gucchu', + 'harami', + 'haramzade', + 'hawas', + 'hawas ke pujari', + 'hijda', + 'hijra', + 'jhant', + 'jhant chaatu', + 'jhant ka keeda', + 'jhant ke baal', + 'jhant ke pissu', + 'jhantu', + 'kamine', + 'kaminey', + 'kanjar', + 'kutta', + 'kutta kamina', + 'kutte ki aulad', + 'kutte ki jat', + 'kuttiya', + 'loda', + 'lodu', + 'lund', + 'lund choos', + 'lund ka bakkal', + 'lund khajoor', + 'lundtopi', + 'lundure', + 'maa ki chut', + 'maal', + 'madar chod', + 'madarchod', + 'madhavchod', + 'mooh mein le', + 'mutth', + 'mutthal', + 'najayaz', + 'najayaz aulaad', + 'najayaz paidaish', + 'paki', + 'pataka', + 'patakha', + 'raand', + 'randaap', + 'randi', + 'randi rona', + 'saala', + 'saala kutta', + 'saali kutti', + 'saali randi', + 'suar', + 'suar ke lund', + 'suar ki aulad', + 'tatte', + 'tatti', + 'teri maa ka bhosada', + 'teri maa ka boba chusu', + 'teri maa ki behenchod', + 'teri maa ki chut', + 'tharak', + 'tharki', + 'tu chuda' + ]; +} diff --git a/lib/localization/profanity/profanity_hr.dart b/lib/localization/profanity/profanity_hr.dart new file mode 100644 index 00000000..80a528a1 --- /dev/null +++ b/lib/localization/profanity/profanity_hr.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityHr extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityHr([super.locale = 'hr']); + + @override + List profanityList = [ + 'kurva', + 'jebo', + 'govno', + 'pička', + 'idiot', + 'peder', + 'budala', + 'kurčina', + 'jebanje', + 'sranje', + 'kreten', + 'smrad', + 'seronja', + 'pizda', + 'jebi', + 'drkati', + 'balvan', + 'šupak', + 'glup', + 'glupan', + 'govnar', + 'kurvin sin', + 'serem', + 'usrani', + 'jebote' + ]; +} diff --git a/lib/localization/profanity/profanity_hu.dart b/lib/localization/profanity/profanity_hu.dart new file mode 100644 index 00000000..95f247e8 --- /dev/null +++ b/lib/localization/profanity/profanity_hu.dart @@ -0,0 +1,108 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityHu extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityHu([super.locale = 'hu']); + + @override + List get profanityList => [ + 'balfasz', + 'balfaszok', + 'balfaszokat', + 'balfaszt', + 'barmok', + 'barmokat', + 'barmot', + 'barom', + 'baszik', + 'bazmeg', + 'buksza', + 'bukszák', + 'bukszákat', + 'bukszát', + 'búr', + 'búrok', + 'csöcs', + 'csöcsök', + 'csöcsöket', + 'csöcsöt', + 'fasz', + 'faszfej', + 'faszfejek', + 'faszfejeket', + 'faszfejet', + 'faszok', + 'faszokat', + 'faszt', + 'fing', + 'fingok', + 'fingokat', + 'fingot', + 'franc', + 'francok', + 'francokat', + 'francot', + 'geci', + 'gecibb', + 'gecik', + 'geciket', + 'gecit', + 'kibaszott', + 'kibaszottabb', + 'kúr', + 'kurafi', + 'kurafik', + 'kurafikat', + 'kurafit', + 'kurva', + 'kurvák', + 'kurvákat', + 'kurvát', + 'leggecibb', + 'legkibaszottabb', + 'legszarabb', + 'marha', + 'marhák', + 'marhákat', + 'marhát', + 'megdöglik', + 'pele', + 'pelék', + 'picsa', + 'picsákat', + 'picsát', + 'pina', + 'pinák', + 'pinákat', + 'pinát', + 'pofa', + 'pofákat', + 'pofát', + 'pöcs', + 'pöcsök', + 'pöcsöket', + 'pöcsöt', + 'punci', + 'puncik', + 'segg', + 'seggek', + 'seggeket', + 'segget', + 'seggfej', + 'seggfejek', + 'seggfejeket', + 'seggfejet', + 'szajha', + 'szajhák', + 'szajhákat', + 'szajhát', + 'szar', + 'szarabb', + 'szarik', + 'szarok', + 'szarokat', + 'szart' + ]; +} diff --git a/lib/localization/profanity/profanity_id.dart b/lib/localization/profanity/profanity_id.dart new file mode 100644 index 00000000..edf855ad --- /dev/null +++ b/lib/localization/profanity/profanity_id.dart @@ -0,0 +1,33 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityId extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityId([super.locale = 'id']); + + @override + List get profanityList => [ + 'anjing', + 'babi', + 'bangsat', + 'bego', + 'bodoh', + 'brengsek', + 'cukimai', + 'goblok', + 'idiot', + 'jancok', + 'kampret', + 'kontol', + 'koplak', + 'lonte', + 'memek', + 'ngentot', + 'ngewe', + 'pepek', + 'tai', + 'tolol', + 'waria' + ]; +} diff --git a/lib/localization/profanity/profanity_it.dart b/lib/localization/profanity/profanity_it.dart new file mode 100644 index 00000000..65d59953 --- /dev/null +++ b/lib/localization/profanity/profanity_it.dart @@ -0,0 +1,180 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityIt extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityIt([super.locale = 'it']); + + @override + List get profanityList => [ + 'allupato', + 'ammucchiata', + 'anale', + 'arrapato', + 'arrusa', + 'arruso', + 'assatanato', + 'bagascia', + 'bagassa', + 'bagnarsi', + 'baldracca', + 'balle', + 'battere', + 'battona', + 'belino', + 'biga', + 'bocchinara', + 'bocchino', + 'bofilo', + 'boiata', + 'bordello', + 'brinca', + 'bucaiolo', + 'budiùlo', + 'busone', + 'cacca', + 'caciocappella', + 'cadavere', + 'cagare', + 'cagata', + 'cagna', + 'casci', + 'cazzata', + 'cazzimma', + 'cazzo', + 'cesso', + 'cazzone', + 'checca', + 'chiappa', + 'chiavare', + 'chiavata', + 'ciospo', + 'ciucciami il cazzo', + 'coglione', + 'coglioni', + 'cornuto', + 'cozza', + 'culattina', + 'culattone', + 'culo', + 'ditalino', + 'fava', + 'femminuccia', + 'fica', + 'figa', + 'figlio di buona donna', + 'figlio di puttana', + 'figone', + 'finocchio', + 'fottere', + 'fottersi', + 'fracicone', + 'fregna', + 'frocio', + 'froscio', + 'goldone', + 'guardone', + 'imbecille', + 'incazzarsi', + 'incoglionirsi', + 'ingoio', + 'leccaculo', + 'lecchino', + 'lofare', + 'loffa', + 'loffare', + 'mannaggia', + 'merda', + 'merdata', + 'merdoso', + 'mignotta', + 'minchia', + 'minchione', + 'mona', + 'monta', + 'montare', + 'mussa', + 'nave scuola', + 'nerchia', + 'padulo', + 'palle', + 'palloso', + 'patacca', + 'patonza', + 'pecorina', + 'pesce', + 'picio', + 'pincare', + 'pippa', + 'pinnolone', + 'pipì', + 'pippone', + 'pirla', + 'pisciare', + 'piscio', + 'pisello', + 'pistolotto', + 'pomiciare', + 'pompa', + 'pompino', + 'porca', + 'porca madonna', + 'porca miseria', + 'porca puttana', + 'porco', + 'porco due', + 'porco zio', + 'potta', + 'puppami', + 'puttana', + 'quaglia', + 'recchione', + 'regina', + 'rincoglionire', + 'rizzarsi', + 'rompiballe', + 'rompipalle', + 'ruffiano', + 'sbattere', + 'sbattersi', + 'sborra', + 'sborrata', + 'sborrone', + 'sbrodolata', + 'scopare', + 'scopata', + 'scorreggiare', + 'sega', + 'slinguare', + 'slinguata', + 'smandrappata', + 'soccia', + 'socmel', + 'sorca', + 'spagnola', + 'spompinare', + 'sticchio', + 'stronza', + 'stronzata', + 'stronzo', + 'succhiami', + 'succhione', + 'sveltina', + 'sverginare', + 'tarzanello', + 'terrone', + 'testa di cazzo', + 'tette', + 'tirare', + 'topa', + 'troia', + 'trombare', + 'vacca', + 'vaffanculo', + 'vangare', + 'zinne', + 'zio cantante', + 'zoccola' + ]; +} diff --git a/lib/localization/profanity/profanity_ja.dart b/lib/localization/profanity/profanity_ja.dart new file mode 100644 index 00000000..d5ff7cc7 --- /dev/null +++ b/lib/localization/profanity/profanity_ja.dart @@ -0,0 +1,192 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityJa extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityJa([super.locale = 'ja']); + + @override + List get profanityList => [ + '3p', + 'g スポット', + 's & m', + 'sm', + 'sm女王', + 'xx', + 'アジアのかわいい女の子', + 'アスホール', + 'アナリングス', + 'アナル', + 'いたずら', + 'イラマチオ', + 'エクスタシー', + 'エスコート', + 'エッチ', + 'エロティズム', + 'エロティック', + 'オーガズム', + 'オカマ', + 'おしっこ', + 'おしり', + 'オシリ', + 'おしりのあな', + 'おっぱい', + 'オッパイ', + 'オナニー', + 'オマンコ', + 'おもらし', + 'お尻', + 'カーマスートラ', + 'カント', + 'クリトリス', + 'グループ・セックス', + 'グロ', + 'クンニリングス', + 'ゲイ・セックス', + 'ゲイボーイ', + 'ゴールデンシャワー', + 'コカイン', + 'ゴックン', + 'サディズム', + 'しばり', + 'スウィンガー', + 'スカートの中', + 'スカトロ', + 'ストラップオン', + 'ストリップ劇場', + 'スラット', + 'スリット', + 'セクシーな', + 'セクシーな 10 代', + 'セックス', + 'ソドミー', + 'ちんこ', + 'ディープ・スロート', + 'ディック', + 'ディルド', + 'デートレイプ', + 'デブ', + 'テレフォンセックス', + 'ドッグスタイル', + 'トップレス', + 'なめ', + 'ニガー', + 'ヌード', + 'ネオ・ナチ', + 'ハードコア', + 'パイパン', + 'バイブレーター', + 'バック・スタイル', + 'パンティー', + 'ビッチ', + 'ファック', + 'ファンタジー', + 'フィスト', + 'フェティッシュ', + 'フェラチオ', + 'ふたなり', + 'ぶっかけ', + 'フック', + 'プリンス アルバート ピアス', + 'プレイボーイ', + 'ベアバック', + 'ペニス', + 'ペニスバンド', + 'ボーイズラブ', + 'ボールギャグ', + 'ぽっちゃり', + 'ホモ', + 'ポルノ', + 'ポルノグラフィー', + 'ボンテージ', + 'マザー・ファッカー', + 'マスターベーション', + 'まんこ', + 'やおい', + 'やりまん', + 'ラティーナ', + 'ラバー', + 'ランジェリー', + 'レイプ', + 'レズビアン', + 'ローター', + 'ロリータ', + '淫乱', + '陰毛', + '革抑制', + '騎上位', + '巨根', + '巨乳', + '強姦犯', + '玉なめ', + '玉舐め', + '緊縛', + '近親相姦', + '嫌い', + '後背位', + '合意の性交', + '拷問', + '殺し方', + '殺人事件', + '殺人方法', + '支配', + '児童性虐待', + '自己愛性', + '射精', + '手コキ', + '獣姦', + '女の子', + '女王様', + '女子高生', + '女装', + '新しいポルノ', + '人妻', + '人種', + '性交', + '正常位', + '生殖器', + '精液', + '挿入', + '足フェチ', + '足を広げる', + '大陰唇', + '脱衣', + '茶色のシャワー', + '中出し', + '潮吹き女', + '潮吹き男性', + '直腸', + '剃毛', + '貞操帯', + '奴隷', + '二穴', + '乳首', + '尿道プレイ', + '覗き', + '売春婦', + '縛り', + '噴出', + '糞', + '糞尿愛好症', + '糞便', + '平手打ち', + '変態', + '勃起する', + '夢精', + '毛深い', + '誘惑', + '幼児性愛者', + '裸', + '裸の女性', + '乱交', + '両性', + '両性具有', + '両刀', + '輪姦', + '卍', + '宦官', + '肛門', + '膣' + ]; +} diff --git a/lib/localization/profanity/profanity_km.dart b/lib/localization/profanity/profanity_km.dart new file mode 100644 index 00000000..1c7125e9 --- /dev/null +++ b/lib/localization/profanity/profanity_km.dart @@ -0,0 +1,36 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityKm extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityKm([super.locale = 'km']); + + @override + List profanityList = [ + 'សាសន៍ប៉ារ៉ា', + 'សាហាវ', + 'ប៉ារ៉ា', + 'បរិបូរណ៍', + 'ឈឺ', + 'ចុយ', + 'អាចម៍', + 'មើលងាយ', + 'ឱនកំពុងលោត', + 'ស៊ីសាច់', + 'សាហាវ', + 'កាន់តែកាច', + 'ខ្មៅដៃ', + 'អាក្រក់', + 'កាប់', + 'គេងលោត', + 'លេងគេង', + 'បរិបូរណ៍', + 'សាហាវ', + 'កាប់', + 'ស៊ីសាច់', + 'លេងគេង', + 'អាក្រក់', + 'កាប់' + ]; +} diff --git a/lib/localization/profanity/profanity_ko.dart b/lib/localization/profanity/profanity_ko.dart new file mode 100644 index 00000000..1f412942 --- /dev/null +++ b/lib/localization/profanity/profanity_ko.dart @@ -0,0 +1,84 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityKo extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityKo([super.locale = 'ko']); + + @override + List get profanityList => [ + '강간', + '개새끼', + '개자식', + '개좆', + '개차반', + '거유', + '계집년', + '고자', + '근친', + '노모', + '니기미', + '뒤질래', + '딸딸이', + '때씹', + '또라이', + '뙤놈', + '로리타', + '망가', + '몰카', + '미친', + '미친새끼', + '바바리맨', + '변태', + '병신', + '보지', + '불알', + '빠구리', + '사까시', + '섹스', + '스와핑', + '쌍놈', + '씨발', + '씨발놈', + '씨팔', + '씹', + '씹물', + '씹빨', + '씹새끼', + '씹알', + '씹창', + '씹팔', + '암캐', + '애자', + '야동', + '야사', + '야애니', + '엄창', + '에로', + '염병', + '옘병', + '유모', + '육갑', + '은꼴', + '자위', + '자지', + '잡년', + '종간나', + '좆', + '좆만', + '죽일년', + '쥐좆', + '직촬', + '짱깨', + '쪽바리', + '창녀', + '포르노', + '하드코어', + '호로', + '화냥년', + '후레아들', + '후장', + '희쭈그리' + ]; +} diff --git a/lib/localization/profanity/profanity_ku.dart b/lib/localization/profanity/profanity_ku.dart new file mode 100644 index 00000000..a8ee551b --- /dev/null +++ b/lib/localization/profanity/profanity_ku.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityKu extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityKu([super.locale = 'ku']); + + @override + List profanityList = [ + 'kûr', + 'pêş', + 'serê xwe', + 'fîşk', + 'pîç', + 'gîr', + 'nesî', + 'seks', + 'zere', + 'qûl', + 'zik', + 'kirdan', + 'bêk', + 'ji bin', + 'kut', + 'jinav', + 'keçik', + 'zim', + 'gû', + 'jîr', + 'neger', + 'xurt', + 'bic', + 'bîn', + 'kurd' + ]; +} diff --git a/lib/localization/profanity/profanity_lo.dart b/lib/localization/profanity/profanity_lo.dart new file mode 100644 index 00000000..94c2a39e --- /dev/null +++ b/lib/localization/profanity/profanity_lo.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityLo extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityLo([super.locale = 'lo']); + + @override + List profanityList = [ + 'ບັງລົດ', + 'ປະເກີດລະບາຍ', + 'ເພີງ', + 'ມີນ', + 'ປະສົບ', + 'ປະກອນ', + 'ປະຕິບັດ', + 'ອາດວາສະ', + 'ແຮງໄຫມ', + 'ພະນັນ', + 'ກະມະຊາດ', + 'ລາວ', + 'ບ້ານນອນ', + 'ບ້ານ', + 'ທັບທິບ', + 'ທານ', + 'ກິນ', + 'ເຂົາ', + 'ຫ້ອງ', + 'ສົນ', + 'ປະໄມ', + 'ຊອກ', + 'ຂົນ', + 'ເວົາ', + 'ຕາບ' + ]; +} diff --git a/lib/localization/profanity/profanity_mn.dart b/lib/localization/profanity/profanity_mn.dart new file mode 100644 index 00000000..74bde0da --- /dev/null +++ b/lib/localization/profanity/profanity_mn.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityMn extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityMn([super.locale = 'mn']); + + @override + List profanityList = [ + 'хурма', + 'булай', + 'ядуу', + 'бор', + 'мал', + 'баяр', + 'царай', + 'бүдүүн', + 'өөрийн', + 'ял', + 'муу', + 'муухай', + 'амьтан', + 'сэрээ', + 'алмааз', + 'дурах', + 'хайр', + 'тэнэг', + 'мал', + 'өвдөг', + 'эрхтэн', + 'хуруу', + 'бөгс', + 'сүүл', + 'шороо' + ]; +} diff --git a/lib/localization/profanity/profanity_ms.dart b/lib/localization/profanity/profanity_ms.dart new file mode 100644 index 00000000..7a1ff7bb --- /dev/null +++ b/lib/localization/profanity/profanity_ms.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityMs extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityMs([super.locale = 'ms']); + + @override + List profanityList = [ + 'kotor', + 'pukimak', + 'babi', + 'jahanam', + 'sial', + 'kerdil', + 'bodoh', + 'anjing', + 'kepala bana', + 'pantat', + 'konek', + 'jubur', + 'konek', + 'telur', + 'jubo', + 'bontot', + 'nenek', + 'setan', + 'iblis', + 'daif', + 'melancap', + 'lobang', + 'tahi', + 'dungu', + 'kolot' + ]; +} diff --git a/lib/localization/profanity/profanity_ne.dart b/lib/localization/profanity/profanity_ne.dart new file mode 100644 index 00000000..63629827 --- /dev/null +++ b/lib/localization/profanity/profanity_ne.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityNe extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityNe([super.locale = 'ne']); + + @override + List profanityList = [ + 'धम', + 'चूत', + 'गध', + 'बेवकूफ', + 'बदतमीज', + 'लुत', + 'मास्टरब', + 'गांड', + 'मूर्ख', + 'लौंडा', + 'गुस्सा', + 'स्साले', + 'बेशर्म', + 'अश्लील', + 'हरामी', + 'फूहड़', + 'बदचलन', + 'गंदी', + 'गंदी बात', + 'फालतू', + 'बेवकूफ', + 'बकवास', + 'नीच', + 'धमाका', + 'चूतिया' + ]; +} diff --git a/lib/localization/profanity/profanity_nl.dart b/lib/localization/profanity/profanity_nl.dart new file mode 100644 index 00000000..a090ebf8 --- /dev/null +++ b/lib/localization/profanity/profanity_nl.dart @@ -0,0 +1,202 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityNl extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityNl([super.locale = 'nl']); + + @override + List get profanityList => [ + 'aardappels afgieten', + 'achter het raam zitten', + 'afberen', + 'aflebberen', + 'afrossen', + 'afrukken', + 'aftrekken', + 'afwerkplaats', + 'afzeiken', + 'afzuigen', + 'een halve man en een paardekop', + 'anita', + 'asbak', + 'aso', + 'bagger schijten', + 'balen', + 'bedonderen', + 'befborstel', + 'beffen', + 'bekken', + 'belazeren', + 'besodemieterd zijn', + 'besodemieteren', + 'beurt', + 'boemelen', + 'boerelul', + 'boerenpummel', + 'bokkelul', + 'botergeil', + 'broekhoesten', + 'brugpieper', + 'buffelen', + 'buiten de pot piesen', + 'da\'s kloten van de bok', + 'de ballen', + 'de hoer spelen', + 'de hond uitlaten', + 'de koffer induiken', + 'del', + 'de pijp uitgaan', + 'dombo', + 'draaikont', + 'driehoog achter wonen', + 'drol', + 'drooggeiler', + 'droogkloot', + 'een beurt geven', + 'een nummertje maken', + 'een wip maken', + 'eikel', + 'engerd', + 'flamoes', + 'flikken', + 'flikker', + 'gadverdamme', + 'galbak', + 'gat', + 'gedoogzone', + 'geilneef', + 'gesodemieter', + 'godverdomme', + 'graftak', + 'gras maaien', + 'gratenkut', + 'greppeldel', + 'griet', + 'hoempert', + 'hoer', + 'hoerenbuurt', + 'hoerenloper', + 'hoerig', + 'hol', + 'hufter', + 'huisdealer', + 'johny', + 'kanen', + 'kettingzeug', + 'klaarkomen', + 'klerebeer', + 'klojo', + 'klooien', + 'klootjesvolk', + 'klootoog', + 'klootzak', + 'kloten', + 'knor', + 'kont', + 'kontneuken', + 'krentekakker', + 'kut', + 'kuttelikkertje', + 'kwakkie', + 'liefdesgrot', + 'lul', + 'lul-de-behanger', + 'lulhannes', + 'lummel', + 'mafketel', + 'matennaaier', + 'matje', + 'mof', + 'muts', + 'naaien', + 'naakt', + 'neuken', + 'neukstier', + 'nicht', + 'oetlul', + 'opgeilen', + 'opkankeren', + 'oprotten', + 'opsodemieteren', + 'op z\'n hondjes', + 'op z\'n sodemieter geven', + 'opzouten', + 'ouwehoer', + 'ouwehoeren', + 'ouwe rukker', + 'paal', + 'paardelul', + 'palen', + 'penoze', + 'piesen', + 'pijpbekkieg', + 'pijpen', + 'pik', + 'pleurislaaier', + 'poep', + 'poepen', + 'poot', + 'portiekslet', + 'pot', + 'potverdorie', + 'publiciteitsgeil', + 'raaskallen', + 'reet', + 'reetridder', + 'reet trappen, voor zijn', + 'remsporen', + 'reutelen', + 'rothoer', + 'rotzak', + 'rukhond', + 'rukken', + 'schatje', + 'schijt', + 'schijten', + 'schoft', + 'schuinsmarcheerder', + 'shit', + 'slempen', + 'slet', + 'sletterig', + 'slik mijn zaad', + 'snol', + 'spuiten', + 'standje', + 'standje-69', + 'stoephoer', + 'stootje', + 'stront', + 'sufferd', + 'tapijtnek', + 'teef', + 'temeier', + 'teringlijer', + 'toeter', + 'tongzoeng', + 'triootjeg', + 'trottoir prostituée', + 'trottoirteef', + 'vergallen', + 'verkloten', + 'verneuken', + 'viespeuk', + 'vingeren', + 'vleesroos', + 'voor jan lul', + 'voor jan-met-de-korte-achternaam', + 'watje', + 'welzijnsmafia', + 'wijf', + 'wippen', + 'wuftje', + 'zaadje', + 'zakkenwasser', + 'zeiken', + 'zeiker', + 'zuigen', + 'zuiplap' + ]; +} diff --git a/lib/localization/profanity/profanity_no.dart b/lib/localization/profanity/profanity_no.dart new file mode 100644 index 00000000..b5f7d734 --- /dev/null +++ b/lib/localization/profanity/profanity_no.dart @@ -0,0 +1,52 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityNo extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityNo([super.locale = 'no']); + + @override + List get profanityList => [ + 'asshole', + 'dritt', + 'drittsekk', + 'faen', + 'faen i helvete', + 'fan', + 'fanken', + 'fitte', + 'forbanna', + 'forbannet', + 'forjævlig', + 'fuck', + 'fy faen', + 'føkk', + 'føkka', + 'føkkings', + 'jævla', + 'jævlig', + 'helvete', + 'helvetet', + 'kuk', + 'kukene', + 'kuker', + 'morraknuller', + 'morrapuler', + 'nigger', + 'pakkis', + 'pikk', + 'pokker', + 'ræva', + 'ræven', + 'satan', + 'shit', + 'sinnsykt', + 'skitt', + 'sotrør', + 'ståpikk', + 'ståpikkene', + 'ståpikker', + 'svartheiteste' + ]; +} diff --git a/lib/localization/profanity/profanity_pl.dart b/lib/localization/profanity/profanity_pl.dart new file mode 100644 index 00000000..51081896 --- /dev/null +++ b/lib/localization/profanity/profanity_pl.dart @@ -0,0 +1,66 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityPl extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityPl([super.locale = 'pl']); + + @override + List get profanityList => [ + 'burdel', + 'burdelmama', + 'chuj', + 'chujnia', + 'ciota', + 'cipa', + 'cyc', + 'debil', + 'dmuchać', + 'do kurwy nędzy', + 'dupa', + 'dupek', + 'duperele', + 'dziwka', + 'fiut', + 'gówno', + 'gówno prawda', + 'huj', + 'huj ci w dupę', + 'jajco', + 'jajko', + 'ja pierdolę', + 'jebać', + 'jebany', + 'kurwa', + 'kurwy', + 'kutafon', + 'kutas', + 'lizać pałę', + 'obciągać chuja', + 'obciągać fiuta', + 'obciągać loda', + 'pieprzyć', + 'pierdolec', + 'pierdolić', + 'pierdolnąć', + 'pierdolnięty', + 'pierdoła', + 'pierdzieć', + 'pizda', + 'pojeb', + 'pojebany', + 'popierdolony', + 'robic loda', + 'robić loda', + 'ruchać', + 'rzygać', + 'skurwysyn', + 'sraczka', + 'srać', + 'suka', + 'syf', + 'wkurwiać', + 'zajebisty' + ]; +} diff --git a/lib/localization/profanity/profanity_pt.dart b/lib/localization/profanity/profanity_pt.dart new file mode 100644 index 00000000..dfb652a6 --- /dev/null +++ b/lib/localization/profanity/profanity_pt.dart @@ -0,0 +1,88 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityPt extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityPt([super.locale = 'pt']); + + @override + List get profanityList => [ + 'aborto', + 'amador', + 'ânus', + 'aranha', + 'ariano', + 'balalao', + 'bastardo', + 'bicha', + 'biscate', + 'bissexual', + 'boceta', + 'boob', + 'bosta', + 'braulio de borracha', + 'bumbum', + 'burro', + 'cabrao', + 'cacete', + 'cagar', + 'camisinha', + 'caralho', + 'cerveja', + 'chochota', + 'chupar', + 'clitoris', + 'cocaína', + 'coito', + 'colhoes', + 'comer', + 'cona', + 'consolo', + 'corno', + 'cu', + 'dar o rabo', + 'dum raio', + 'esporra', + 'fecal', + 'filho da puta', + 'foda', + 'foda-se', + 'foder', + 'frango assado', + 'gozar', + 'grelho', + 'heroína', + 'heterosexual', + 'homem gay', + 'homoerótico', + 'homosexual', + 'inferno', + 'lésbica', + 'lolita', + 'mama', + 'merda', + 'paneleiro', + 'passar um cheque', + 'pau', + 'peidar', + 'pênis', + 'pinto', + 'porra', + 'puta', + 'puta que pariu', + 'puta que te pariu', + 'queca', + 'sacanagem', + 'saco', + 'torneira', + 'transar', + 'vadia', + 'vai-te foder', + 'vai tomar no cu', + 'veado', + 'vibrador', + 'xana', + 'xochota' + ]; +} diff --git a/lib/localization/profanity/profanity_ro.dart b/lib/localization/profanity/profanity_ro.dart new file mode 100644 index 00000000..7a0b6f64 --- /dev/null +++ b/lib/localization/profanity/profanity_ro.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityRo extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityRo([super.locale = 'ro']); + + @override + List profanityList = [ + 'pizda', + 'muie', + 'fut', + 'cur', + 'căcat', + 'zdreanță', + 'bulangiu', + 'târfă', + 'pula', + 'coi', + 'suge', + 'băga-mi-aș', + 'mă-ta', + 'pulă', + 'foame', + 'curvă', + 'sex', + 'penis', + 'vagin', + 'spurcat', + 'prost', + 'mă-tii', + 'nasol', + 'fute', + 'huidi' + ]; +} diff --git a/lib/localization/profanity/profanity_ru.dart b/lib/localization/profanity/profanity_ru.dart new file mode 100644 index 00000000..3a8e188d --- /dev/null +++ b/lib/localization/profanity/profanity_ru.dart @@ -0,0 +1,163 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityRu extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityRu([super.locale = 'ru']); + + @override + List get profanityList => [ + 'bychara', + 'byk', + 'chernozhopyi', + 'dolboy\'eb', + 'ebalnik', + 'ebalo', + 'ebalom sch\'elkat', + 'gol', + 'mudack', + 'opizdenet', + 'osto\'eblo', + 'ostokhuitel\'no', + 'ot\'ebis', + 'otmudohat', + 'otpizdit', + 'otsosi', + 'padlo', + 'pedik', + 'perdet', + 'petuh', + 'pidar gnoinyj', + 'pizda', + 'pizdato', + 'pizdatyi', + 'piz\'det', + 'pizdetc', + 'pizdoi nakryt\'sja', + 'pizd\'uk', + 'piz`dyulina', + 'podi ku\'evo', + 'poeben', + 'po\'imat\' na konchik', + 'po\'iti posrat', + 'po khuy', + 'poluchit pizdy', + 'pososi moyu konfetku', + 'prissat', + 'proebat', + 'promudobl\'adsksya pizdopro\'ebina', + 'propezdoloch', + 'prosrat', + 'raspeezdeyi', + 'raspizdatyi', + 'raz\'yebuy', + 'raz\'yoba', + 's\'ebat\'sya', + 'shalava', + 'styervo', + 'sukin syn', + 'svodit posrat', + 'svoloch', + 'trakhat\'sya', + 'trimandoblydskiy pizdoproyob', + 'ubl\'yudok', + 'uboy', + 'u\'ebitsche', + 'vafl\'a', + 'vafli lovit', + 'v pizdu', + 'vyperdysh', + 'vzdrochennyi', + 'yeb vas', + 'za\'ebat', + 'zaebis', + 'zalupa', + 'zalupat', + 'zasranetc', + 'zassat', + 'zlo\'ebuchy', + 'бздёнок', + 'блядки', + 'блядовать', + 'блядство', + 'блядь', + 'бугор', + 'во пизду', + 'встать раком', + 'выёбываться', + 'гандон', + 'говно', + 'говнюк', + 'голый', + 'дать пизды', + 'дерьмо', + 'дрочить', + 'другой дразнится', + 'ёбарь', + 'ебать', + 'ебать-копать', + 'ебло', + 'ебнуть', + 'ёб твою мать', + 'жопа', + 'жополиз', + 'играть на кожаной флейте', + 'измудохать', + 'каждый дрочит как он хочет', + 'какая разница', + 'как два пальца обоссать', + 'курите мою трубку', + 'лысого в кулаке гонять', + 'малофья', + 'манда', + 'мандавошка', + 'мент', + 'муда', + 'мудило', + 'мудозвон', + 'наебать', + 'наебениться', + 'наебнуться', + 'на фиг', + 'на хуй', + 'на хую вертеть', + 'на хуя', + 'нахуячиться', + 'невебенный', + 'не ебет', + 'ни за хуй собачу', + 'ни хуя', + 'обнаженный', + 'обоссаться можно', + 'один ебётся', + 'опесдол', + 'офигеть', + 'охуеть', + 'охуительно', + 'половое сношение', + 'секс', + 'сиськи', + 'спиздить', + 'срать', + 'ссать', + 'траxать', + 'ты мне ваньку не валяй', + 'фига', + 'хапать', + 'хер с ней', + 'хер с ним', + 'хохол', + 'хрен', + 'хуёво', + 'хуёвый', + 'хуем груши околачивать', + 'хуеплет', + 'хуило', + 'хуиней страдать', + 'хуиня', + 'хуй', + 'хуйнуть', + 'хуй пинать' + ]; +} diff --git a/lib/localization/profanity/profanity_sk.dart b/lib/localization/profanity/profanity_sk.dart new file mode 100644 index 00000000..31bd3f18 --- /dev/null +++ b/lib/localization/profanity/profanity_sk.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanitySk extends Profanity { + /// Creates a new instance of the profanity list. + ProfanitySk([super.locale = 'sk']); + + @override + List profanityList = [ + 'kurva', + 'kokot', + 'piča', + 'jebat', + 'hovno', + 'debil', + 'idiot', + 'čurák', + 'srať', + 'skurvený', + 'penis', + 'vagína', + 'zadok', + 'krava', + 'hovädá', + 'mrdat', + 'päsť', + 'šukať', + 'kokotina', + 'kunda', + 'kretén', + 'čúrať', + 'dildo', + 'mrdka', + 'porno' + ]; +} diff --git a/lib/localization/profanity/profanity_sl.dart b/lib/localization/profanity/profanity_sl.dart new file mode 100644 index 00000000..c22f1617 --- /dev/null +++ b/lib/localization/profanity/profanity_sl.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanitySl extends Profanity { + /// Creates a new instance of the profanity list. + ProfanitySl([super.locale = 'sl']); + + @override + List profanityList = [ + 'kurba', + 'pizda', + 'jebati', + 'fuka', + 'pička', + 'prasic', + 'gnoj', + 'govno', + 'kreten', + 'idiot', + 'rit', + 'kita', + 'penis', + 'vagina', + 'prijebana', + 'mrdat', + 'šupak', + 'kurčina', + 'šupčina', + 'kurvinski sin', + 'jebeno', + 'peder', + 'kurac', + 'drek', + 'sestra' + ]; +} diff --git a/lib/localization/profanity/profanity_sq.dart b/lib/localization/profanity/profanity_sq.dart new file mode 100644 index 00000000..fc0d6567 --- /dev/null +++ b/lib/localization/profanity/profanity_sq.dart @@ -0,0 +1,36 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanitySq extends Profanity { + /// Creates a new instance of the profanity list. + ProfanitySq([super.locale = 'sq']); + + @override + List profanityList = [ + 'mut', + 'pidhë', + 'kurriz', + 'budallë', + 'qelbësirë', + 'baxhellë', + 'futu', + 'sëmurë', + 'top', + 'kurvë', + 'bythë', + 'goxha', + 'kryq', + 'penis', + 'vaginë', + 'përçmuar', + 'idiot', + 'kokëderr', + 'shik', + 'çmendur', + 'kokë', + 'qire', + 'pallim', + 'trapi' + ]; +} diff --git a/lib/localization/profanity/profanity_sv.dart b/lib/localization/profanity/profanity_sv.dart new file mode 100644 index 00000000..2888dbe7 --- /dev/null +++ b/lib/localization/profanity/profanity_sv.dart @@ -0,0 +1,55 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanitySv extends Profanity { + /// Creates a new instance of the profanity list. + ProfanitySv([super.locale = 'sv']); + + @override + List get profanityList => [ + 'arsle', + 'brutta', + 'discofitta', + 'dra åt helvete', + 'fan', + 'fitta', + 'fittig', + 'för helvete', + 'helvete', + 'hård', + 'jävlar', + 'knulla', + 'kuk', + 'kuksås', + 'kötthuvud', + 'köttnacke', + 'moona', + 'moonade', + 'moonar', + 'moonat', + 'mutta', + 'nigger', + 'neger', + 'olla', + 'pippa', + 'pitt', + 'prutt', + 'pök', + 'runka', + 'röv', + 'rövhål', + 'rövknulla', + 'satan', + 'skita', + 'skit ner dig', + 'skäggbiff', + 'snedfitta', + 'snefitta', + 'stake', + 'subba', + 'sås', + 'sätta på', + 'tusan' + ]; +} diff --git a/lib/localization/profanity/profanity_sw.dart b/lib/localization/profanity/profanity_sw.dart new file mode 100644 index 00000000..1abda2e8 --- /dev/null +++ b/lib/localization/profanity/profanity_sw.dart @@ -0,0 +1,36 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanitySw extends Profanity { + /// Creates a new instance of the profanity list. + ProfanitySw([super.locale = 'sw']); + + @override + List profanityList = [ + 'mavi', + 'mjinga', + 'mende', + 'mtoto', + 'chura', + 'kitumbua', + 'mburugu', + 'mavi ya kuku', + 'punda', + 'pumwani', + 'puuzi', + 'puum', + 'tumbiri', + 'kinyesi', + 'mchawi', + 'kichaa', + 'malaya', + 'makende', + 'mtumbua', + 'masikini', + 'kipepeo', + 'kupiga', + 'kuchafua', + 'kutombwa' + ]; +} diff --git a/lib/localization/profanity/profanity_ta.dart b/lib/localization/profanity/profanity_ta.dart new file mode 100644 index 00000000..8cc63522 --- /dev/null +++ b/lib/localization/profanity/profanity_ta.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityTa extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityTa([super.locale = 'ta']); + + @override + List profanityList = [ + 'நீயென்ன', + 'ஓல்', + 'வண்டி', + 'சூது', + 'பன்றி', + 'கூதி', + 'வேலைக்காரி', + 'சூறை', + 'குரங்கு', + 'கழி', + 'சூது', + 'நாக்கு', + 'மடையன்', + 'கூதி', + 'ஓக்கு', + 'ஓழுங்கிய', + 'தமிடா', + 'வேலைக்காரி', + 'சூது', + 'குட்டி', + 'சூறை', + 'வேலைக்காரி', + 'சூது', + 'குரங்கு', + 'கழி' + ]; +} diff --git a/lib/localization/profanity/profanity_th.dart b/lib/localization/profanity/profanity_th.dart new file mode 100644 index 00000000..e4f67c77 --- /dev/null +++ b/lib/localization/profanity/profanity_th.dart @@ -0,0 +1,43 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityTh extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityTh([super.locale = 'th']); + + @override + List get profanityList => [ + 'กระดอ', + 'กระเด้า', + 'กระหรี่', + 'กะปิ', + 'กู', + 'ขี้', + 'ควย', + 'จิ๋ม', + 'จู๋', + 'เจ๊ก', + 'เจี๊ยว', + 'ดอกทอง', + 'ตอแหล', + 'ตูด', + 'น้ําแตก', + 'มึง', + 'แม่ง', + 'เย็ด', + 'รูตูด', + 'ล้างตู้เย็น', + 'ส้นตีน', + 'สัด', + 'เสือก', + 'หญิงชาติชั่ว', + 'หลั่ง', + 'ห่า', + 'หํา', + 'หี', + 'เหี้ย', + 'อมนกเขา', + 'ไอ้ควาย' + ]; +} diff --git a/lib/localization/profanity/profanity_tr.dart b/lib/localization/profanity/profanity_tr.dart new file mode 100644 index 00000000..2175a14c --- /dev/null +++ b/lib/localization/profanity/profanity_tr.dart @@ -0,0 +1,156 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityTr extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityTr([super.locale = 'tr']); + + @override + List get profanityList => [ + 'am', + 'amcığa', + 'amcığı', + 'amcığın', + 'amcık', + 'amcıklar', + 'amcıklara', + 'amcıklarda', + 'amcıklardan', + 'amcıkları', + 'amcıkların', + 'amcıkta', + 'amcıktan', + 'amı', + 'amlar', + 'çingene', + 'Çingenede', + 'Çingeneden', + 'Çingeneler', + 'Çingenelerde', + 'Çingenelerden', + 'Çingenelere', + 'Çingeneleri', + 'Çingenelerin', + 'Çingenenin', + 'Çingeneye', + 'Çingeneyi', + 'göt', + 'göte', + 'götler', + 'götlerde', + 'götlerden', + 'götlere', + 'götleri', + 'götlerin', + 'götte', + 'götten', + 'götü', + 'götün', + 'götveren', + 'götverende', + 'götverenden', + 'götverene', + 'götvereni', + 'götverenin', + 'götverenler', + 'götverenlerde', + 'götverenlerden', + 'götverenlere', + 'götverenleri', + 'götverenlerin', + 'kaltağa', + 'kaltağı', + 'kaltağın', + 'kaltak', + 'kaltaklar', + 'kaltaklara', + 'kaltaklarda', + 'kaltaklardan', + 'kaltakları', + 'kaltakların', + 'kaltağın', + 'orospu', + 'orospuda', + 'orospudan', + 'orospular', + 'orospulara', + 'orospularda', + 'orospulardan', + 'orospuları', + 'orospuların', + 'orospunun', + 'orospuya', + 'orospuyu', + 'otuz birci', + 'otuz bircide', + 'otuz birciden', + 'otuz birciler', + 'otuz bircilerde', + 'otuz bircilerden', + 'otuz bircilere', + 'otuz bircileri', + 'otuz bircilerin', + 'otuz bircinin', + 'otuz birciye', + 'otuz birciyi', + 'saksocu', + 'saksocuda', + 'saksocudan', + 'saksocular', + 'saksoculara', + 'saksocularda', + 'saksoculardan', + 'saksocuları', + 'saksocuların', + 'saksocunun', + 'saksocuya', + 'saksocuyu', + 'sıçmak', + 'sik', + 'sike', + 'siker', + 'sikmez', + 'siki', + 'sikilir', + 'sikilmez', + 'sikin', + 'sikler', + 'siklerde', + 'siklerden', + 'siklere', + 'sikleri', + 'siklerin', + 'sikmek', + 'sikmemek', + 'sikte', + 'sikten', + 'siktir', + 'siktirir', + 'siktirmez', + 'taşağa', + 'taşağı', + 'taşağın', + 'taşak', + 'taşaklar', + 'taşaklara', + 'taşaklarda', + 'taşaklardan', + 'taşakları', + 'taşakların', + 'taşakta', + 'taşaktan', + 'yarağa', + 'yarağı', + 'yarağın', + 'yarak', + 'yaraklar', + 'yaraklara', + 'yaraklarda', + 'yaraklardan', + 'yarakları', + 'yarakların', + 'yarakta', + 'yaraktan' + ]; +} diff --git a/lib/localization/profanity/profanity_uk.dart b/lib/localization/profanity/profanity_uk.dart new file mode 100644 index 00000000..f2f110d6 --- /dev/null +++ b/lib/localization/profanity/profanity_uk.dart @@ -0,0 +1,37 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityUk extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityUk([super.locale = 'uk']); + + @override + List profanityList = [ + 'бля', + 'пизда', + 'хуй', + 'гандон', + 'ебать', + 'сучка', + 'жопа', + 'мудак', + 'сука', + 'шлюха', + 'срать', + 'говно', + 'дрочить', + 'долбоеб', + 'ебаный', + 'жопа', + 'член', + 'сикать', + 'дебил', + 'лох', + 'хуила', + 'педик', + 'трахать', + 'ублюдок', + 'манда' + ]; +} diff --git a/lib/localization/profanity/profanity_vi.dart b/lib/localization/profanity/profanity_vi.dart new file mode 100644 index 00000000..b36602eb --- /dev/null +++ b/lib/localization/profanity/profanity_vi.dart @@ -0,0 +1,38 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityVi extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityVi([super.locale = 'vi']); + + @override + List profanityList = [ + 'địt', + 'lồn', + 'buồi', + 'cặc', + 'đụ', + 'chịch', + 'vãi lồn', + 'điếm', + 'đĩ', + 'dâm', + 'dâm đãng', + 'đéo', + 'cái con mẹ mày', + 'cái lồn', + 'vãi đái', + 'đụ mẹ', + 'con cặc', + 'con cu', + 'tinh trùng', + 'con chim', + 'dương vật', + 'âm đạo', + 'mẹ kiếp', + 'phò', + 'mẹ mày', + 'con đĩ' + ]; +} diff --git a/lib/localization/profanity/profanity_zh.dart b/lib/localization/profanity/profanity_zh.dart new file mode 100644 index 00000000..b48dae38 --- /dev/null +++ b/lib/localization/profanity/profanity_zh.dart @@ -0,0 +1,331 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityZh extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityZh([super.locale = 'zh']); + + @override + List profanityList = [ + '13.', + '13点', + '三级片', + '下三烂', + '下贱', + '个老子的', + '九游', + '乳', + '乳交', + '乳头', + '乳房', + '乳波臀浪', + '交配', + '仆街', + '他奶奶', + '他奶奶的', + '他奶娘的', + '他妈', + '他妈ㄉ王八蛋', + '他妈地', + '他妈的', + '他娘', + '他马的', + '你个傻比', + '你他马的', + '你全家', + '你奶奶的', + '你她马的', + '你妈', + '你妈的', + '你娘', + '你娘卡好', + '你娘咧', + '你它妈的', + '你它马的', + '你是鸡', + '你是鸭', + '你马的', + '做爱', + '傻比', + '傻逼', + '册那', + '军妓', + '几八', + '几叭', + '几巴', + '几芭', + '刚度', + '刚瘪三', + '包皮', + '十三点', + '卖B', + '卖比', + '卖淫', + '卵', + '卵子', + '双峰微颤', + '口交', + '口肯', + '叫床', + '吃屎', + '后庭', + '吹箫', + '塞你公', + '塞你娘', + '塞你母', + '塞你爸', + '塞你老师', + '塞你老母', + '处女', + '外阴', + '大卵子', + '大卵泡', + '大鸡巴', + '奶', + '奶奶的熊', + '奶子', + '奸', + '奸你', + '她妈地', + '她妈的', + '她马的', + '妈B', + '妈个B', + '妈个比', + '妈个老比', + '妈妈的', + '妈比', + '妈的', + '妈的B', + '妈逼', + '妓', + '妓女', + '妓院', + '妳她妈的', + '妳妈的', + '妳娘的', + '妳老母的', + '妳马的', + '姘头', + '姣西', + '姦', + '娘个比', + '娘的', + '婊子', + '婊子养的', + '嫖娼', + '嫖客', + '它妈地', + '它妈的', + '密洞', + '射你', + '射精', + '小乳头', + '小卵子', + '小卵泡', + '小瘪三', + '小肉粒', + '小骚比', + '小骚货', + '小鸡巴', + '小鸡鸡', + '屁眼', + '屁股', + '屄', + '屌', + '巨乳', + '干x娘', + '干七八', + '干你', + '干你妈', + '干你娘', + '干你老母', + '干你良', + '干妳妈', + '干妳娘', + '干妳老母', + '干妳马', + '干您娘', + '干机掰', + '干死CS', + '干死GM', + '干死你', + '干死客服', + '幹', + '强奸', + '强奸你', + '性', + '性交', + '性器', + '性无能', + '性爱', + '情色', + '想上你', + '懆您妈', + '懆您娘', + '懒8', + '懒八', + '懒叫', + '懒教', + '成人', + '我操你祖宗十八代', + '扒光', + '打炮', + '打飞机', + '抽插', + '招妓', + '插你', + '插死你', + '撒尿', + '操你', + '操你全家', + '操你奶奶', + '操你妈', + '操你娘', + '操你祖宗', + '操你老妈', + '操你老母', + '操妳', + '操妳全家', + '操妳妈', + '操妳娘', + '操妳祖宗', + '操机掰', + '操比', + '操逼', + '放荡', + '日他娘', + '日你', + '日你妈', + '日你老娘', + '日你老母', + '日批', + '月经', + '机八', + '机巴', + '机机歪歪', + '杂种', + '浪叫', + '淫', + '淫乱', + '淫妇', + '淫棍', + '淫水', + '淫秽', + '淫荡', + '淫西', + '湿透的内裤', + '激情', + '灨你娘', + '烂货', + '烂逼', + '爛', + '狗屁', + '狗日', + '狗狼养的', + '玉杵', + '王八蛋', + '瓜娃子', + '瓜婆娘', + '瓜批', + '瘪三', + '白烂', + '白痴', + '白癡', + '祖宗', + '私服', + '笨蛋', + '精子', + '老二', + '老味', + '老母', + '老瘪三', + '老骚比', + '老骚货', + '肉壁', + '肉棍子', + '肉棒', + '肉缝', + '肏', + '肛交', + '肥西', + '色情', + '花柳', + '荡妇', + '賤', + '贝肉', + '贱B', + '贱人', + '贱货', + '贼你妈', + '赛你老母', + '赛妳阿母', + '赣您娘', + '轮奸', + '迷药', + '逼', + '逼样', + '野鸡', + '阳具', + '阳萎', + '阴唇', + '阴户', + '阴核', + '阴毛', + '阴茎', + '阴道', + '阴部', + '雞巴', + '靠北', + '靠母', + '靠爸', + '靠背', + '靠腰', + '驶你公', + '驶你娘', + '驶你母', + '驶你爸', + '驶你老师', + '驶你老母', + '骚比', + '骚货', + '骚逼', + '鬼公', + '鸡8', + '鸡八', + '鸡叭', + '鸡吧', + '鸡奸', + '鸡巴', + '鸡芭', + '鸡鸡', + '龟儿子', + '龟头', + '𨳒', + '陰莖', + '㞗', + '尻', + '𨳊', + '鳩', + '𡳞', + '𨶙', + '撚', + '𨳍', + '柒', + '閪', + '仆街', + '咸家鏟', + '冚家鏟', + '咸家伶', + '冚家拎', + '笨實', + '粉腸', + '屎忽', + '躝癱', + '你老闆', + '你老味', + '你老母', + '硬膠' + ]; +} diff --git a/lib/localization/profanity/profanity_zh_hant.dart b/lib/localization/profanity/profanity_zh_hant.dart new file mode 100644 index 00000000..8eb8b4a9 --- /dev/null +++ b/lib/localization/profanity/profanity_zh_hant.dart @@ -0,0 +1,38 @@ +// coverage:ignore-file +import 'profanity.dart'; + +/// English profanity list. +class ProfanityZhHant extends Profanity { + /// Creates a new instance of the profanity list. + ProfanityZhHant([super.locale = 'zh_hant']); + + @override + List profanityList = [ + '他媽的', + '幹', + '操', + '屌', + '傻逼', + '逼', + '媽的', + '雞巴', + '蠢貨', + '白癡', + '婊子', + '肏', + '笨蛋', + '死', + '屄', + '屁眼', + '騷貨', + '賤人', + '王八蛋', + '混蛋', + '廢物', + '滾', + '陰道', + '陰莖', + '乳房', + '乳頭' + ]; +} diff --git a/lib/src/form_builder_validators.dart b/lib/src/form_builder_validators.dart index 452d3b14..c6ab89dd 100644 --- a/lib/src/form_builder_validators.dart +++ b/lib/src/form_builder_validators.dart @@ -1691,6 +1691,27 @@ class FormBuilderValidators { checkNullOrEmpty: checkNullOrEmpty, ).validate; + /// [FormFieldValidator] that requires the field's value to contain profanity. + /// + /// ## Parameters: + /// - [profanityList] The list of profanity words. + /// - [useAllLocales] Whether to use all locales (default: false). + /// - [errorText] The error message when the value contains profanity. + /// - [checkNullOrEmpty] Whether to check for null or empty values. + /// {@macro profanity_template} + static FormFieldValidator profanity({ + List? profanityList, + bool useAllLocales = false, + String? errorText, + bool checkNullOrEmpty = true, + }) => + ProfanityValidator( + profanityList: profanityList, + useAllLocales: useAllLocales, + errorText: errorText, + checkNullOrEmpty: checkNullOrEmpty, + ).validate; + /// [FormFieldValidator] that requires the field's value to be a valid /// UUID. /// diff --git a/lib/src/usecase/profanity_validator.dart b/lib/src/usecase/profanity_validator.dart new file mode 100644 index 00000000..a6121b8f --- /dev/null +++ b/lib/src/usecase/profanity_validator.dart @@ -0,0 +1,95 @@ +import '../../localization/l10n.dart'; +import '../../localization/profanity/profanity.dart'; +import '../base_validator.dart'; + +/// {@template profanity_validator_template} +/// [ProfanityValidator] extends [BaseValidator] to validate if a string contains profanity. +/// +/// This validator checks if the value is in the list of disallowed profanity words. +/// +/// ## Parameters: +/// +/// - [profanityList] An optional list of disallowed profanity. +/// - [errorText] The error message returned if the validation fails. +/// - [checkNullOrEmpty] Whether to check if the value is null or empty. +/// +/// {@endtemplate} +class ProfanityValidator extends BaseValidator { + /// Constructor for the profanity validator. + ProfanityValidator({ + List? profanityList, + this.useAllLocales = false, + super.errorText, + super.checkNullOrEmpty, + }) : customErrorText = errorText, + profanityList = profanityList ?? + (useAllLocales + ? Profanity.profanityListAll() + : Profanity.of(FormBuilderLocalizations.current.localeName) + .profanityList); + + /// An optional list of disallowed profanity. + final List profanityList; + + /// Whether to use all locales to check for profanity. + final bool useAllLocales; + + /// The custom error message returned if the value is invalid. + final String? customErrorText; + + @override + String get translatedErrorText => FormBuilderLocalizations.current + .profanityErrorText(profanityList.join(', ')); + + @override + String? validateValue(String valueCandidate) { + final List profanityFound = profanityAllFound(valueCandidate); + if (profanityFound.isNotEmpty) { + return customErrorText ?? + FormBuilderLocalizations.current + .profanityErrorText(profanityFound.join(', ')); + } + + return null; + } + + /// Returns a list of profanity words found in the value. + List profanityAllFound(String valueCandidate) { + final RegExp regExp = RegExp(r'\b\w+\b'); + final List inputSplit = regExp + .allMatches(valueCandidate) + .map((RegExpMatch match) => match.group(0)!.toLowerCase()) + .toList(); + + List profanityFound = []; + for (String word in profanityList) { + if (inputSplit.contains(word.toLowerCase())) { + profanityFound.add(word); + } + } + return profanityFound; + } + + /// Returns the value with profanity words censored. + String profanityCensored(String valueCandidate, {String? replaceWith}) { + final RegExp regExp = RegExp(r'\b\w+\b'); + final Iterable matches = regExp.allMatches(valueCandidate); + + StringBuffer buffer = StringBuffer(); + int lastMatchEnd = 0; + + for (final RegExpMatch match in matches) { + buffer.write(valueCandidate.substring(lastMatchEnd, match.start)); + String word = match.group(0)!; + if (profanityList.contains(word.toLowerCase())) { + buffer.write(replaceWith ?? '*' * word.length); + } else { + buffer.write(word); + } + lastMatchEnd = match.end; + } + + buffer.write(valueCandidate.substring(lastMatchEnd)); + return buffer.toString(); + } +} diff --git a/lib/src/usecase/usecase.dart b/lib/src/usecase/usecase.dart index 0d3a4ba5..d3a330d1 100644 --- a/lib/src/usecase/usecase.dart +++ b/lib/src/usecase/usecase.dart @@ -5,5 +5,6 @@ export 'isbn_validator.dart'; export 'json_validator.dart'; export 'language_code_validator.dart'; export 'licenseplate_validator.dart'; +export 'profanity_validator.dart'; export 'uuid_validator.dart'; export 'vin_validator.dart'; diff --git a/test/src/localization/profanity/profanity_test.dart b/test/src/localization/profanity/profanity_test.dart new file mode 100644 index 00000000..d228255f --- /dev/null +++ b/test/src/localization/profanity/profanity_test.dart @@ -0,0 +1,82 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:form_builder_validators/form_builder_validators.dart'; +import 'package:form_builder_validators/localization/profanity/profanity_en.dart'; + +class ProfanityTest extends Profanity { + ProfanityTest() : super('test'); + + @override + List get profanityList => + ['badword1', 'badword2', 'badword3']; +} + +void main() { + Profanity.supportedLocales = [ProfanityEn(), ProfanityTest()]; + + group('Profanity -', () { + test('should return the correct locale name', () { + // Arrange + final Profanity profanity = ProfanityTest(); + + // Act & Assert + expect(profanity.localeName, equals('test')); + }); + + test('should return the correct profanity list for the given locale', () { + // Arrange + final Profanity profanity = ProfanityTest(); + + // Act & Assert + expect(profanity.profanityList, + equals(['badword1', 'badword2', 'badword3'])); + }); + + test( + 'should return the default profanity list when locale is not supported', + () { + // Act + final Profanity profanity = Profanity.of('unsupported_locale'); + + // Assert + expect(profanity.localeName, equals('en')); // Default to 'en' + expect(profanity.profanityList, + equals(ProfanityEn().profanityList)); // Default to 'en' list + }); + + test('should return the profanity list for all supported locales', () { + // Act + final List profanityList = Profanity.profanityListAll(); + + // Assert + expect(profanityList, + containsAll(['badword1', 'badword2', 'badword3'])); + }); + + test('should return the correct profanity lists for multiple locales', () { + // Arrange + final List locales = ['en', 'unsupported_locale', 'test']; + + // Act + final List profanities = Profanity.ofLocales(locales); + final List profanityList = Profanity.profanityListOf(profanities); + + // Assert + expect(profanities.length, equals(3)); + expect(profanityList, + containsAll(['badword1', 'badword2', 'badword3'])); + }); + + test('should return the correct profanity list for multiple locales', () { + // Arrange + final List locales = ['test']; + + // Act + final List profanityList = + Profanity.profanityListOfLocales(locales); + + // Assert + expect(profanityList, + containsAll(['badword1', 'badword2', 'badword3'])); + }); + }); +} diff --git a/test/src/usecase/profanity_validator_test.dart b/test/src/usecase/profanity_validator_test.dart new file mode 100644 index 00000000..2373aed2 --- /dev/null +++ b/test/src/usecase/profanity_validator_test.dart @@ -0,0 +1,184 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:form_builder_validators/form_builder_validators.dart'; + +void main() { + final List profanityList = [ + 'badword1', + 'badword2', + 'badword3', + ]; + const String customErrorMessage = + 'This text contains inappropriate language.'; + + group('ProfanityValidator -', () { + test('should return null for strings without profanity', () { + // Arrange + final ProfanityValidator validator = + ProfanityValidator(profanityList: profanityList); + + // Act & Assert + expect(validator.validate('This is a clean sentence.'), isNull); + expect(validator.validate('Nothing wrong here!'), isNull); + }); + + test('should return the default error message for strings with profanity', + () { + // Arrange + final ProfanityValidator validator = + ProfanityValidator(profanityList: profanityList); + const String badSentence = 'This is badword1.'; + const String badSentence2 = 'Another badword2 example.'; + + // Act & Assert + expect( + validator.validate(badSentence), + equals( + FormBuilderLocalizations.current.profanityErrorText( + validator.profanityAllFound(badSentence).join(', ')), + ), + ); + expect( + validator.validate(badSentence2), + equals( + FormBuilderLocalizations.current.profanityErrorText( + validator.profanityAllFound(badSentence2).join(', ')), + ), + ); + }); + + test('should return the custom error message for strings with profanity', + () { + // Arrange + final ProfanityValidator validator = ProfanityValidator( + profanityList: profanityList, + errorText: customErrorMessage, + ); + + // Act & Assert + expect( + validator.validate('This is badword1.'), equals(customErrorMessage)); + expect(validator.validate('Another badword2 example.'), + equals(customErrorMessage)); + }); + + test( + 'should return null when the value is an empty string and null check is disabled', + () { + // Arrange + final ProfanityValidator validator = ProfanityValidator( + profanityList: profanityList, + checkNullOrEmpty: false, + ); + const String value = ''; + + // Act & Assert + final String? result = validator.validate(value); + expect(result, isNull); + }); + + test('should return null when the value is null and null check is disabled', + () { + // Arrange + final ProfanityValidator validator = ProfanityValidator( + profanityList: profanityList, + checkNullOrEmpty: false, + ); + const String? value = null; + + // Act & Assert + final String? result = validator.validate(value); + expect(result, isNull); + }); + + test('should return a list of profanity words found in the string', () { + // Arrange + final ProfanityValidator validator = ProfanityValidator( + profanityList: profanityList, + ); + + // Act & Assert + expect(validator.profanityAllFound('This is badword1 and badword3.'), + equals(['badword1', 'badword3'])); + expect( + validator.profanityAllFound('Clean sentence.'), equals([])); + }); + + test('should return the string with profanity words censored', () { + // Arrange + final ProfanityValidator validator = ProfanityValidator( + profanityList: profanityList, + ); + + // Act & Assert + const String badword1 = 'badword1'; + const String badword2 = 'badword2'; + const String badword3 = 'badword3'; + expect( + validator.profanityCensored('This is $badword1 and $badword3.'), + equals( + 'This is ${'*' * badword1.length} and ${'*' * badword3.length}.')); + expect(validator.profanityCensored('Another $badword2 example.'), + equals('Another ${'*' * badword2.length} example.')); + }); + + test( + 'should return the string with profanity words replaced with a custom string', + () { + // Arrange + final ProfanityValidator validator = ProfanityValidator( + profanityList: profanityList, + ); + + // Act & Assert + expect( + validator.profanityCensored('This is badword1 and badword3.', + replaceWith: '[censored]'), + equals('This is [censored] and [censored].')); + expect( + validator.profanityCensored('Another badword2 example.', + replaceWith: '[censored]'), + equals('Another [censored] example.')); + }); + + test( + 'should use all locales for profanity check when useAllLocales is true', + () { + // Arrange + final ProfanityValidator validator = ProfanityValidator( + useAllLocales: true, + ); + + // Act & Assert + expect(validator.validate('This is shit.'), isNotNull); + expect(validator.validate('Another apeshit example.'), isNotNull); + }); + + test( + 'should initialize with empty constructor and use default profanity list', + () { + // Arrange + final ProfanityValidator validator = ProfanityValidator(); + + // Act & Assert + expect(validator.validate('This is a clean sentence.'), isNull); + expect(validator.validate('shit'), isNotNull); + }); + + test('should return translated error text', () { + // Arrange + final ProfanityValidator validator = ProfanityValidator( + profanityList: profanityList, + ); + + // Act + final String translatedError = validator.translatedErrorText; + + // Assert + expect( + translatedError, + equals(FormBuilderLocalizations.current + .profanityErrorText(profanityList.join(', '))), + ); + }); + }); +}