diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..6b83d97
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,46 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Listen for Xdebug",
+ "type": "php",
+ "request": "launch",
+ "port": 9000
+ },
+ {
+ "name": "Launch currently open script",
+ "type": "php",
+ "request": "launch",
+ "program": "${file}",
+ "cwd": "${fileDirname}",
+ "port": 0,
+ "runtimeArgs": ["-dxdebug.start_with_request=yes"],
+ "env": {
+ "XDEBUG_MODE": "debug,develop",
+ "XDEBUG_CONFIG": "client_port=${port}"
+ }
+ },
+ {
+ "name": "Launch Built-in web server",
+ "type": "php",
+ "request": "launch",
+ "runtimeArgs": [
+ "-dxdebug.mode=debug",
+ "-dxdebug.start_with_request=yes",
+ "-S",
+ "localhost:0"
+ ],
+ "program": "",
+ "cwd": "${workspaceRoot}",
+ "port": 9000,
+ "serverReadyAction": {
+ "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
+ "uriFormat": "http://localhost:%s",
+ "action": "openExternally"
+ }
+ }
+ ]
+}
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..33db831
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,28 @@
+# Create a php 7.4 image with apache and run the main.php
+# install xdebug and enable it
+
+FROM php:7.4-apache
+
+COPY . /var/www/html/
+
+RUN pecl install xdebug-2.9.8 \
+ && docker-php-ext-enable xdebug
+
+# INSTALL intl
+RUN apt-get update && apt-get install -y \
+ libicu-dev \
+ && docker-php-ext-configure intl \
+ && docker-php-ext-install intl
+
+RUN echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo "xdebug.remote_port=9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo "xdebug.remote_handler=dbgp" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo "xdebug.remote_autostart=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo "xdebug.remote_connect_back=0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo "xdebug.remote_host=host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
+
+# RUN FILE
+CMD ["php", "/var/www/html/main.php"]
+
+
+
diff --git a/README.md b/README.md
index e2043f0..f3dcf54 100755
--- a/README.md
+++ b/README.md
@@ -1,7 +1,11 @@
# Profanity PHP
+[](https://www.codefactor.io/repository/github/friendshipking/profanity_php)
+
Selfishly made for my own use. Open Sourcing it to recieve - `what an ugly code!` compliment every once in a while.
+Has some cool functions though.
+
Uses [List of Dirty, Naughty, Obscene, and Otherwise Bad Words](https://github.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words.git)
Take a look around the code and try to figure out what it does LOL.
diff --git a/languages/ar.php b/languages/ar.php
index afaa1a8..62d0b2a 100755
--- a/languages/ar.php
+++ b/languages/ar.php
@@ -1,6 +1,6 @@
0, 'buzna' => 1, 'čumět' => 2, 'čurák' => 3, 'debil' => 4, 'do piče' => 5, 'do prdele' => 6, 'dršťka' => 7, 'držka' => 8, 'flundra' => 9, 'hajzl' => 10, 'hovno' => 11, 'chcanky' => 12, 'chuj' => 13, 'jebat' => 14, 'kokot' => 15, 'kokotina' => 16, 'koňomrd' => 17, 'kunda' => 18, 'kurva' => 19, 'mamrd' => 20, 'mrdat' => 21, 'mrdka' => 22, 'mrdník' => 23, 'oslošoust' => 24, 'piča' => 25, 'píčus' => 26, 'píchat' => 27, 'pizda' => 28, 'prcat' => 29, 'prdel' => 30, 'prdelka' => 31, 'sračka' => 32, 'srát' => 33, 'šoustat' => 34, 'šulin' => 35, 'vypíčenec' => 36, 'zkurvit' => 37, 'zkurvysyn' => 38, 'zmrd' => 39, 'žrát' => 40,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/da.php b/languages/da.php
index 0210d9a..eabbc6d 100755
--- a/languages/da.php
+++ b/languages/da.php
@@ -1,7 +1,7 @@
0, 'bøsserøv' => 1, 'cock' => 2, 'fisse' => 3, 'fissehår' => 4, 'fuck' => 5, 'hestepik' => 6, 'kussekryller' => 7, 'lort' => 8, 'luder' => 9, 'pik' => 10, 'pikhår' => 11, 'pikslugeri' => 12, 'piksutteri' => 13, 'pis' => 14, 'røv' => 15, 'røvhul' => 16, 'røvskæg' => 17, 'røvspræke' => 18, 'shit' => 19,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/de.php b/languages/de.php
index 42d6a87..42e77d8 100755
--- a/languages/de.php
+++ b/languages/de.php
@@ -1,7 +1,7 @@
0, 'arsch' => 1, 'arschficker' => 2, 'arschlecker' => 3, 'arschloch' => 4, 'bimbo' => 5, 'bratze' => 6, 'bumsen' => 7, 'bonze' => 8, 'dödel' => 9, 'fick' => 10, 'ficken' => 11, 'flittchen' => 12, 'fotze' => 13, 'fratze' => 14, 'hackfresse' => 15, 'hure' => 16, 'hurensohn' => 17, 'ische' => 18, 'kackbratze' => 19, 'kacke' => 20, 'kacken' => 21, 'kackwurst' => 22, 'kampflesbe' => 23, 'kanake' => 24, 'kimme' => 25, 'lümmel' => 26, 'MILF' => 27, 'möpse' => 28, 'morgenlatte' => 29, 'möse' => 30, 'mufti' => 31, 'muschi' => 32, 'nackt' => 33, 'neger' => 34, 'nigger' => 35, 'nippel' => 36, 'nutte' => 37, 'onanieren' => 38, 'orgasmus' => 39, 'penis' => 40, 'pimmel' => 41, 'pimpern' => 42, 'pinkeln' => 43, 'pissen' => 44, 'pisser' => 45, 'popel' => 46, 'poppen' => 47, 'porno' => 48, 'reudig' => 49, 'rosette' => 50, 'schabracke' => 51, 'schlampe' => 52, 'scheiße' => 53, 'scheisser' => 54, 'schiesser' => 55, 'schnackeln' => 56, 'schwanzlutscher' => 57, 'schwuchtel' => 58, 'tittchen' => 59, 'titten' => 60, 'vögeln' => 61, 'vollpfosten' => 62, 'wichse' => 63, 'wichsen' => 64, 'wichser' => 65,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/en.php b/languages/en.php
index d827eb6..a839bd7 100755
--- a/languages/en.php
+++ b/languages/en.php
@@ -1,7 +1,7 @@
0, '2 girls 1 cup' => 1, 'acrotomophilia' => 2, 'alabama hot pocket' => 3, 'alaskan pipeline' => 4, 'anal' => 5, 'anilingus' => 6, 'anus' => 7, 'apeshit' => 8, 'arsehole' => 9, 'ass' => 10, 'asshole' => 11, 'assmunch' => 12, 'auto erotic' => 13, 'autoerotic' => 14, 'babeland' => 15, 'baby batter' => 16, 'baby juice' => 17, 'ball gag' => 18, 'ball gravy' => 19, 'ball kicking' => 20, 'ball licking' => 21, 'ball sack' => 22, 'ball sucking' => 23, 'bangbros' => 24, 'bangbus' => 25, 'bareback' => 26, 'barely legal' => 27, 'barenaked' => 28, 'bastard' => 29, 'bastardo' => 30, 'bastinado' => 31, 'bbw' => 32, 'bdsm' => 33, 'beaner' => 34, 'beaners' => 35, 'beaver cleaver' => 36, 'beaver lips' => 37, 'beastiality' => 38, 'bestiality' => 39, 'big black' => 40, 'big breasts' => 41, 'big knockers' => 42, 'big tits' => 43, 'bimbos' => 44, 'birdlock' => 45, 'bitch' => 46, 'bitches' => 47, 'black cock' => 48, 'blonde action' => 49, 'blonde on blonde action' => 50, 'blowjob' => 51, 'blow job' => 52, 'blow your load' => 53, 'blue waffle' => 54, 'blumpkin' => 55, 'bollocks' => 56, 'bondage' => 57, 'boner' => 58, 'boob' => 59, 'boobs' => 60, 'booty call' => 61, 'brown showers' => 62, 'brunette action' => 63, 'bukkake' => 64, 'bulldyke' => 65, 'bullet vibe' => 66, 'bullshit' => 67, 'bung hole' => 68, 'bunghole' => 69, 'busty' => 70, 'butt' => 71, 'buttcheeks' => 72, 'butthole' => 73, 'camel toe' => 74, 'camgirl' => 75, 'camslut' => 76, 'camwhore' => 77, 'carpet muncher' => 78, 'carpetmuncher' => 79, 'chocolate rosebuds' => 80, 'cialis' => 81, 'circlejerk' => 82, 'cleveland steamer' => 83, 'clit' => 84, 'clitoris' => 85, 'clover clamps' => 86, 'clusterfuck' => 87, 'cock' => 88, 'cocks' => 89, 'coprolagnia' => 90, 'coprophilia' => 91, 'cornhole' => 92, 'coon' => 93, 'coons' => 94, 'creampie' => 95, 'cum' => 96, 'cumming' => 97, 'cumshot' => 98, 'cumshots' => 99, 'cunnilingus' => 100, 'cunt' => 101, 'darkie' => 102, 'date rape' => 103, 'daterape' => 104, 'deep throat' => 105, 'deepthroat' => 106, 'dendrophilia' => 107, 'dick' => 108, 'dildo' => 109, 'dingleberry' => 110, 'dingleberries' => 111, 'dirty pillows' => 112, 'dirty sanchez' => 113, 'doggie style' => 114, 'doggiestyle' => 115, 'doggy style' => 116, 'doggystyle' => 117, 'dog style' => 118, 'dolcett' => 119, 'domination' => 120, 'dominatrix' => 121, 'dommes' => 122, 'donkey punch' => 123, 'double dong' => 124, 'double penetration' => 125, 'dp action' => 126, 'dry hump' => 127, 'dvda' => 128, 'eat my ass' => 129, 'ecchi' => 130, 'ejaculation' => 131, 'erotic' => 132, 'erotism' => 133, 'escort' => 134, 'eunuch' => 135, 'fag' => 136, 'faggot' => 137, 'fecal' => 138, 'felch' => 139, 'fellatio' => 140, 'feltch' => 141, 'female squirting' => 142, 'femdom' => 143, 'figging' => 144, 'fingerbang' => 145, 'fingering' => 146, 'fisting' => 147, 'foot fetish' => 148, 'footjob' => 149, 'frotting' => 150, 'fuck' => 151, 'fuck buttons' => 152, 'fuckin' => 153, 'fucking' => 154, 'fucktards' => 155, 'fudge packer' => 156, 'fudgepacker' => 157, 'futanari' => 158, 'gangbang' => 159, 'gang bang' => 160, 'gay sex' => 161, 'genitals' => 162, 'giant cock' => 163, 'girl on' => 164, 'girl on top' => 165, 'girls gone wild' => 166, 'goatcx' => 167, 'goatse' => 168, 'god damn' => 169, 'gokkun' => 170, 'golden shower' => 171, 'goodpoop' => 172, 'goo girl' => 173, 'goregasm' => 174, 'grope' => 175, 'group sex' => 176, 'g-spot' => 177, 'guro' => 178, 'hand job' => 179, 'handjob' => 180, 'hard core' => 181, 'hardcore' => 182, 'hentai' => 183, 'homoerotic' => 184, 'honkey' => 185, 'hooker' => 186, 'horny' => 187, 'hot carl' => 188, 'hot chick' => 189, 'how to kill' => 190, 'how to murder' => 191, 'huge fat' => 192, 'humping' => 193, 'incest' => 194, 'intercourse' => 195, 'jack off' => 196, 'jail bait' => 197, 'jailbait' => 198, 'jelly donut' => 199, 'jerk off' => 200, 'jigaboo' => 201, 'jiggaboo' => 202, 'jiggerboo' => 203, 'jizz' => 204, 'juggs' => 205, 'kike' => 206, 'kinbaku' => 207, 'kinkster' => 208, 'kinky' => 209, 'knobbing' => 210, 'leather restraint' => 211, 'leather straight jacket' => 212, 'lemon party' => 213, 'livesex' => 214, 'lolita' => 215, 'lovemaking' => 216, 'make me come' => 217, 'male squirting' => 218, 'masturbate' => 219, 'masturbating' => 220, 'masturbation' => 221, 'menage a trois' => 222, 'milf' => 223, 'missionary position' => 224, 'mong' => 225, 'motherfucker' => 226, 'mound of venus' => 227, 'mr hands' => 228, 'muff diver' => 229, 'muffdiving' => 230, 'nambla' => 231, 'nawashi' => 232, 'negro' => 233, 'neonazi' => 234, 'nigga' => 235, 'nigger' => 236, 'nig nog' => 237, 'nimphomania' => 238, 'nipple' => 239, 'nipples' => 240, 'nsfw' => 241, 'nsfw images' => 242, 'nude' => 243, 'nudity' => 244, 'nutten' => 245, 'nympho' => 246, 'nymphomania' => 247, 'octopussy' => 248, 'omorashi' => 249, 'one cup two girls' => 250, 'one guy one jar' => 251, 'orgasm' => 252, 'orgy' => 253, 'paedophile' => 254, 'paki' => 255, 'panties' => 256, 'panty' => 257, 'pedobear' => 258, 'pedophile' => 259, 'pegging' => 260, 'penis' => 261, 'phone sex' => 262, 'piece of shit' => 263, 'pikey' => 264, 'pissing' => 265, 'piss pig' => 266, 'pisspig' => 267, 'playboy' => 268, 'pleasure chest' => 269, 'pole smoker' => 270, 'ponyplay' => 271, 'poof' => 272, 'poon' => 273, 'poontang' => 274, 'punany' => 275, 'poop chute' => 276, 'poopchute' => 277, 'porn' => 278, 'porno' => 279, 'pornography' => 280, 'prince albert piercing' => 281, 'pthc' => 282, 'pubes' => 283, 'pussy' => 284, 'queaf' => 285, 'queef' => 286, 'quim' => 287, 'raghead' => 288, 'raging boner' => 289, 'rape' => 290, 'raping' => 291, 'rapist' => 292, 'rectum' => 293, 'reverse cowgirl' => 294, 'rimjob' => 295, 'rimming' => 296, 'rosy palm' => 297, 'rosy palm and her 5 sisters' => 298, 'rusty trombone' => 299, 'sadism' => 300, 'santorum' => 301, 'scat' => 302, 'schlong' => 303, 'scissoring' => 304, 'semen' => 305, 'sex' => 306, 'sexcam' => 307, 'sexo' => 308, 'sexy' => 309, 'sexual' => 310, 'sexually' => 311, 'sexuality' => 312, 'shaved beaver' => 313, 'shaved pussy' => 314, 'shemale' => 315, 'shibari' => 316, 'shit' => 317, 'shitblimp' => 318, 'shitty' => 319, 'shota' => 320, 'shrimping' => 321, 'skeet' => 322, 'slanteye' => 323, 'slut' => 324, 's&m' => 325, 'smut' => 326, 'snatch' => 327, 'snowballing' => 328, 'sodomize' => 329, 'sodomy' => 330, 'spastic' => 331, 'spic' => 332, 'splooge' => 333, 'splooge moose' => 334, 'spooge' => 335, 'spread legs' => 336, 'spunk' => 337, 'strap on' => 338, 'strapon' => 339, 'strappado' => 340, 'strip club' => 341, 'style doggy' => 342, 'suck' => 343, 'sucks' => 344, 'suicide girls' => 345, 'sultry women' => 346, 'swastika' => 347, 'swinger' => 348, 'tainted love' => 349, 'taste my' => 350, 'tea bagging' => 351, 'threesome' => 352, 'throating' => 353, 'thumbzilla' => 354, 'tied up' => 355, 'tight white' => 356, 'tit' => 357, 'tits' => 358, 'titties' => 359, 'titty' => 360, 'tongue in a' => 361, 'topless' => 362, 'tosser' => 363, 'towelhead' => 364, 'tranny' => 365, 'tribadism' => 366, 'tub girl' => 367, 'tubgirl' => 368, 'tushy' => 369, 'twat' => 370, 'twink' => 371, 'twinkie' => 372, 'two girls one cup' => 373, 'undressing' => 374, 'upskirt' => 375, 'urethra play' => 376, 'urophilia' => 377, 'vagina' => 378, 'venus mound' => 379, 'viagra' => 380, 'vibrator' => 381, 'violet wand' => 382, 'vorarephilia' => 383, 'voyeur' => 384, 'voyeurweb' => 385, 'voyuer' => 386, 'vulva' => 387, 'wank' => 388, 'wetback' => 389, 'wet dream' => 390, 'white power' => 391, 'whore' => 392, 'worldsex' => 393, 'wrapping men' => 394, 'wrinkled starfish' => 395, 'xx' => 396, 'xxx' => 397, 'yaoi' => 398, 'yellow showers' => 399, 'yiffy' => 400, 'zoophilia' => 401, '🖕' => 402,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/eo.php b/languages/eo.php
index afbe69c..a57c5ca 100755
--- a/languages/eo.php
+++ b/languages/eo.php
@@ -1,7 +1,7 @@
0, 'bugri' => 1, 'bugru' => 2, 'ĉiesulino' => 3, 'ĉiesulo' => 4, 'diofek' => 5, 'diofeka' => 6, 'fek' => 7, 'feken' => 8, 'fekfikanto' => 9, 'feklekulo' => 10, 'fekulo' => 11, 'fik' => 12, 'fikado' => 13, 'fikema' => 14, 'fikfek' => 15, 'fiki' => 16, 'fikiĝi' => 17, 'fikiĝu' => 18, 'fikilo' => 19, 'fikklaŭno' => 20, 'fikota' => 21, 'fiku' => 22, 'forfiki' => 23, 'forfikiĝu' => 24, 'forfiku' => 25, 'forfurzu' => 26, 'forpisi' => 27, 'forpisu' => 28, 'furzulo' => 29, 'kacen' => 30, 'kaco' => 31, 'kacsuĉulo' => 32, 'kojono' => 33, 'piĉen' => 34, 'piĉo' => 35, 'zamenfek' => 36,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/es.php b/languages/es.php
index c73400a..9ce551e 100755
--- a/languages/es.php
+++ b/languages/es.php
@@ -1,7 +1,7 @@
0, 'asno' => 1, 'bastardo' => 2, 'Bollera' => 3, 'Cabrón' => 4, 'Caca' => 5, 'Chupada' => 6, 'Chupapollas' => 7, 'Chupetón' => 8, 'concha' => 9, 'Concha de tu madre' => 10, 'Coño' => 11, 'Coprofagía' => 12, 'Culo' => 13, 'Drogas' => 14, 'Esperma' => 15, 'Fiesta de salchichas' => 16, 'Follador' => 17, 'Follar' => 18, 'Gilipichis' => 19, 'Gilipollas' => 20, 'Hacer una paja' => 21, 'Haciendo el amor' => 22, 'Heroína' => 23, 'Hija de puta' => 24, 'Hijaputa' => 25, 'Hijo de puta' => 26, 'Hijoputa' => 27, 'Idiota' => 28, 'Imbécil' => 29, 'infierno' => 30, 'Jilipollas' => 31, 'Kapullo' => 32, 'Lameculos' => 33, 'Maciza' => 34, 'Macizorra' => 35, 'maldito' => 36, 'Mamada' => 37, 'Marica' => 38, 'Maricón' => 39, 'Mariconazo' => 40, 'martillo' => 41, 'Mierda' => 42, 'Nazi' => 43, 'Orina' => 44, 'Pedo' => 45, 'Pendejo' => 46, 'Pervertido' => 47, 'Pezón' => 48, 'Pinche' => 49, 'Pis' => 50, 'Prostituta' => 51, 'Puta' => 52, 'Racista' => 53, 'Ramera' => 54, 'Sádico' => 55, 'Semen' => 56, 'Sexo' => 57, 'Sexo oral' => 58, 'Soplagaitas' => 59, 'Soplapollas' => 60, 'Tetas grandes' => 61, 'Tía buena' => 62, 'Travesti' => 63, 'Trio' => 64, 'Verga' => 65, 'vete a la mierda' => 66, 'Vulva' => 67,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/fa.php b/languages/fa.php
index a930058..a82b785 100755
--- a/languages/fa.php
+++ b/languages/fa.php
@@ -1,7 +1,7 @@
0, 'bylsiä' => 1, 'haahka' => 2, 'haista paska' => 3, 'haista vittu' => 4, 'hatullinen' => 5, 'helvetisti' => 6, 'hevonkuusi' => 7, 'hevonpaska' => 8, 'hevonperse' => 9, 'hevonvittu' => 10, 'hevonvitunperse' => 11, 'hitosti' => 12, 'hitto' => 13, 'huorata' => 14, 'hässiä' => 15, 'juosten kustu' => 16, 'jutku' => 17, 'jutsku' => 18, 'jätkä' => 19, 'kananpaska' => 20, 'koiranpaska' => 21, 'kuin esterin perseestä' => 22, 'kulli' => 23, 'kullinluikaus' => 24, 'kuppainen' => 25, 'kusaista' => 26, 'kuseksia' => 27, 'kusettaa' => 28, 'kusi' => 29, 'kusipää' => 30, 'kusta' => 31, 'kyrpiintynyt' => 32, 'kyrpiintyä' => 33, 'kyrpiä' => 34, 'kyrpä' => 35, 'kyrpänaama' => 36, 'kyrvitys' => 37, 'lahtari' => 38, 'lutka' => 39, 'molo' => 40, 'molopää' => 41, 'mulkero' => 42, 'mulkku' => 43, 'mulkvisti' => 44, 'muna' => 45, 'munapää' => 46, 'munaton' => 47, 'mutakuono' => 48, 'mutiainen' => 49, 'naida' => 50, 'nainti' => 51, 'narttu' => 52, 'neekeri' => 53, 'nekru' => 54, 'nuolla persettä' => 55, 'nussia' => 56, 'nussija' => 57, 'nussinta' => 58, 'paljaalla' => 59, 'palli' => 60, 'pallit' => 61, 'paneskella' => 62, 'panettaa' => 63, 'panna' => 64, 'pano' => 65, 'pantava' => 66, 'paska' => 67, 'paskainen' => 68, 'paskamainen' => 69, 'paskanmarjat' => 70, 'paskantaa' => 71, 'paskapuhe' => 72, 'paskapää' => 73, 'paskattaa' => 74, 'paskiainen' => 75, 'paskoa' => 76, 'pehko' => 77, 'pentele' => 78, 'perkele' => 79, 'perkeleesti' => 80, 'persaukinen' => 81, 'perse' => 82, 'perseennuolija' => 83, 'perseet olalla' => 84, 'persereikä' => 85, 'perseääliö' => 86, 'persläpi' => 87, 'perspano' => 88, 'persvako' => 89, 'pilkunnussija' => 90, 'pillu' => 91, 'pillut' => 92, 'pipari' => 93, 'piru' => 94, 'pistää' => 95, 'pyllyvako' => 96, 'reikä' => 97, 'reva' => 98, 'ripsipiirakka' => 99, 'runkata' => 100, 'runkkari' => 101, 'runkkaus' => 102, 'runkku' => 103, 'ryssä' => 104, 'rättipää' => 105, 'saatanasti' => 106, 'suklaaosasto' => 107, 'tavara' => 108, 'toosa' => 109, 'tuhkaluukku' => 110, 'tumputtaa' => 111, 'turpasauna' => 112, 'tussu' => 113, 'tussukka' => 114, 'tussut' => 115, 'vakipano' => 116, 'vetää käteen' => 117, 'viiksi' => 118, 'vittu' => 119, 'vittuilla' => 120, 'vittuilu' => 121, 'vittumainen' => 122, 'vittuuntua' => 123, 'vittuuntunut' => 124, 'vitun' => 125, 'vitusti' => 126, 'vituttaa' => 127, 'vitutus' => 128, 'äpärä' => 129,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/fil.php b/languages/fil.php
index eaab77e..275c2a4 100755
--- a/languages/fil.php
+++ b/languages/fil.php
@@ -1,7 +1,7 @@
0, 'putang ina' => 1, 'tang ina' => 2, 'tangina' => 3, 'burat' => 4, 'bayag' => 5, 'bobo' => 6, 'nognog' => 7, 'tanga' => 8, 'ulol' => 12, 'kantot' => 10, 'anak ka ng puta' => 11, 'jakol' => 13,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/fr-CA-u-sd-caqc.php b/languages/fr-CA-u-sd-caqc.php
index 6e829d5..1eb65a6 100755
--- a/languages/fr-CA-u-sd-caqc.php
+++ b/languages/fr-CA-u-sd-caqc.php
@@ -1,7 +1,7 @@
0, 'osti' => 1, 'criss' => 2, 'crisse' => 3, 'calice' => 4, 'tabarnak' => 5, 'viarge' => 6,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/fr.php b/languages/fr.php
index fa9877f..b5e4508 100755
--- a/languages/fr.php
+++ b/languages/fr.php
@@ -1,7 +1,7 @@
0, 'bander' => 1, 'bigornette' => 2, 'bite' => 3, 'bitte' => 4, 'bloblos' => 5, 'bordel' => 6, 'bourré' => 7, 'bourrée' => 8, 'brackmard' => 9, 'branlage' => 10, 'branler' => 11, 'branlette' => 12, 'branleur' => 13, 'branleuse' => 14, 'brouter le cresson' => 15, 'caca' => 16, 'chatte' => 17, 'chiasse' => 18, 'chier' => 19, 'chiottes' => 20, 'clito' => 21, 'clitoris' => 22, 'con' => 23, 'connard' => 24, 'connasse' => 25, 'conne' => 26, 'couilles' => 27, 'cramouille' => 28, 'cul' => 29, 'déconne' => 30, 'déconner' => 31, 'emmerdant' => 32, 'emmerder' => 33, 'emmerdeur' => 34, 'emmerdeuse' => 35, 'enculé' => 36, 'enculée' => 37, 'enculeur' => 38, 'enculeurs' => 39, 'enfoiré' => 40, 'enfoirée' => 41, 'étron' => 42, 'fille de pute' => 43, 'fils de pute' => 44, 'folle' => 45, 'foutre' => 46, 'gerbe' => 47, 'gerber' => 48, 'gouine' => 49, 'grande folle' => 50, 'grogniasse' => 51, 'gueule' => 52, 'jouir' => 53, 'la putain de ta mère' => 54, 'MALPT' => 55, 'ménage à trois' => 56, 'merde' => 57, 'merdeuse' => 58, 'merdeux' => 59, 'meuf' => 60, 'nègre' => 61, 'negro' => 62, 'nique ta mère' => 63, 'nique ta race' => 64, 'palucher' => 65, 'pédale' => 66, 'pédé' => 67, 'péter' => 68, 'pipi' => 69, 'pisser' => 70, 'pouffiasse' => 71, 'pousse-crotte' => 72, 'putain' => 73, 'pute' => 74, 'ramoner' => 75, 'sac à foutre' => 76, 'sac à merde' => 77, 'salaud' => 78, 'salope' => 79, 'suce' => 80, 'tapette' => 81, 'tanche' => 82, 'teuch' => 83, 'tringler' => 84, 'trique' => 85, 'troncher' => 86, 'trou du cul' => 87, 'turlute' => 88, 'zigounette' => 89, 'zizi' => 90,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/hi-Latn.php b/languages/hi-Latn.php
new file mode 100755
index 0000000..5a41e95
--- /dev/null
+++ b/languages/hi-Latn.php
@@ -0,0 +1,8 @@
+ 0, 'aandu' => 1, 'balatkar' => 2, 'balatkari' => 3, 'behen chod' => 4, 'behenchod' => 4, 'beti chod' => 5, 'betichod' => 5, 'bhadva' => 6, 'bhadve' => 7, 'bhandve' => 8, 'bhangi' => 9, 'bhootni ke' => 10, 'bhosad' => 11, 'bhosadi ke' => 12, 'bsdk' => 12, 'boobe' => 13, 'chakke' => 14, 'chinaal' => 15, 'chinki' => 16, 'chod' => 17, 'chodu' => 18, 'chodu bhagat' => 19, 'chooche' => 20, 'choochi' => 21, 'choope' => 22, 'choot' => 23, 'choot ke baal' => 24, 'chootia' => 25, 'chutiya' => 25, 'chootiya' => 26, 'chuche' => 27, 'chuchi' => 28, 'chudaap' => 29, 'chudai khanaa' => 30, 'chudam chudai' => 31, 'chude' => 32, 'chut' => 33, 'chut ka chuha' => 34, 'chut ka churan' => 35, 'chut ka mail' => 36, 'chut ke baal' => 37, 'chut ke dhakkan' => 38, 'chut maarli' => 39, 'chutad' => 40, 'chutadd' => 41, 'chutan' => 42, 'chutia' => 43, 'gaand' => 45, 'gaandfat' => 46, 'gaandmasti' => 47, 'gaandufad' => 48, 'gandfattu' => 49, 'gandu' => 50, 'gashti' => 51, 'gasti' => 52, 'ghassa' => 53, 'ghasti' => 54, 'gucchi' => 55, 'gucchu' => 56, 'harami' => 57, 'haramzade' => 58, 'hawas' => 59, 'hawas ke pujari' => 60, 'hijda' => 61, 'hijra' => 62, 'jhant' => 63, 'jhant chaatu' => 64, 'jhant ka keeda' => 65, 'jhant ke baal' => 66, 'jhant ke pissu' => 67, 'jhantu' => 68, 'kamine' => 69, 'kaminey' => 70, 'kanjar' => 71, 'kutta' => 72, 'kutta kamina' => 73, 'kutte ki aulad' => 74, 'kutte ki jat' => 75, 'kuttiya' => 76, 'loda' => 77, 'lodu' => 78, 'lund' => 79, 'lund choos' => 80, 'lund ka bakkal' => 81, 'lund khajoor' => 82, 'lundtopi' => 83, 'lundure' => 84, 'maa ki chut' => 85, 'maal' => 86, 'madar chod' => 87, 'madarchod' => 88, 'madharchod' => 88, 'madhavchod' => 89, 'mooh mein le' => 90, 'muh me le' => 96, 'mutth' => 91, 'mutthal' => 92, 'najayaz' => 93, 'najayaz aulaad' => 94, 'najayaz paidaish' => 95, 'paki' => 96, 'pataka' => 97, 'patakha' => 98, 'raand' => 99, 'randaap' => 100, 'randi' => 101, 'randi rona' => 102, 'saala' => 103, 'saala kutta' => 104, 'saali kutti' => 105, 'saali randi' => 106, 'suar' => 107, 'suar ke lund' => 108, 'suar ki aulad' => 109, 'tatte' => 110, 'tatti' => 111, 'teri maa ka bhosada' => 112, 'teri maa ka boba chusu' => 113, 'teri maa ki behenchod ' => 114, 'teri maa ki chut' => 115, 'tharak' => 116, 'tharki' => 117, 'tu chuda' => 118, 'chodna' => 119, 'chudne' => 120, 'ghodii' => 121, 'balatkaar' => 122);
+// add temp to bad words
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/hi.php b/languages/hi.php
index ff87a72..5a41e95 100755
--- a/languages/hi.php
+++ b/languages/hi.php
@@ -1,8 +1,8 @@
0, 'aandu' => 1, 'balatkar' => 2, 'balatkari' => 3, 'behen chod' => 4, 'behenchod' => 4, 'beti chod' => 5, 'betichod' => 5, 'bhadva' => 6, 'bhadve' => 7, 'bhandve' => 8, 'bhangi' => 9, 'bhootni ke' => 10, 'bhosad' => 11, 'bhosadi ke' => 12, 'bsdk' => 12, 'boobe' => 13, 'chakke' => 14, 'chinaal' => 15, 'chinki' => 16, 'chod' => 17, 'chodu' => 18, 'chodu bhagat' => 19, 'chooche' => 20, 'choochi' => 21, 'choope' => 22, 'choot' => 23, 'choot ke baal' => 24, 'chootia' => 25, 'chutiya' => 25, 'chootiya' => 26, 'chuche' => 27, 'chuchi' => 28, 'chudaap' => 29, 'chudai khanaa' => 30, 'chudam chudai' => 31, 'chude' => 32, 'chut' => 33, 'chut ka chuha' => 34, 'chut ka churan' => 35, 'chut ka mail' => 36, 'chut ke baal' => 37, 'chut ke dhakkan' => 38, 'chut maarli' => 39, 'chutad' => 40, 'chutadd' => 41, 'chutan' => 42, 'chutia' => 43, 'gaand' => 45, 'gaandfat' => 46, 'gaandmasti' => 47, 'gaandufad' => 48, 'gandfattu' => 49, 'gandu' => 50, 'gashti' => 51, 'gasti' => 52, 'ghassa' => 53, 'ghasti' => 54, 'gucchi' => 55, 'gucchu' => 56, 'harami' => 57, 'haramzade' => 58, 'hawas' => 59, 'hawas ke pujari' => 60, 'hijda' => 61, 'hijra' => 62, 'jhant' => 63, 'jhant chaatu' => 64, 'jhant ka keeda' => 65, 'jhant ke baal' => 66, 'jhant ke pissu' => 67, 'jhantu' => 68, 'kamine' => 69, 'kaminey' => 70, 'kanjar' => 71, 'kutta' => 72, 'kutta kamina' => 73, 'kutte ki aulad' => 74, 'kutte ki jat' => 75, 'kuttiya' => 76, 'loda' => 77, 'lodu' => 78, 'lund' => 79, 'lund choos' => 80, 'lund ka bakkal' => 81, 'lund khajoor' => 82, 'lundtopi' => 83, 'lundure' => 84, 'maa ki chut' => 85, 'maal' => 86, 'madar chod' => 87, 'madarchod' => 88, 'madharchod' => 88, 'madhavchod' => 89, 'mooh mein le' => 90, 'muh me le' => 96, 'mutth' => 91, 'mutthal' => 92, 'najayaz' => 93, 'najayaz aulaad' => 94, 'najayaz paidaish' => 95, 'paki' => 96, 'pataka' => 97, 'patakha' => 98, 'raand' => 99, 'randaap' => 100, 'randi' => 101, 'randi rona' => 102, 'saala' => 103, 'saala kutta' => 104, 'saali kutti' => 105, 'saali randi' => 106, 'suar' => 107, 'suar ke lund' => 108, 'suar ki aulad' => 109, 'tatte' => 110, 'tatti' => 111, 'teri maa ka bhosada' => 112, 'teri maa ka boba chusu' => 113, 'teri maa ki behenchod ' => 114, 'teri maa ki chut' => 115, 'tharak' => 116, 'tharki' => 117, 'tu chuda' => 118, 'chodna' => 119, 'chudne' => 120, 'ghodii' => 121, 'balatkaar' => 122);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/hu.php b/languages/hu.php
index 29bd8ba..2d6f596 100755
--- a/languages/hu.php
+++ b/languages/hu.php
@@ -1,8 +1,8 @@
0, 'balfaszok' => 1, 'balfaszokat' => 2, 'balfaszt' => 3, 'barmok' => 4, 'barmokat' => 5, 'barmot' => 6, 'barom' => 7, 'baszik' => 8, 'bazmeg' => 9, 'buksza' => 10, 'bukszák' => 11, 'bukszákat' => 12, 'bukszát' => 13, 'búr' => 14, 'búrok' => 15, 'csöcs' => 16, 'csöcsök' => 17, 'csöcsöket' => 18, 'csöcsöt' => 19, 'fasz' => 20, 'faszfej' => 21, 'faszfejek' => 22, 'faszfejeket' => 23, 'faszfejet' => 24, 'faszok' => 25, 'faszokat' => 26, 'faszt' => 27, 'fing' => 28, 'fingok' => 29, 'fingokat' => 30, 'fingot' => 31, 'franc' => 32, 'francok' => 33, 'francokat' => 34, 'francot' => 35, 'geci' => 36, 'gecibb' => 37, 'gecik' => 38, 'geciket' => 39, 'gecit' => 40, 'kibaszott' => 41, 'kibaszottabb' => 42, 'kúr' => 43, 'kurafi' => 44, 'kurafik' => 45, 'kurafikat' => 46, 'kurafit' => 47, 'kurva' => 48, 'kurvák' => 49, 'kurvákat' => 50, 'kurvát' => 51, 'leggecibb' => 52, 'legkibaszottabb' => 53, 'legszarabb' => 54, 'marha' => 55, 'marhák' => 56, 'marhákat' => 57, 'marhát' => 58, 'megdöglik' => 59, 'pele' => 60, 'pelék' => 61, 'picsa' => 62, 'picsákat' => 63, 'picsát' => 64, 'pina' => 65, 'pinák' => 66, 'pinákat' => 67, 'pinát' => 68, 'pofa' => 69, 'pofákat' => 70, 'pofát' => 71, 'pöcs' => 72, 'pöcsök' => 73, 'pöcsöket' => 74, 'pöcsöt' => 75, 'punci' => 76, 'puncik' => 77, 'segg' => 78, 'seggek' => 79, 'seggeket' => 80, 'segget' => 81, 'seggfej' => 82, 'seggfejek' => 83, 'seggfejeket' => 84, 'seggfejet' => 85, 'szajha' => 86, 'szajhák' => 87, 'szajhákat' => 88, 'szajhát' => 89, 'szar' => 90, 'szarabb' => 91, 'szarik' => 92, 'szarok' => 93, 'szarokat' => 94, 'szart' => 95,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/it.php b/languages/it.php
index febe85d..c358bbc 100755
--- a/languages/it.php
+++ b/languages/it.php
@@ -1,8 +1,8 @@
0, 'ammucchiata' => 1, 'anale' => 2, 'arrapato' => 3, 'arrusa' => 4, 'arruso' => 5, 'assatanato' => 6, 'bagascia' => 7, 'bagassa' => 8, 'bagnarsi' => 9, 'baldracca' => 10, 'balle' => 11, 'battere' => 12, 'battona' => 13, 'belino' => 14, 'biga' => 15, 'bocchinara' => 16, 'bocchino' => 17, 'bofilo' => 18, 'boiata' => 19, 'bordello' => 20, 'brinca' => 21, 'bucaiolo' => 22, 'budiùlo' => 23, 'busone' => 24, 'cacca' => 25, 'caciocappella' => 26, 'cadavere' => 27, 'cagare' => 28, 'cagata' => 29, 'cagna' => 30, 'casci' => 31, 'cazzata' => 32, 'cazzimma' => 33, 'cazzo' => 34, 'cesso' => 35, 'cazzone' => 36, 'checca' => 37, 'chiappa' => 38, 'chiavare' => 39, 'chiavata' => 40, 'ciospo' => 41, 'ciucciami il cazzo' => 42, 'coglione' => 43, 'coglioni' => 44, 'cornuto' => 45, 'cozza' => 46, 'culattina' => 47, 'culattone' => 48, 'culo' => 49, 'ditalino' => 50, 'fava' => 51, 'femminuccia' => 52, 'fica' => 53, 'figa' => 54, 'figlio di buona donna' => 55, 'figlio di puttana' => 56, 'figone' => 57, 'finocchio' => 58, 'fottere' => 59, 'fottersi' => 60, 'fracicone' => 61, 'fregna' => 62, 'frocio' => 63, 'froscio' => 64, 'goldone' => 65, 'guardone' => 66, 'imbecille' => 67, 'incazzarsi' => 68, 'incoglionirsi' => 69, 'ingoio' => 70, 'leccaculo' => 71, 'lecchino' => 72, 'lofare' => 73, 'loffa' => 74, 'loffare' => 75, 'mannaggia' => 76, 'merda' => 77, 'merdata' => 78, 'merdoso' => 79, 'mignotta' => 80, 'minchia' => 81, 'minchione' => 82, 'mona' => 83, 'monta' => 84, 'montare' => 85, 'mussa' => 86, 'nave scuola' => 87, 'nerchia' => 88, 'padulo' => 89, 'palle' => 90, 'palloso' => 91, 'patacca' => 92, 'patonza' => 93, 'pecorina' => 94, 'pesce' => 95, 'picio' => 96, 'pincare' => 97, 'pippa' => 98, 'pinnolone' => 99, 'pipì' => 100, 'pippone' => 101, 'pirla' => 102, 'pisciare' => 103, 'piscio' => 104, 'pisello' => 105, 'pistolotto' => 106, 'pomiciare' => 107, 'pompa' => 108, 'pompino' => 109, 'porca' => 110, 'porca madonna' => 111, 'porca miseria' => 112, 'porca puttana' => 113, 'porco' => 114, 'porco due' => 115, 'porco zio' => 116, 'potta' => 117, 'puppami' => 118, 'puttana' => 119, 'quaglia' => 120, 'recchione' => 121, 'regina' => 122, 'rincoglionire' => 123, 'rizzarsi' => 124, 'rompiballe' => 125, 'rompipalle' => 126, 'ruffiano' => 127, 'sbattere' => 128, 'sbattersi' => 129, 'sborra' => 130, 'sborrata' => 131, 'sborrone' => 132, 'sbrodolata' => 133, 'scopare' => 134, 'scopata' => 135, 'scorreggiare' => 136, 'sega' => 137, 'slinguare' => 138, 'slinguata' => 139, 'smandrappata' => 140, 'soccia' => 141, 'socmel' => 142, 'sorca' => 143, 'spagnola' => 144, 'spompinare' => 145, 'sticchio' => 146, 'stronza' => 147, 'stronzata' => 148, 'stronzo' => 149, 'succhiami' => 150, 'succhione' => 151, 'sveltina' => 152, 'sverginare' => 153, 'tarzanello' => 154, 'terrone' => 155, 'testa di cazzo' => 156, 'tette' => 157, 'tirare' => 158, 'topa' => 159, 'troia' => 160, 'trombare' => 161, 'vacca' => 162, 'vaffanculo' => 163, 'vangare' => 164, 'zinne' => 165, 'zio cantante' => 166, 'zoccola' => 167,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/ja.php b/languages/ja.php
index 2d7b577..0ad2f5b 100755
--- a/languages/ja.php
+++ b/languages/ja.php
@@ -1,8 +1,8 @@
0, 'g スポット' => 1, 's & m' => 2, 'sm' => 3, 'sm女王' => 4, 'xx' => 5, 'アジアのかわいい女の子' => 6, 'アスホール' => 7, 'アナリングス' => 8, 'アナル' => 9, 'いたずら' => 10, 'イラマチオ' => 11, 'エクスタシー' => 12, 'エスコート' => 13, 'エッチ' => 14, 'エロティズム' => 15, 'エロティック' => 16, 'オーガズム' => 17, 'オカマ' => 18, 'おしっこ' => 19, 'おしり' => 20, 'オシリ' => 21, 'おしりのあな' => 22, 'おっぱい' => 23, 'オッパイ' => 24, 'オナニー' => 25, 'オマンコ' => 26, 'おもらし' => 27, 'お尻' => 28, 'カーマスートラ' => 29, 'カント' => 30, 'クリトリス' => 31, 'グループ・セックス' => 32, 'グロ' => 33, 'クンニリングス' => 34, 'ゲイ・セックス' => 35, 'ゲイボーイ' => 36, 'ゴールデンシャワー' => 37, 'コカイン' => 38, 'ゴックン' => 39, 'サディズム' => 40, 'しばり' => 41, 'スウィンガー' => 42, 'スカートの中' => 43, 'スカトロ' => 44, 'ストラップオン' => 45, 'ストリップ劇場' => 46, 'スラット' => 47, 'スリット' => 48, 'セクシーな' => 49, 'セクシーな 10 代' => 50, 'セックス' => 51, 'ソドミー' => 52, 'ちんこ' => 53, 'ディープ・スロート' => 54, 'ディック' => 55, 'ディルド' => 56, 'デートレイプ' => 57, 'デブ' => 58, 'テレフォンセックス' => 59, 'ドッグスタイル' => 60, 'トップレス' => 61, 'なめ' => 62, 'ニガー' => 63, 'ヌード' => 64, 'ネオ・ナチ' => 65, 'ハードコア' => 66, 'パイパン' => 67, 'バイブレーター' => 68, 'バック・スタイル' => 69, 'パンティー' => 70, 'ビッチ' => 71, 'ファック' => 72, 'ファンタジー' => 73, 'フィスト' => 74, 'フェティッシュ' => 75, 'フェラチオ' => 76, 'ふたなり' => 77, 'ぶっかけ' => 78, 'フック' => 79, 'プリンス アルバート ピアス' => 80, 'プレイボーイ' => 81, 'ベアバック' => 82, 'ペニス' => 83, 'ペニスバンド' => 84, 'ボーイズラブ' => 85, 'ボールギャグ' => 86, 'ぽっちゃり' => 87, 'ホモ' => 88, 'ポルノ' => 89, 'ポルノグラフィー' => 90, 'ボンテージ' => 91, 'マザー・ファッカー' => 92, 'マスターベーション' => 93, 'まんこ' => 94, 'やおい' => 95, 'やりまん' => 96, 'ラティーナ' => 97, 'ラバー' => 98, 'ランジェリー' => 99, 'レイプ' => 100, 'レズビアン' => 101, 'ローター' => 102, 'ロリータ' => 103, '淫乱' => 104, '陰毛' => 105, '革抑制' => 106, '騎上位' => 107, '巨根' => 108, '巨乳' => 109, '強姦犯' => 110, '玉なめ' => 111, '玉舐め' => 112, '緊縛' => 113, '近親相姦' => 114, '嫌い' => 115, '後背位' => 116, '合意の性交' => 117, '拷問' => 118, '殺し方' => 119, '殺人事件' => 120, '殺人方法' => 121, '支配' => 122, '児童性虐待' => 123, '自己愛性' => 124, '射精' => 125, '手コキ' => 126, '獣姦' => 127, '女の子' => 128, '女王様' => 129, '女子高生' => 130, '女装' => 131, '新しいポルノ' => 132, '人妻' => 133, '人種' => 134, '性交' => 135, '正常位' => 136, '生殖器' => 137, '精液' => 138, '挿入' => 139, '足フェチ' => 140, '足を広げる' => 141, '大陰唇' => 142, '脱衣' => 143, '茶色のシャワー' => 144, '中出し' => 145, '潮吹き女' => 146, '潮吹き男性' => 147, '直腸' => 148, '剃毛' => 149, '貞操帯' => 150, '奴隷' => 151, '二穴' => 152, '乳首' => 153, '尿道プレイ' => 154, '覗き' => 155, '売春婦' => 156, '縛り' => 157, '噴出' => 158, '糞' => 159, '糞尿愛好症' => 160, '糞便' => 161, '平手打ち' => 162, '変態' => 163, '勃起する' => 164, '夢精' => 165, '毛深い' => 166, '誘惑' => 167, '幼児性愛者' => 168, '裸' => 169, '裸の女性' => 170, '乱交' => 171, '両性' => 172, '両性具有' => 173, '両刀' => 174, '輪姦' => 175, '卍' => 176, '宦官' => 177, '肛門' => 178, '膣' => 179,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/kab.php b/languages/kab.php
index d00b8b0..270703c 100755
--- a/languages/kab.php
+++ b/languages/kab.php
@@ -1,7 +1,7 @@
0, 'aεeṭṭuḍ' => 1, 'aḥeččun' => 2, 'taḥeččunt' => 3, 'axuzziḍ' => 4, 'asxuẓeḍ' => 5, 'qqu' => 6, 'qquɣ' => 7, 'qqiɣ' => 8, 'qqan' => 9, 'qqant' => 10, 'tteqqun' => 13, 'tteqqunt' => 12, 'aqerqur' => 14, 'ajeḥniḍ' => 15, 'awellaq' => 16, 'iwellaqen' => 17, 'iḥeččan' => 18, 'iḥeččunen' => 19, 'uqan' => 20, 'taxna' => 21,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/ko.php b/languages/ko.php
index d63902b..4a87e2f 100755
--- a/languages/ko.php
+++ b/languages/ko.php
@@ -1,7 +1,7 @@
0, '개새끼' => 1, '개자식' => 2, '개좆' => 3, '개차반' => 4, '거유' => 5, '계집년' => 6, '고자' => 7, '근친' => 8, '노모' => 9, '니기미' => 10, '뒤질래' => 11, '딸딸이' => 12, '때씹' => 13, '또라이' => 14, '뙤놈' => 15, '로리타' => 16, '망가' => 17, '몰카' => 18, '미친' => 19, '미친새끼' => 20, '바바리맨' => 21, '변태' => 22, '병신' => 23, '보지' => 24, '불알' => 25, '빠구리' => 26, '사까시' => 27, '섹스' => 28, '스와핑' => 29, '쌍놈' => 30, '씨발' => 31, '씨발놈' => 32, '씨팔' => 33, '씹' => 34, '씹물' => 35, '씹빨' => 36, '씹새끼' => 37, '씹알' => 38, '씹창' => 39, '씹팔' => 40, '암캐' => 41, '애자' => 42, '야동' => 43, '야사' => 44, '야애니' => 45, '엄창' => 46, '에로' => 47, '염병' => 48, '옘병' => 49, '유모' => 50, '육갑' => 51, '은꼴' => 52, '자위' => 53, '자지' => 54, '잡년' => 55, '종간나' => 56, '좆' => 57, '좆만' => 58, '죽일년' => 59, '쥐좆' => 60, '직촬' => 61, '짱깨' => 62, '쪽바리' => 63, '창녀' => 64, '포르노' => 65, '하드코어' => 66, '호로' => 67, '화냥년' => 68, '후레아들' => 69, '후장' => 70, '희쭈그리' => 71,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/nl.php b/languages/nl.php
index f322679..a302da2 100755
--- a/languages/nl.php
+++ b/languages/nl.php
@@ -1,8 +1,8 @@
0, 'achter het raam zitten' => 1, 'afberen' => 2, 'aflebberen' => 3, 'afrossen' => 4, 'afrukken' => 5, 'aftrekken' => 6, 'afwerkplaats' => 7, 'afzeiken' => 8, 'afzuigen' => 9, 'een halve man en een paardekop' => 10, 'anita' => 11, 'asbak' => 12, 'aso' => 13, 'bagger schijten' => 14, 'balen' => 15, 'bedonderen' => 16, 'befborstel' => 17, 'beffen' => 18, 'bekken' => 19, 'belazeren' => 20, 'besodemieterd zijn' => 21, 'besodemieteren' => 22, 'beurt' => 23, 'boemelen' => 24, 'boerelul' => 25, 'boerenpummel' => 26, 'bokkelul' => 27, 'botergeil' => 28, 'broekhoesten' => 29, 'brugpieper' => 30, 'buffelen' => 31, 'buiten de pot piesen' => 32, 'da\'s kloten van de bok' => 33, 'de ballen' => 34, 'de hoer spelen' => 35, 'de hond uitlaten' => 36, 'de koffer induiken' => 37, 'del' => 38, 'de pijp uitgaan' => 39, 'dombo' => 40, 'draaikont' => 41, 'driehoog achter wonen' => 42, 'drol' => 43, 'drooggeiler' => 44, 'droogkloot' => 45, 'een beurt geven' => 46, 'een nummertje maken' => 47, 'een wip maken' => 48, 'eikel' => 49, 'engerd' => 50, 'flamoes' => 51, 'flikken' => 52, 'flikker' => 53, 'gadverdamme' => 54, 'galbak' => 55, 'gat' => 56, 'gedoogzone' => 57, 'geilneef' => 58, 'gesodemieter' => 59, 'godverdomme' => 60, 'graftak' => 61, 'gras maaien' => 62, 'gratenkut' => 63, 'greppeldel' => 64, 'griet' => 65, 'hoempert' => 66, 'hoer' => 67, 'hoerenbuurt' => 68, 'hoerenloper' => 69, 'hoerig' => 70, 'hol' => 71, 'hufter' => 72, 'huisdealer' => 73, 'johny' => 74, 'kanen' => 75, 'kettingzeug' => 76, 'klaarkomen' => 77, 'klerebeer' => 78, 'klojo' => 79, 'klooien' => 80, 'klootjesvolk' => 81, 'klootoog' => 82, 'klootzak' => 83, 'kloten' => 84, 'knor' => 85, 'kont' => 86, 'kontneuken' => 87, 'krentekakker' => 88, 'kut' => 89, 'kuttelikkertje' => 90, 'kwakkie' => 91, 'liefdesgrot' => 92, 'lul' => 93, 'lul-de-behanger' => 94, 'lulhannes' => 95, 'lummel' => 96, 'mafketel' => 97, 'matennaaier' => 98, 'matje' => 99, 'mof' => 100, 'muts' => 101, 'naaien' => 102, 'naakt' => 103, 'neuken' => 104, 'neukstier' => 105, 'nicht' => 106, 'oetlul' => 107, 'opgeilen' => 108, 'opkankeren' => 109, 'oprotten' => 110, 'opsodemieteren' => 111, 'op z\'n hondjes' => 112, 'op z\'n sodemieter geven' => 113, 'opzouten' => 114, 'ouwehoer' => 115, 'ouwehoeren' => 116, 'ouwe rukker' => 117, 'paal' => 118, 'paardelul' => 119, 'palen' => 120, 'penoze' => 121, 'piesen' => 122, 'pijpbekkieg' => 123, 'pijpen' => 124, 'pik' => 125, 'pleurislaaier' => 126, 'poep' => 127, 'poepen' => 128, 'poot' => 129, 'portiekslet' => 130, 'pot' => 131, 'potverdorie' => 132, 'publiciteitsgeil' => 133, 'raaskallen' => 134, 'reet' => 135, 'reetridder' => 136, 'reet trappen, voor zijn' => 137, 'remsporen' => 138, 'reutelen' => 139, 'rothoer' => 140, 'rotzak' => 141, 'rukhond' => 142, 'rukken' => 143, 'schatje' => 144, 'schijt' => 145, 'schijten' => 146, 'schoft' => 147, 'schuinsmarcheerder' => 148, 'shit' => 149, 'slempen' => 150, 'slet' => 151, 'sletterig' => 152, 'slik mijn zaad' => 153, 'snol' => 154, 'spuiten' => 155, 'standje' => 156, 'standje-69' => 157, 'stoephoer' => 158, 'stootje' => 159, 'stront' => 160, 'sufferd' => 161, 'tapijtnek' => 162, 'teef' => 163, 'temeier' => 164, 'teringlijer' => 165, 'toeter' => 166, 'tongzoeng' => 167, 'triootjeg' => 168, 'trottoir prostituée' => 169, 'trottoirteef' => 170, 'vergallen' => 171, 'verkloten' => 172, 'verneuken' => 173, 'viespeuk' => 174, 'vingeren' => 175, 'vleesroos' => 176, 'voor jan lul' => 177, 'voor jan-met-de-korte-achternaam' => 178, 'watje' => 179, 'welzijnsmafia' => 180, 'wijf' => 181, 'wippen' => 182, 'wuftje' => 183, 'zaadje' => 184, 'zakkenwasser' => 185, 'zeiken' => 186, 'zeiker' => 187, 'zuigen' => 188, 'zuiplap' => 189, );
+$temp = array('aardappels afgieten' => 0, 'achter het raam zitten' => 1, 'afberen' => 2, 'aflebberen' => 3, 'afrossen' => 4, 'afrukken' => 5, 'aftrekken' => 6, 'afwerkplaats' => 7, 'afzeiken' => 8, 'afzuigen' => 9, 'een halve man en een paardekop' => 10, 'anita' => 11, 'asbak' => 12, 'aso' => 13, 'bagger schijten' => 14, 'balen' => 15, 'bedonderen' => 16, 'befborstel' => 17, 'beffen' => 18, 'bekken' => 19, 'belazeren' => 20, 'besodemieterd zijn' => 21, 'besodemieteren' => 22, 'beurt' => 23, 'boemelen' => 24, 'boerelul' => 25, 'boerenpummel' => 26, 'bokkelul' => 27, 'botergeil' => 28, 'broekhoesten' => 29, 'brugpieper' => 30, 'buffelen' => 31, 'buiten de pot piesen' => 32, 'da\'s kloten van de bok' => 33, 'de ballen' => 34, 'de hoer spelen' => 35, 'de hond uitlaten' => 36, 'de koffer induiken' => 37, 'del' => 38, 'de pijp uitgaan' => 39, 'dombo' => 40, 'draaikont' => 41, 'driehoog achter wonen' => 42, 'drol' => 43, 'drooggeiler' => 44, 'droogkloot' => 45, 'een beurt geven' => 46, 'een nummertje maken' => 47, 'een wip maken' => 48, 'eikel' => 49, 'engerd' => 50, 'flamoes' => 51, 'flikken' => 52, 'flikker' => 53, 'gadverdamme' => 54, 'galbak' => 55, 'gat' => 56, 'gedoogzone' => 57, 'geilneef' => 58, 'gesodemieter' => 59, 'godverdomme' => 60, 'graftak' => 61, 'gras maaien' => 62, 'gratenkut' => 63, 'greppeldel' => 64, 'griet' => 65, 'hoempert' => 66, 'hoer' => 67, 'hoerenbuurt' => 68, 'hoerenloper' => 69, 'hoerig' => 70, 'hol' => 71, 'hufter' => 72, 'huisdealer' => 73, 'johny' => 74, 'kanen' => 75, 'kettingzeug' => 76, 'klaarkomen' => 77, 'klerebeer' => 78, 'klojo' => 79, 'klooien' => 80, 'klootjesvolk' => 81, 'klootoog' => 82, 'klootzak' => 83, 'kloten' => 84, 'knor' => 85, 'kont' => 86, 'kontneuken' => 87, 'krentekakker' => 88, 'kut' => 89, 'kuttelikkertje' => 90, 'kwakkie' => 91, 'liefdesgrot' => 92, 'lul' => 93, 'lul-de-behanger' => 94, 'lulhannes' => 95, 'lummel' => 96, 'mafketel' => 97, 'matennaaier' => 98, 'matje' => 99, 'mof' => 100, 'muts' => 101, 'naaien' => 102, 'naakt' => 103, 'neuken' => 104, 'neukstier' => 105, 'nicht' => 106, 'oetlul' => 107, 'opgeilen' => 108, 'opkankeren' => 109, 'oprotten' => 110, 'opsodemieteren' => 111, 'op z\'n hondjes' => 112, 'op z\'n sodemieter geven' => 113, 'opzouten' => 114, 'ouwehoer' => 115, 'ouwehoeren' => 116, 'ouwe rukker' => 117, 'paal' => 118, 'paardelul' => 119, 'palen' => 120, 'penoze' => 121, 'piesen' => 122, 'pijpbekkieg' => 123, 'pijpen' => 124, 'pik' => 125, 'pleurislaaier' => 126, 'poep' => 127, 'poepen' => 128, 'poot' => 129, 'portiekslet' => 130, 'pot' => 131, 'potverdorie' => 132, 'publiciteitsgeil' => 133, 'raaskallen' => 134, 'reet' => 135, 'reetridder' => 136, 'reet trappen, voor zijn' => 137, 'remsporen' => 138, 'reutelen' => 139, 'rothoer' => 140, 'rotzak' => 141, 'rukhond' => 142, 'rukken' => 143, 'schatje' => 144, 'schijt' => 145, 'schijten' => 146, 'schoft' => 147, 'schuinsmarcheerder' => 148, 'shit' => 149, 'slempen' => 150, 'slet' => 151, 'sletterig' => 152, 'slik mijn zaad' => 153, 'snol' => 154, 'spuiten' => 155, 'standje' => 156, 'standje-69' => 157, 'stoephoer' => 158, 'stootje' => 159, 'stront' => 160, 'sufferd' => 161, 'tapijtnek' => 162, 'teef' => 163, 'temeier' => 164, 'teringlijer' => 165, 'toeter' => 166, 'tongzoeng' => 167, 'triootjeg' => 168, 'trottoir prostituée' => 169, 'trottoirteef' => 170, 'vergallen' => 171, 'verkloten' => 172, 'verneuken' => 173, 'viespeuk' => 174, 'vingeren' => 175, 'vleesroos' => 176, 'voor jan lul' => 177, 'voor jan-met-de-korte-achternaam' => 178, 'watje' => 179, 'welzijnsmafia' => 180, 'wijf' => 181, 'wippen' => 182, 'wuftje' => 183, 'zaadje' => 184, 'zakkenwasser' => 185, 'zeiken' => 186, 'zeiker' => 187, 'zuigen' => 188, 'zuiplap' => 189,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/no.php b/languages/no.php
index eba67a0..2b987fa 100755
--- a/languages/no.php
+++ b/languages/no.php
@@ -1,7 +1,7 @@
0, 'dritt' => 1, 'drittsekk' => 2, 'faen' => 3, 'faen i helvete' => 4, 'fan' => 5, 'fanken' => 6, 'fitte' => 7, 'forbanna' => 8, 'forbannet' => 9, 'forjævlig' => 10, 'fuck' => 11, 'fy faen' => 12, 'føkk' => 13, 'føkka' => 14, 'føkkings' => 15, 'jævla' => 16, 'jævlig' => 17, 'helvete' => 18, 'helvetet' => 19, 'kuk' => 20, 'kukene' => 21, 'kuker' => 22, 'morraknuller' => 23, 'morrapuler' => 24, 'nigger' => 25, 'pakkis' => 26, 'pikk' => 27, 'pokker' => 28, 'ræva' => 29, 'ræven' => 30, 'satan' => 31, 'shit' => 32, 'sinnsykt' => 33, 'skitt' => 34, 'sotrør' => 35, 'ståpikk' => 36, 'ståpikkene' => 37, 'ståpikker' => 38, 'svartheiteste' => 39,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/pl.php b/languages/pl.php
index 6126e13..b0e8f05 100755
--- a/languages/pl.php
+++ b/languages/pl.php
@@ -1,8 +1,8 @@
0, 'burdelmama' => 1, 'chuj' => 2, 'chujnia' => 3, 'ciota' => 4, 'cipa' => 5, 'cyc' => 6, 'debil' => 7, 'dmuchać' => 8, 'do kurwy nędzy' => 9, 'dupa' => 10, 'dupek' => 11, 'duperele' => 12, 'dziwka' => 13, 'fiut' => 14, 'gówno' => 15, 'gówno prawda' => 16, 'huj' => 17, 'huj ci w dupę' => 18, 'jajco' => 19, 'jajko' => 20, 'ja pierdolę' => 21, 'jebać' => 22, 'jebany' => 23, 'kurwa' => 24, 'kurwy' => 25, 'kutafon' => 26, 'kutas' => 27, 'lizać pałę' => 28, 'obciągać chuja' => 29, 'obciągać fiuta' => 30, 'obciągać loda' => 31, 'pieprzyć' => 32, 'pierdolec' => 33, 'pierdolić' => 34, 'pierdolnąć' => 35, 'pierdolnięty' => 36, 'pierdoła' => 37, 'pierdzieć' => 38, 'pizda' => 39, 'pojeb' => 40, 'pojebany' => 41, 'popierdolony' => 42, 'robic loda' => 43, 'robić loda' => 44, 'ruchać' => 45, 'rzygać' => 46, 'skurwysyn' => 47, 'sraczka' => 48, 'srać' => 49, 'suka' => 50, 'syf' => 51, 'wkurwiać' => 52, 'zajebisty' => 53,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/pt.php b/languages/pt.php
index 0c09c42..0c599d3 100755
--- a/languages/pt.php
+++ b/languages/pt.php
@@ -1,8 +1,8 @@
0, 'amador' => 1, 'ânus' => 2, 'aranha' => 3, 'ariano' => 4, 'balalao' => 5, 'bastardo' => 6, 'bicha' => 7, 'biscate' => 8, 'bissexual' => 9, 'boceta' => 10, 'boob' => 11, 'bosta' => 12, 'braulio de borracha' => 13, 'bumbum' => 14, 'burro' => 15, 'cabrao' => 16, 'cacete' => 17, 'cagar' => 18, 'camisinha' => 19, 'caralho' => 20, 'cerveja' => 21, 'chochota' => 22, 'chupar' => 23, 'clitoris' => 24, 'cocaína' => 25, 'coito' => 26, 'colhoes' => 27, 'comer' => 28, 'cona' => 29, 'consolo' => 30, 'corno' => 31, 'cu' => 32, 'dar o rabo' => 33, 'dum raio' => 34, 'esporra' => 35, 'fecal' => 36, 'filho da puta' => 37, 'foda' => 38, 'foda-se' => 39, 'foder' => 40, 'frango assado' => 41, 'gozar' => 42, 'grelho' => 43, 'heroína' => 44, 'heterosexual' => 45, 'homem gay' => 46, 'homoerótico' => 47, 'homosexual' => 48, 'inferno' => 49, 'lésbica' => 50, 'lolita' => 51, 'mama' => 52, 'merda' => 53, 'paneleiro' => 54, 'passar um cheque' => 55, 'pau' => 56, 'peidar' => 57, 'pênis' => 58, 'pinto' => 59, 'porra' => 60, 'puta' => 61, 'puta que pariu' => 62, 'puta que te pariu' => 63, 'queca' => 64, 'sacanagem' => 65, 'saco' => 66, 'torneira' => 67, 'transar' => 68, 'vadia' => 69, 'vai-te foder' => 70, 'vai tomar no cu' => 71, 'veado' => 72, 'vibrador' => 73, 'xana' => 74, 'xochota' => 75,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/ru.php b/languages/ru.php
index b58195c..e5f64f5 100755
--- a/languages/ru.php
+++ b/languages/ru.php
@@ -1,7 +1,7 @@
0, 'byk' => 1, 'chernozhopyi' => 2, 'dolboy\'eb' => 3, 'ebalnik' => 4, 'ebalo' => 5, 'ebalom sch\'elkat' => 6, 'gol' => 7, 'mudack' => 8, 'opizdenet' => 9, 'osto\'eblo' => 10, 'ostokhuitel\'no' => 11, 'ot\'ebis' => 12, 'otmudohat' => 13, 'otpizdit' => 14, 'otsosi' => 15, 'padlo' => 16, 'pedik' => 17, 'perdet' => 18, 'petuh' => 19, 'pidar gnoinyj' => 20, 'pizda' => 21, 'pizdato' => 22, 'pizdatyi' => 23, 'piz\'det' => 24, 'pizdetc' => 25, 'pizdoi nakryt\'sja' => 26, 'pizd\'uk' => 27, 'piz`dyulina' => 28, 'podi ku\'evo' => 29, 'poeben' => 30, 'po\'imat\' na konchik' => 31, 'po\'iti posrat' => 32, 'po khuy' => 33, 'poluchit pizdy' => 34, 'pososi moyu konfetku' => 35, 'prissat' => 36, 'proebat' => 37, 'promudobl\'adsksya pizdopro\'ebina' => 38, 'propezdoloch' => 39, 'prosrat' => 40, 'raspeezdeyi' => 41, 'raspizdatyi' => 42, 'raz\'yebuy' => 43, 'raz\'yoba' => 44, 's\'ebat\'sya' => 45, 'shalava' => 46, 'styervo' => 47, 'sukin syn' => 48, 'svodit posrat' => 49, 'svoloch' => 50, 'trakhat\'sya' => 51, 'trimandoblydskiy pizdoproyob' => 52, 'ubl\'yudok' => 53, 'uboy' => 54, 'u\'ebitsche' => 55, 'vafl\'a' => 56, 'vafli lovit' => 57, 'v pizdu' => 58, 'vyperdysh' => 59, 'vzdrochennyi' => 60, 'yeb vas' => 61, 'za\'ebat' => 62, 'zaebis' => 63, 'zalupa' => 64, 'zalupat' => 65, 'zasranetc' => 66, 'zassat' => 67, 'zlo\'ebuchy' => 68, 'бздёнок' => 69, 'блядки' => 70, 'блядовать' => 71, 'блядство' => 72, 'блядь' => 73, 'бугор' => 74, 'во пизду' => 75, 'встать раком' => 76, 'выёбываться' => 77, 'гандон' => 78, 'говно' => 79, 'говнюк' => 80, 'голый' => 81, 'дать пизды' => 82, 'дерьмо' => 83, 'дрочить' => 84, 'другой дразнится' => 85, 'ёбарь' => 86, 'ебать' => 87, 'ебать-копать' => 88, 'ебло' => 89, 'ебнуть' => 90, 'ёб твою мать' => 91, 'жопа' => 92, 'жополиз' => 93, 'играть на кожаной флейте' => 94, 'измудохать' => 95, 'каждый дрочит как он хочет' => 96, 'какая разница' => 97, 'как два пальца обоссать' => 98, 'курите мою трубку' => 99, 'лысого в кулаке гонять' => 100, 'малофья' => 101, 'манда' => 102, 'мандавошка' => 103, 'мент' => 104, 'муда' => 105, 'мудило' => 106, 'мудозвон' => 107, 'наебать' => 108, 'наебениться' => 109, 'наебнуться' => 110, 'на фиг' => 111, 'на хуй' => 112, 'на хую вертеть' => 113, 'на хуя' => 114, 'нахуячиться' => 115, 'невебенный' => 116, 'не ебет' => 117, 'ни за хуй собачу' => 118, 'ни хуя' => 119, 'обнаженный' => 120, 'обоссаться можно' => 121, 'один ебётся' => 122, 'опесдол' => 123, 'офигеть' => 124, 'охуеть' => 125, 'охуительно' => 126, 'половое сношение' => 127, 'секс' => 128, 'сиськи' => 129, 'спиздить' => 130, 'срать' => 131, 'ссать' => 132, 'траxать' => 133, 'ты мне ваньку не валяй' => 134, 'фига' => 135, 'хапать' => 136, 'хер с ней' => 137, 'хер с ним' => 138, 'хохол' => 139, 'хрен' => 140, 'хуёво' => 141, 'хуёвый' => 142, 'хуем груши околачивать' => 143, 'хуеплет' => 144, 'хуило' => 145, 'хуиней страдать' => 146, 'хуиня' => 147, 'хуй' => 148, 'хуйнуть' => 149, 'хуй пинать' => 150,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/sv.php b/languages/sv.php
index 56055c4..5d37202 100755
--- a/languages/sv.php
+++ b/languages/sv.php
@@ -1,7 +1,7 @@
0, 'brutta' => 1, 'discofitta' => 2, 'dra åt helvete' => 3, 'fan' => 4, 'fitta' => 5, 'fittig' => 6, 'för helvete' => 7, 'helvete' => 8, 'hård' => 9, 'jävlar' => 10, 'knulla' => 11, 'kuk' => 12, 'kuksås' => 13, 'kötthuvud' => 14, 'köttnacke' => 15, 'moona' => 16, 'moonade' => 17, 'moonar' => 18, 'moonat' => 19, 'mutta' => 20, 'nigger' => 21, 'neger' => 22, 'olla' => 23, 'pippa' => 24, 'pitt' => 25, 'prutt' => 26, 'pök' => 27, 'runka' => 28, 'röv' => 29, 'rövhål' => 30, 'rövknulla' => 31, 'satan' => 32, 'skita' => 33, 'skit ner dig' => 34, 'skäggbiff' => 35, 'snedfitta' => 36, 'snefitta' => 37, 'stake' => 38, 'subba' => 39, 'sås' => 40, 'sätta på' => 41, 'tusan' => 42,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/th.php b/languages/th.php
index 512943e..800b4a6 100755
--- a/languages/th.php
+++ b/languages/th.php
@@ -1,8 +1,8 @@
0, 'กระเด้า' => 1, 'กระหรี่' => 2, 'กะปิ' => 3, 'กู' => 4, 'ขี้' => 5, 'ควย' => 6, 'จิ๋ม' => 7, 'จู๋' => 8, 'เจ๊ก' => 9, 'เจี๊ยว' => 10, 'ดอกทอง' => 11, 'ตอแหล' => 12, 'ตูด' => 13, 'น้ําแตก' => 14, 'มึง' => 15, 'แม่ง' => 16, 'เย็ด' => 17, 'รูตูด' => 18, 'ล้างตู้เย็น' => 19, 'ส้นตีน' => 20, 'สัด' => 21, 'เสือก' => 22, 'หญิงชาติชั่ว' => 23, 'หลั่ง' => 24, 'ห่า' => 25, 'หํา' => 26, 'หี' => 27, 'เหี้ย' => 28, 'อมนกเขา' => 29, 'ไอ้ควาย' => 30,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
\ No newline at end of file
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/tlh.php b/languages/tlh.php
index 5cc21fb..48a5d6a 100755
--- a/languages/tlh.php
+++ b/languages/tlh.php
@@ -1,7 +1,7 @@
0, 'QI\'yaH' => 1, 'Qu\'vatlh' => 2,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/tr.php b/languages/tr.php
index 1a4c014..4e2745c 100755
--- a/languages/tr.php
+++ b/languages/tr.php
@@ -1,8 +1,8 @@
0, 'amcığa' => 1, 'amcığı' => 2, 'amcığın' => 3, 'amcık' => 4, 'amcıklar' => 5, 'amcıklara' => 6, 'amcıklarda' => 7, 'amcıklardan' => 8, 'amcıkları' => 9, 'amcıkların' => 10, 'amcıkta' => 11, 'amcıktan' => 12, 'amı' => 13, 'amlar' => 14, 'çingene' => 15, 'Çingenede' => 16, 'Çingeneden' => 17, 'Çingeneler' => 18, 'Çingenelerde' => 19, 'Çingenelerden' => 20, 'Çingenelere' => 21, 'Çingeneleri' => 22, 'Çingenelerin' => 23, 'Çingenenin' => 24, 'Çingeneye' => 25, 'Çingeneyi' => 26, 'göt' => 27, 'göte' => 28, 'götler' => 29, 'götlerde' => 30, 'götlerden' => 31, 'götlere' => 32, 'götleri' => 33, 'götlerin' => 34, 'götte' => 35, 'götten' => 36, 'götü' => 37, 'götün' => 38, 'götveren' => 39, 'götverende' => 40, 'götverenden' => 41, 'götverene' => 42, 'götvereni' => 43, 'götverenin' => 44, 'götverenler' => 45, 'götverenlerde' => 46, 'götverenlerden' => 47, 'götverenlere' => 48, 'götverenleri' => 49, 'götverenlerin' => 50, 'kaltağa' => 51, 'kaltağı' => 52, 'kaltağın' => 53, 'kaltak' => 54, 'kaltaklar' => 55, 'kaltaklara' => 56, 'kaltaklarda' => 57, 'kaltaklardan' => 58, 'kaltakları' => 59, 'kaltakların' => 60, 'kaltakta' => 61, 'kaltaktan' => 62, 'orospu' => 63, 'orospuda' => 64, 'orospudan' => 65, 'orospular' => 66, 'orospulara' => 67, 'orospularda' => 68, 'orospulardan' => 69, 'orospuları' => 70, 'orospuların' => 71, 'orospunun' => 72, 'orospuya' => 73, 'orospuyu' => 74, 'otuz birci' => 75, 'otuz bircide' => 76, 'otuz birciden' => 77, 'otuz birciler' => 78, 'otuz bircilerde' => 79, 'otuz bircilerden' => 80, 'otuz bircilere' => 81, 'otuz bircileri' => 82, 'otuz bircilerin' => 83, 'otuz bircinin' => 84, 'otuz birciye' => 85, 'otuz birciyi' => 86, 'saksocu' => 87, 'saksocuda' => 88, 'saksocudan' => 89, 'saksocular' => 90, 'saksoculara' => 91, 'saksocularda' => 92, 'saksoculardan' => 93, 'saksocuları' => 94, 'saksocuların' => 95, 'saksocunun' => 96, 'saksocuya' => 97, 'saksocuyu' => 98, 'sıçmak' => 99, 'sik' => 100, 'sike' => 101, 'siker sikmez' => 102, 'siki' => 103, 'sikilir sikilmez' => 104, 'sikin' => 105, 'sikler' => 106, 'siklerde' => 107, 'siklerden' => 108, 'siklere' => 109, 'sikleri' => 110, 'siklerin' => 111, 'sikmek' => 112, 'sikmemek' => 113, 'sikte' => 114, 'sikten' => 115, 'siktir' => 116, 'siktirir siktirmez' => 117, 'taşağa' => 118, 'taşağı' => 119, 'taşağın' => 120, 'taşak' => 121, 'taşaklar' => 122, 'taşaklara' => 123, 'taşaklarda' => 124, 'taşaklardan' => 125, 'taşakları' => 126, 'taşakların' => 127, 'taşakta' => 128, 'taşaktan' => 129, 'yarağa' => 130, 'yarağı' => 131, 'yarağın' => 132, 'yarak' => 133, 'yaraklar' => 134, 'yaraklara' => 135, 'yaraklarda' => 136, 'yaraklardan' => 137, 'yarakları' => 138, 'yarakların' => 139, 'yarakta' => 140, 'yaraktan' => 141,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
+$badWords = array_merge($badWords, $temp);
diff --git a/languages/zh.php b/languages/zh.php
index 73633bf..e194b12 100755
--- a/languages/zh.php
+++ b/languages/zh.php
@@ -1,8 +1,8 @@
0, '13点' => 1, '三级片' => 2, '下三烂' => 3, '下贱' => 4, '个老子的' => 5, '九游' => 6, '乳' => 7, '乳交' => 8, '乳头' => 9, '乳房' => 10, '乳波臀浪' => 11, '交配' => 12, '仆街' => 306, '他奶奶' => 14, '他奶奶的' => 15, '他奶娘的' => 16, '他妈' => 17, '他妈ㄉ王八蛋' => 18, '他妈地' => 19, '他妈的' => 20, '他娘' => 21, '他马的' => 22, '你个傻比' => 23, '你他马的' => 24, '你全家' => 25, '你奶奶的' => 26, '你她马的' => 27, '你妈' => 28, '你妈的' => 29, '你娘' => 30, '你娘卡好' => 31, '你娘咧' => 32, '你它妈的' => 33, '你它马的' => 34, '你是鸡' => 35, '你是鸭' => 36, '你马的' => 37, '做爱' => 38, '傻比' => 39, '傻逼' => 40, '册那' => 41, '军妓' => 42, '几八' => 43, '几叭' => 44, '几巴' => 45, '几芭' => 46, '刚度' => 47, '刚瘪三' => 48, '包皮' => 49, '十三点' => 50, '卖B' => 51, '卖比' => 52, '卖淫' => 53, '卵' => 54, '卵子' => 55, '双峰微颤' => 56, '口交' => 57, '口肯' => 58, '叫床' => 59, '吃屎' => 60, '后庭' => 61, '吹箫' => 62, '塞你公' => 63, '塞你娘' => 64, '塞你母' => 65, '塞你爸' => 66, '塞你老师' => 67, '塞你老母' => 68, '处女' => 69, '外阴' => 70, '大卵子' => 71, '大卵泡' => 72, '大鸡巴' => 73, '奶' => 74, '奶奶的熊' => 75, '奶子' => 76, '奸' => 77, '奸你' => 78, '她妈地' => 79, '她妈的' => 80, '她马的' => 81, '妈B' => 82, '妈个B' => 83, '妈个比' => 84, '妈个老比' => 85, '妈妈的' => 86, '妈比' => 87, '妈的' => 88, '妈的B' => 89, '妈逼' => 90, '妓' => 91, '妓女' => 92, '妓院' => 93, '妳她妈的' => 94, '妳妈的' => 95, '妳娘的' => 96, '妳老母的' => 97, '妳马的' => 98, '姘头' => 99, '姣西' => 100, '姦' => 101, '娘个比' => 102, '娘的' => 103, '婊子' => 104, '婊子养的' => 105, '嫖娼' => 106, '嫖客' => 107, '它妈地' => 108, '它妈的' => 109, '密洞' => 110, '射你' => 111, '射精' => 112, '小乳头' => 113, '小卵子' => 114, '小卵泡' => 115, '小瘪三' => 116, '小肉粒' => 117, '小骚比' => 118, '小骚货' => 119, '小鸡巴' => 120, '小鸡鸡' => 121, '屁眼' => 122, '屁股' => 123, '屄' => 124, '屌' => 125, '巨乳' => 126, '干x娘' => 127, '干七八' => 128, '干你' => 129, '干你妈' => 130, '干你娘' => 131, '干你老母' => 132, '干你良' => 133, '干妳妈' => 134, '干妳娘' => 135, '干妳老母' => 136, '干妳马' => 137, '干您娘' => 138, '干机掰' => 139, '干死CS' => 140, '干死GM' => 141, '干死你' => 142, '干死客服' => 143, '幹' => 144, '强奸' => 145, '强奸你' => 146, '性' => 147, '性交' => 148, '性器' => 149, '性无能' => 150, '性爱' => 151, '情色' => 152, '想上你' => 153, '懆您妈' => 154, '懆您娘' => 155, '懒8' => 156, '懒八' => 157, '懒叫' => 158, '懒教' => 159, '成人' => 160, '我操你祖宗十八代' => 161, '扒光' => 162, '打炮' => 163, '打飞机' => 164, '抽插' => 165, '招妓' => 166, '插你' => 167, '插死你' => 168, '撒尿' => 169, '操你' => 170, '操你全家' => 171, '操你奶奶' => 172, '操你妈' => 173, '操你娘' => 174, '操你祖宗' => 175, '操你老妈' => 176, '操你老母' => 177, '操妳' => 178, '操妳全家' => 179, '操妳妈' => 180, '操妳娘' => 181, '操妳祖宗' => 182, '操机掰' => 183, '操比' => 184, '操逼' => 185, '放荡' => 186, '日他娘' => 187, '日你' => 188, '日你妈' => 189, '日你老娘' => 190, '日你老母' => 191, '日批' => 192, '月经' => 193, '机八' => 194, '机巴' => 195, '机机歪歪' => 196, '杂种' => 197, '浪叫' => 198, '淫' => 199, '淫乱' => 200, '淫妇' => 201, '淫棍' => 202, '淫水' => 203, '淫秽' => 204, '淫荡' => 205, '淫西' => 206, '湿透的内裤' => 207, '激情' => 208, '灨你娘' => 209, '烂货' => 210, '烂逼' => 211, '爛' => 212, '狗屁' => 213, '狗日' => 214, '狗狼养的' => 215, '玉杵' => 216, '王八蛋' => 217, '瓜娃子' => 218, '瓜婆娘' => 219, '瓜批' => 220, '瘪三' => 221, '白烂' => 222, '白痴' => 223, '白癡' => 224, '祖宗' => 225, '私服' => 226, '笨蛋' => 227, '精子' => 228, '老二' => 229, '老味' => 230, '老母' => 231, '老瘪三' => 232, '老骚比' => 233, '老骚货' => 234, '肉壁' => 235, '肉棍子' => 236, '肉棒' => 237, '肉缝' => 238, '肏' => 239, '肛交' => 240, '肥西' => 241, '色情' => 242, '花柳' => 243, '荡妇' => 244, '賤' => 245, '贝肉' => 246, '贱B' => 247, '贱人' => 248, '贱货' => 249, '贼你妈' => 250, '赛你老母' => 251, '赛妳阿母' => 252, '赣您娘' => 253, '轮奸' => 254, '迷药' => 255, '逼' => 256, '逼样' => 257, '野鸡' => 258, '阳具' => 259, '阳萎' => 260, '阴唇' => 261, '阴户' => 262, '阴核' => 263, '阴毛' => 264, '阴茎' => 265, '阴道' => 266, '阴部' => 267, '雞巴' => 268, '靠北' => 269, '靠母' => 270, '靠爸' => 271, '靠背' => 272, '靠腰' => 273, '驶你公' => 274, '驶你娘' => 275, '驶你母' => 276, '驶你爸' => 277, '驶你老师' => 278, '驶你老母' => 279, '骚比' => 280, '骚货' => 281, '骚逼' => 282, '鬼公' => 283, '鸡8' => 284, '鸡八' => 285, '鸡叭' => 286, '鸡吧' => 287, '鸡奸' => 288, '鸡巴' => 289, '鸡芭' => 290, '鸡鸡' => 291, '龟儿子' => 292, '龟头' => 293, '𨳒' => 294, '陰莖' => 295, '㞗' => 296, '尻' => 297, '𨳊' => 298, '鳩' => 299, '𡳞' => 300, '𨶙' => 301, '撚' => 302, '𨳍' => 303, '柒' => 304, '閪' => 305, '咸家鏟' => 307, '冚家鏟' => 308, '咸家伶' => 309, '冚家拎' => 310, '笨實' => 311, '粉腸' => 312, '屎忽' => 313, '躝癱' => 314, '你老闆' => 315, '你老味' => 316, '你老母' => 317, '硬膠' => 318,);
// add temp to bad words
-$bad_words = array_merge($bad_words, $temp);
+$badWords = array_merge($badWords, $temp);
diff --git a/main.php b/main.php
index 40079a5..9d3c97b 100755
--- a/main.php
+++ b/main.php
@@ -1,356 +1,369 @@
1, "cs" => 1, "da" => 1, "de" => 1, "en" => 1, "eo" => 1, "es" => 1, "fa" => 1, "fi" => 1, "fil" => 1, "fr" => 1, "fr-CA-u-sd-caqc" => 1, "hi" => 1, "hi-Latn" => 1, "hu" => 1, "it" => 1, "ja" => 1, "kab" => 1, "ko" => 1, "nl" => 1, "no" => 1, "pl" => 1, "pt" => 1, "ru" => 1, "sv" => 1, "th" => 1, "tlh" => 1, "tr" => 1, "zh" => 1);
+
+
+/**
+ * Returns the supported languages based on the input HTTP_ACCEPT_LANGUAGE header or similarly formatted string of language codes.
+ * @param array $availableLanguages An array of available languages in the format array('en', 'en_US')
+ * @param string $httpAcceptLanguage The HTTP_ACCEPT_LANGUAGE header
+ * @param array $detectedLanguages An array of detected languages in the format array('en' , 'hi')
+ * @return array of supported languages, formatted like array(en => 1), or empty Array if not found
+ */
+function getSupportedLanguages(array &$availableLanguages, string $httpAcceptLanguage, array $detectedLanguages = []): array
+{
+ $langs = array();
+ if (count($detectedLanguages) > 0) {
+ foreach ($detectedLanguages as $detectedLanguage) {
+ if (isset($availableLanguages[$detectedLanguage])) {
+ $langs[] = $detectedLanguage;
+ }
+ }
+ } else {
+ preg_match_all('~([\w-]+)(?:[^,\d]+([\d.]+))?~', strtolower($httpAcceptLanguage), $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
list($a, $b) = explode('-', $match[1]) + array('', '');
- $value = isset($match[2]) ? (float) $match[2] : 1.0;
- if (isset($available_languages[$match[1]])) {
- $langs[$match[1]] = 1;
- } elseif (isset($available_languages[$a])) {
- $langs[$a] = 1;
+ if (isset($availableLanguages[$match[1]])) {
+ $langs[] = $match[1];
+ } elseif (isset($availableLanguages[$a])) {
+ $langs[] = $a;
}
}
- return $langs;
}
+ return $langs;
}
-if (!function_exists("country_code_to_locale")) {
- //
- // Returns a locale from a country code that is provided.
- //
- // @param $country_code ISO 3166-2-alpha 2 country code
- // @returns array of locales, formatted like en-US, or empty Array if not found
- //
- function country_code_to_locale($country_code)
- {
- // Locale list taken from:
- // http://stackoverflow.com/questions/3191664/
- // list-of-all-locales-and-their-short-codes
- $locales = array(
- 'af-ZA',
- 'am-ET',
- 'ar-AE',
- 'ar-BH',
- 'ar-DZ',
- 'ar-EG',
- 'ar-IQ',
- 'ar-JO',
- 'ar-KW',
- 'ar-LB',
- 'ar-LY',
- 'ar-MA',
- 'arn-CL',
- 'ar-OM',
- 'ar-QA',
- 'ar-SA',
- 'ar-SY',
- 'ar-TN',
- 'ar-YE',
- 'as-IN',
- 'az-Cyrl-AZ',
- 'az-Latn-AZ',
- 'ba-RU',
- 'be-BY',
- 'bg-BG',
- 'bn-BD',
- 'bn-IN',
- 'bo-CN',
- 'br-FR',
- 'bs-Cyrl-BA',
- 'bs-Latn-BA',
- 'ca-ES',
- 'co-FR',
- 'cs-CZ',
- 'cy-GB',
- 'da-DK',
- 'de-AT',
- 'de-CH',
- 'de-DE',
- 'de-LI',
- 'de-LU',
- 'dsb-DE',
- 'dv-MV',
- 'el-GR',
- 'en-029',
- 'en-AU',
- 'en-BZ',
- 'en-CA',
- 'en-GB',
- 'en-IE',
- 'en-IN',
- 'en-JM',
- 'en-MY',
- 'en-NZ',
- 'en-PH',
- 'en-SG',
- 'en-TT',
- 'en-US',
- 'en-ZA',
- 'en-ZW',
- 'es-AR',
- 'es-BO',
- 'es-CL',
- 'es-CO',
- 'es-CR',
- 'es-DO',
- 'es-EC',
- 'es-ES',
- 'es-GT',
- 'es-HN',
- 'es-MX',
- 'es-NI',
- 'es-PA',
- 'es-PE',
- 'es-PR',
- 'es-PY',
- 'es-SV',
- 'es-US',
- 'es-UY',
- 'es-VE',
- 'et-EE',
- 'eu-ES',
- 'fa-IR',
- 'fi-FI',
- 'fil-PH',
- 'fo-FO',
- 'fr-BE',
- 'fr-CA',
- 'fr-CH',
- 'fr-FR',
- 'fr-LU',
- 'fr-MC',
- 'fy-NL',
- 'ga-IE',
- 'gd-GB',
- 'gl-ES',
- 'gsw-FR',
- 'gu-IN',
- 'ha-Latn-NG',
- 'he-IL',
- 'hi-IN',
- 'hr-BA',
- 'hr-HR',
- 'hsb-DE',
- 'hu-HU',
- 'hy-AM',
- 'id-ID',
- 'ig-NG',
- 'ii-CN',
- 'is-IS',
- 'it-CH',
- 'it-IT',
- 'iu-Cans-CA',
- 'iu-Latn-CA',
- 'ja-JP',
- 'ka-GE',
- 'kk-KZ',
- 'kl-GL',
- 'km-KH',
- 'kn-IN',
- 'kok-IN',
- 'ko-KR',
- 'ky-KG',
- 'lb-LU',
- 'lo-LA',
- 'lt-LT',
- 'lv-LV',
- 'mi-NZ',
- 'mk-MK',
- 'ml-IN',
- 'mn-MN',
- 'mn-Mong-CN',
- 'moh-CA',
- 'mr-IN',
- 'ms-BN',
- 'ms-MY',
- 'mt-MT',
- 'nb-NO',
- 'ne-NP',
- 'nl-BE',
- 'nl-NL',
- 'nn-NO',
- 'nso-ZA',
- 'oc-FR',
- 'or-IN',
- 'pa-IN',
- 'pl-PL',
- 'prs-AF',
- 'ps-AF',
- 'pt-BR',
- 'pt-PT',
- 'qut-GT',
- 'quz-BO',
- 'quz-EC',
- 'quz-PE',
- 'rm-CH',
- 'ro-RO',
- 'ru-RU',
- 'rw-RW',
- 'sah-RU',
- 'sa-IN',
- 'se-FI',
- 'se-NO',
- 'se-SE',
- 'si-LK',
- 'sk-SK',
- 'sl-SI',
- 'sma-NO',
- 'sma-SE',
- 'smj-NO',
- 'smj-SE',
- 'smn-FI',
- 'sms-FI',
- 'sq-AL',
- 'sr-Cyrl-BA',
- 'sr-Cyrl-CS',
- 'sr-Cyrl-ME',
- 'sr-Cyrl-RS',
- 'sr-Latn-BA',
- 'sr-Latn-CS',
- 'sr-Latn-ME',
- 'sr-Latn-RS',
- 'sv-FI',
- 'sv-SE',
- 'sw-KE',
- 'syr-SY',
- 'ta-IN',
- 'te-IN',
- 'tg-Cyrl-TJ',
- 'th-TH',
- 'tk-TM',
- 'tn-ZA',
- 'tr-TR',
- 'tt-RU',
- 'tzm-Latn-DZ',
- 'ug-CN',
- 'uk-UA',
- 'ur-PK',
- 'uz-Cyrl-UZ',
- 'uz-Latn-UZ',
- 'vi-VN',
- 'wo-SN',
- 'xh-ZA',
- 'yo-NG',
- 'zh-CN',
- 'zh-HK',
- 'zh-MO',
- 'zh-SG',
- 'zh-TW',
- 'zu-ZA',
+/**
+ * Returns a locale from a country code that is provided.
+ * @param $countryCode ISO 3166-2-alpha 2 country code
+ * @return array of locales, formatted like en-US, or empty Array if not found
+ */
+function countryCodeToLocale(string $countryCode): array
+{
+ // Locale list taken from:
+ // http://stackoverflow.com/questions/3191664/
+ // list-of-all-locales-and-their-short-codes
+ $locales = array(
+ 'af-ZA',
+ 'am-ET',
+ 'ar-AE',
+ 'ar-BH',
+ 'ar-DZ',
+ 'ar-EG',
+ 'ar-IQ',
+ 'ar-JO',
+ 'ar-KW',
+ 'ar-LB',
+ 'ar-LY',
+ 'ar-MA',
+ 'arn-CL',
+ 'ar-OM',
+ 'ar-QA',
+ 'ar-SA',
+ 'ar-SY',
+ 'ar-TN',
+ 'ar-YE',
+ 'as-IN',
+ 'az-Cyrl-AZ',
+ 'az-Latn-AZ',
+ 'ba-RU',
+ 'be-BY',
+ 'bg-BG',
+ 'bn-BD',
+ 'bn-IN',
+ 'bo-CN',
+ 'br-FR',
+ 'bs-Cyrl-BA',
+ 'bs-Latn-BA',
+ 'ca-ES',
+ 'co-FR',
+ 'cs-CZ',
+ 'cy-GB',
+ 'da-DK',
+ 'de-AT',
+ 'de-CH',
+ 'de-DE',
+ 'de-LI',
+ 'de-LU',
+ 'dsb-DE',
+ 'dv-MV',
+ 'el-GR',
+ 'en-029',
+ 'en-AU',
+ 'en-BZ',
+ 'en-CA',
+ 'en-GB',
+ 'en-IE',
+ 'en-IN',
+ 'en-JM',
+ 'en-MY',
+ 'en-NZ',
+ 'en-PH',
+ 'en-SG',
+ 'en-TT',
+ 'en-US',
+ 'en-ZA',
+ 'en-ZW',
+ 'es-AR',
+ 'es-BO',
+ 'es-CL',
+ 'es-CO',
+ 'es-CR',
+ 'es-DO',
+ 'es-EC',
+ 'es-ES',
+ 'es-GT',
+ 'es-HN',
+ 'es-MX',
+ 'es-NI',
+ 'es-PA',
+ 'es-PE',
+ 'es-PR',
+ 'es-PY',
+ 'es-SV',
+ 'es-US',
+ 'es-UY',
+ 'es-VE',
+ 'et-EE',
+ 'eu-ES',
+ 'fa-IR',
+ 'fi-FI',
+ 'fil-PH',
+ 'fo-FO',
+ 'fr-BE',
+ 'fr-CA',
+ 'fr-CH',
+ 'fr-FR',
+ 'fr-LU',
+ 'fr-MC',
+ 'fy-NL',
+ 'ga-IE',
+ 'gd-GB',
+ 'gl-ES',
+ 'gsw-FR',
+ 'gu-IN',
+ 'ha-Latn-NG',
+ 'he-IL',
+ 'hi-IN',
+ 'hr-BA',
+ 'hr-HR',
+ 'hsb-DE',
+ 'hu-HU',
+ 'hy-AM',
+ 'id-ID',
+ 'ig-NG',
+ 'ii-CN',
+ 'is-IS',
+ 'it-CH',
+ 'it-IT',
+ 'iu-Cans-CA',
+ 'iu-Latn-CA',
+ 'ja-JP',
+ 'ka-GE',
+ 'kk-KZ',
+ 'kl-GL',
+ 'km-KH',
+ 'kn-IN',
+ 'kok-IN',
+ 'ko-KR',
+ 'ky-KG',
+ 'lb-LU',
+ 'lo-LA',
+ 'lt-LT',
+ 'lv-LV',
+ 'mi-NZ',
+ 'mk-MK',
+ 'ml-IN',
+ 'mn-MN',
+ 'mn-Mong-CN',
+ 'moh-CA',
+ 'mr-IN',
+ 'ms-BN',
+ 'ms-MY',
+ 'mt-MT',
+ 'nb-NO',
+ 'ne-NP',
+ 'nl-BE',
+ 'nl-NL',
+ 'nn-NO',
+ 'nso-ZA',
+ 'oc-FR',
+ 'or-IN',
+ 'pa-IN',
+ 'pl-PL',
+ 'prs-AF',
+ 'ps-AF',
+ 'pt-BR',
+ 'pt-PT',
+ 'qut-GT',
+ 'quz-BO',
+ 'quz-EC',
+ 'quz-PE',
+ 'rm-CH',
+ 'ro-RO',
+ 'ru-RU',
+ 'rw-RW',
+ 'sah-RU',
+ 'sa-IN',
+ 'se-FI',
+ 'se-NO',
+ 'se-SE',
+ 'si-LK',
+ 'sk-SK',
+ 'sl-SI',
+ 'sma-NO',
+ 'sma-SE',
+ 'smj-NO',
+ 'smj-SE',
+ 'smn-FI',
+ 'sms-FI',
+ 'sq-AL',
+ 'sr-Cyrl-BA',
+ 'sr-Cyrl-CS',
+ 'sr-Cyrl-ME',
+ 'sr-Cyrl-RS',
+ 'sr-Latn-BA',
+ 'sr-Latn-CS',
+ 'sr-Latn-ME',
+ 'sr-Latn-RS',
+ 'sv-FI',
+ 'sv-SE',
+ 'sw-KE',
+ 'syr-SY',
+ 'ta-IN',
+ 'te-IN',
+ 'tg-Cyrl-TJ',
+ 'th-TH',
+ 'tk-TM',
+ 'tn-ZA',
+ 'tr-TR',
+ 'tt-RU',
+ 'tzm-Latn-DZ',
+ 'ug-CN',
+ 'uk-UA',
+ 'ur-PK',
+ 'uz-Cyrl-UZ',
+ 'uz-Latn-UZ',
+ 'vi-VN',
+ 'wo-SN',
+ 'xh-ZA',
+ 'yo-NG',
+ 'zh-CN',
+ 'zh-HK',
+ 'zh-MO',
+ 'zh-SG',
+ 'zh-TW',
+ 'zu-ZA',
+ );
+
+ $languageCodes = array();
+ foreach ($locales as $locale) {
+ $localeRegion = locale_get_region($locale);
+ $localeLanguage = locale_get_primary_language($locale);
+ $localeArray = array(
+ 'language' => $localeLanguage,
+ 'region' => $localeRegion
);
- $language_codes = array();
- foreach ($locales as $locale) {
- $locale_region = locale_get_region($locale);
- $locale_language = locale_get_primary_language($locale);
- $locale_array = array(
- 'language' => $locale_language,
- 'region' => $locale_region
- );
-
- if (
- strtoupper($country_code) == $locale_region
- ) {
- array_push($language_codes, join('-', $locale_array));
- }
+ if (
+ strtoupper($countryCode) == $localeRegion
+ ) {
+ array_push($languageCodes, join('-', $localeArray));
}
- return $language_codes;
}
+ return $languageCodes;
}
-// get request languages
-$http_accept_language = isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : '';
+/**
+ * Get HTTP_ACCEPT_LANGUAGE and add additional languages to it
+ * @return string $httpAcceptLanguage
+ */
-// find the country code from cloudflare header
-if (!isset($_SERVER["HTTP_CF_IPCOUNTRY"])) {
- $_SERVER["HTTP_CF_IPCOUNTRY"] = "IN"; // for testing. won't run when deployed.
-}
+function getHttpAcceptLanguage(): string
+{
+ // Base languages
+ $httpAcceptLanguage = isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : '';
-if (isset($_SERVER["HTTP_CF_IPCOUNTRY"])) {
- $country_code = $_SERVER["HTTP_CF_IPCOUNTRY"];
+ // find the country code from cloudflare header
+ if (!isset($_SERVER["HTTP_CF_IPCOUNTRY"])) {
+ // for testing. won't run when deployed.
+ error_log("HTTP_CF_IPCOUNTRY not set, Setting to IN");
+ $_SERVER["HTTP_CF_IPCOUNTRY"] = "IN";
+ }
+ if (isset($_SERVER["HTTP_CF_IPCOUNTRY"])) {
+ $countryCode = $_SERVER["HTTP_CF_IPCOUNTRY"];
+ $languages = countryCodeToLocale($countryCode);
+ addAdditionalLanguages($httpAcceptLanguage, $languages);
+ }
- $languages = country_code_to_locale($country_code);
+ return $httpAcceptLanguage;
+}
- // find if the $language already exists in the $http_accept_language based on string comparison
- foreach ($languages as $language) {
- if (strpos($http_accept_language, $language) == false) {
- // if not, add the laguage to the start of the $http_accept_language
- $http_accept_language = $language . ", " . $http_accept_language;
+/**
+ * adds additional languages to the $httpAcceptLanguage
+ * @param $languagesToCheck string
+ * @param $additionalLanguages array
+ * @return void
+ */
+function addAdditionalLanguages(string &$languagesToCheck, array $additionalLanguages): void
+{
+ foreach ($additionalLanguages as $language) {
+ if (strpos($languagesToCheck, $language) == false) {
+ // if not, add the laguage to the start of the $httpAcceptLanguage
+ $languagesToCheck = $language . ", " . $languagesToCheck;
}
}
}
-// $http_accept_language = "ar, " . $http_accept_language; // TODO : remove this line
-$available_languages = array();
-
-// add all the available languages with bad word lists
-$available_languages["ar"] = 1;
-$available_languages["cs"] = 1;
-$available_languages["da"] = 1;
-$available_languages["de"] = 1;
-$available_languages["en"] = 1;
-$available_languages["eo"] = 1;
-$available_languages["es"] = 1;
-$available_languages["fa"] = 1;
-$available_languages["fi"] = 1;
-$available_languages["fil"] = 1;
-$available_languages["fr"] = 1;
-$available_languages["fr-CA-u-sd-caqc"] = 1;
-$available_languages["hi"] = 1;
-$available_languages["hu"] = 1;
-$available_languages["it"] = 1;
-$available_languages["ja"] = 1;
-$available_languages["kab"] = 1;
-$available_languages["ko"] = 1;
-$available_languages["nl"] = 1;
-$available_languages["no"] = 1;
-$available_languages["pl"] = 1;
-$available_languages["pt"] = 1;
-$available_languages["ru"] = 1;
-$available_languages["sv"] = 1;
-$available_languages["th"] = 1;
-$available_languages["tlh"] = 1;
-$available_languages["tr"] = 1;
-$available_languages["zh"] = 1;
-
-$langs = prefered_language($available_languages, $http_accept_language);
-
-// get the json data for each language in langs
-$bad_words = array();
-$bad_words_arabic = array();
-foreach ($langs as $lang => $value) {
- include(__DIR__ . "/languages/" . $lang . ".php");
-}
-
-// function to check if the text contains bad words using the bad words array
-function is_profanity($text, $exploded = null)
+/**
+ * Check if the text contains profanity
+ * @param string $text the text to check
+ * @param array $exploded the text exploded into an array (optional)
+ * @param array $detectedLanguages the languages detected in the text (optional)
+ * @return bool true if the text contains profanity, false if not
+ */
+function isProfanity(string &$text, array &$exploded = [], array $detectedLanguages = []): bool
{
- global $bad_words, $bad_words_arabic;
+ global $availableLanguages;
+
+ $badWords = array();
+ $badWordsArabic = array();
+
+ if ($detectedLanguages === []) {
+ $langs = getSupportedLanguages($availableLanguages, getHttpAcceptLanguage());
+ } else {
+ $langs = getSupportedLanguages($availableLanguages, "", $detectedLanguages);
+ }
- $check_arabic = boolval(count($bad_words_arabic));
+
+ // get the json data for each language in langs
+ foreach ($langs as $lang) {
+ // only works when include or require is used
+ include __DIR__ . "/languages/" . $lang . ".php";
+ }
+
+ $check_arabic = $badWordsArabic !== [];
// convert $text to array
- if ($exploded == null) {
- $text = explode(" ", $text);
+ if ($exploded == []) {
+ // remove emojis, punctuations and digits and convert to array
+ $cleanText = explode(" ", preg_replace('/[\x{1F600}-\x{1F64F}\x{1F300}-\x{1F5FF}\x{1F680}-\x{1F6FF}\x{2600}-\x{26FF}\x{2700}-\x{27BF}\x{1F900}-\x{1F9FF}\x{1F1E0}-\x{1F1FF}]|[[:punct:]]|[[:digit:]]/u', '', $text));
} else {
- $text = $exploded;
+ $cleanText = $exploded;
}
// check if the text contains bad words
- foreach ($text as $word) {
+ foreach ($cleanText as $word) {
$word = strtolower($word);
- if (key_exists($word, $bad_words)) {
+ if (key_exists($word, $badWords)) {
return true;
}
if ($check_arabic) {
- if (in_array($word, $bad_words_arabic)) {
+ if (in_array($word, $badWordsArabic)) {
return true;
}
}
@@ -358,12 +371,83 @@ function is_profanity($text, $exploded = null)
return false;
}
+/**
+ * Backward compatibility for v1.0.2
+ * @param string $text the text to check
+ * @param array $exploded the text exploded into an array (optional)
+ * @return bool true if the text contains profanity, false if not
+ * @deprecated
+ * @see isProfanity
+ */
+
+function is_profanity(string &$text, array &$exploded = []): bool
+{
+ return isProfanity($text, $exploded);
+}
+
+// RUN this only when the file is run directly and not when included
+if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) {
+ try {
+ $message = "hello";
+ assert(isProfanity($message) == false);
+ assert($message == "hello");
+
+ $message = "tum ek number ke madharchod ho";
+ assert(isProfanity($message) == true);
+ assert($message == "tum ek number ke madharchod ho");
+
+ $message = "tum ek randi ke madharchod ho";
+ assert(isProfanity($message) == true);
+ assert($message == "tum ek randi ke madharchod ho");
+
+ // Test empty message
+ $message = "";
+ assert(isProfanity($message) == false);
+ assert($message == "");
-// try {
-// assert(is_profanity("hello", $bad_words) == false);
-// assert(is_profanity("tum ek number ke madharchod ho", $bad_words) == true);
-// assert(is_profanity("tum ek randi ke madharchod ho", $bad_words) == true);
-// echo "All tests passed";
-// } catch (\Throwable $th) {
-// echo $th->getMessage();
-// }
+ // Test message with only one profanity word
+ $message = "bastard";
+ assert(isProfanity($message) == true);
+ assert($message == "bastard");
+
+ // Test message with multiple profanity words
+ $message = "what the hell is wrong with you, you motherfucker?";
+ assert(isProfanity($message) == true);
+ assert($message == "what the hell is wrong with you, you motherfucker?");
+
+ // Test message with profanity word inside a non-profanity word
+ $message = "classy";
+ assert(isProfanity($message) == false);
+ assert($message == "classy");
+
+ // Test message with profanity word partially censored
+ $message = "you f***ing idiot";
+ assert(isProfanity($message) == false);
+ assert($message == "you f***ing idiot");
+
+ // Test message with profanity word fully censored
+ $message = "you ***********";
+ assert(isProfanity($message) == false);
+ assert($message == "you ***********");
+
+ // Test message with profanity word at the beginning
+ $message = "shit happens";
+ assert(isProfanity($message) == true);
+ assert($message == "shit happens");
+
+ // Test message with profanity word at the end
+ $message = "that's bullshit";
+ assert(isProfanity($message) == true);
+ assert($message == "that's bullshit");
+
+ // Test message with multiple sentences
+ $message = "you fucking asshole! I can't believe you did this to me.";
+ assert(isProfanity($message) == true);
+ assert($message == "you fucking asshole! I can't believe you did this to me.");
+
+ echo "All tests passed" . PHP_EOL;
+ } catch (\Throwable $th) {
+ echo "Tests failed" . PHP_EOL;
+ echo $th->getMessage();
+ }
+}
diff --git a/process.php b/process.php
deleted file mode 100755
index 7d53056..0000000
--- a/process.php
+++ /dev/null
@@ -1,44 +0,0 @@
- $value) {
- $lang = $key;
- $words = json_decode($value, true);
- $words = array_flip($words);
-
- echo "$" . "available_languages['" . $lang . "'] = " . var_export($words, true) . ";\n";
- echo "
";
-}