| Bytes | Lang | Time | Link |
|---|---|---|---|
| 212 | Tcl | 170615T154343Z | sergiol |
| 241 | PHP | 170615T151947Z | Jör |
| 154 | Retina | 170616T075935Z | Okx |
| 163 | Retina | 170616T075634Z | ovs |
| 233 | JavaScript ES6 | 170615T234143Z | darrylye |
| 251 | JavaScript ES6 | 170615T195944Z | thaliaar |
| 281 | Python 3 | 170615T162907Z | 0xffcour |
| 262 | C# | 170615T145955Z | TheLetha |
Tcl, 212 bytes
puts "[string map -nocase {President Gwanjang\ nim Founder Gwanjang\ nim Master\ instructor Sabeom\ nim Teacher Gyosa\ nim Black\ Belt Dan Student Geup Color\ Belt Geup Master\ level Godanja} $argv], *side kick*"
PHP, 241 bytes
<?=preg_replace(["#\b(President|Founder)\b#i","#\bMaster instructor\b#i","#\bTeacher\b#i","#\bBlack Belt\b#i","#\b(Studen|Color Bel)t\b#i","#\bMaster level\b#i"],[Gwanjang.$n=" nim",Sabeom.$n,Gyosa.$n,Dan,Geup,Godanja],"$argn, *side-kick*");
Retina, 154 bytes
i(`president|founder
Gwanjang_
master instructor
Sabeom_
teacher
Gyosa_
black belt
Dan
student|color belt
Geup
master level
Godanja
_
nim
$
, *side kick*
Retina, 163 bytes
i`President|Founder
Gwanjang¶
i`Master instructor
Sabeom¶
i`Teacher
Gyosa¶
i`Black Belt
Dan
i`Student|Color Belt
Geup
i`Master level
Godanja
¶
nim
$
, *side kick*
JavaScript (ES6), 233 bytes
s=>(btoa`>·¬×§·mÁ©ãjx4)µ§uêö§©àÒx¦ÔƬµêô{-®ç-¢½i·¨IâTÞiÈ^¯a²¢Æ´)µV@^Ýj}R¶ç^Ýzêu
h¯@^Ýzêu1«-z½%z÷¥ØjjxÚ`.split(0).join` `.split`1`.map(d=>([a,b]=d.split(/2+/),s=s.replace(RegExp(a,'gi'),b))),s+', *side kick*"')
f=
s=>(btoa`>·¬×§·mÁ©ãjx4)µ§uêö§©àÒx¦ÔƬµêô{-®ç-¢½i·¨IâTÞiÈ^¯a²¢Æ´)µV@^Ýj}R¶ç^Ýzêu
h¯@^Ýzêu1«-z½%z÷¥ØjjxÚ`.split(0).join` `.split`1`.map(d=>([a,b]=d.split(/2+/),s=s.replace(RegExp(a,'gi'),b))),s+', *side kick*"')
console.log(f('I am a Teacher willing to be a President'))
JavaScript (ES6), 243 bytes
s=>(`President${A=':Gwanjang nim|'}Founder${A}Master instructor:Sabeom nim|Teacher:Gyosa nim|Black Belt:Dan|Student:Geup|Color Belt:Geup|Master level:Godanja`.split`|`.map(r=>([a,b]=r.split`:`,s=s.replace(RegExp(a,'gi'),b))),s+', *side kick*')
f=
s=>(`President${A=':Gwanjang nim|'}Founder${A}Master instructor:Sabeom nim|Teacher:Gyosa nim|Black Belt:Dan|Student:Geup|Color Belt:Geup|Master level:Godanja`.split`|`.map(r=>([a,b]=r.split`:`,s=s.replace(RegExp(a,'gi'),b))),s+', *side kick*')
console.log(f('I am a Teacher willing to be a President'))
JavaScript (ES6), 251 bytes
a=>a.replace(RegExp(b='president|founder|master instructor|teacher|black belt|student|color belt|master level','gi'),c=>((d='Gwanjang nim|')+d+'Sabeom nim|Gyosa nim|Dan|Geup|Geup|Godanja').split`|`[b.split`|`.indexOf(c.toLowerCase())])+', *side kick*'
This is not as compact as it could be since JavaScript is so verbose, but it's a great question. I recognized most of these terms as I am a 2nd Dan Black Belt in Taekwondo.
Explanaion
a=>
a.replace( // Replace on input string
RegExp( // Regex matching English phrases
b='president|founder|master instructor|teacher|black belt|student|color belt|master level',
'gi' // Match all, case insensitive
),
c=>
((d='Gwanjang nim|')+d+ // Duplicate string portion
'Sabeom nim|Gyosa nim|Dan|Geup|Geup|Godanja') // Add remaining phrases
.split`|` // Split into array by pipe
[b.split`|`.indexOf(c.toLowerCase())]) // Access Korean phrase by corresponding index of matched English phrase
+', *side kick*' // I like to do side kicks
Python 3, 281 bytes
import re
x=input();a="Gwanjang";b=" nim";c="Geup";d="Master";e=" Belt"
for i in range(8):x=re.sub("(?i)"+["President","Founder",d+" instructor","Teacher","Black"+e,"Student","Color"+e,d+" level"][i],[a+b,a+b,"Sabeom"+b,"Gyosa"+b,"Dan",c,c,"Godanja"][i],x)
print(x+", *side kick*")
C#, 262 bytes
s=>{for(int i=0;i<8;)s=s.ToUpper().Replace("PRESIDENT|FOUNDER|MASTER INSTRUCTOR|TEACHER|BLACK BELT|MASTER LEVEL|STUDENT|COLOR BELT".Split('|')[i],(i<2?"GWANJANG":i>3?"GEUP":"SABEOM|GYOSA|DAN|GODANJA".Split('|')[i-2])+(i++<4?" NIM":""));return s+", *SIDE KICK*";}
Full/Formatted version:
class Program
{
static void Main(string[] args)
{
System.Func<string, string> f = s =>
{
for (int i = 0; i < 8;)
s = s.ToUpper().Replace("PRESIDENT|FOUNDER|MASTER INSTRUCTOR|TEACHER|BLACK BELT|MASTER LEVEL|STUDENT|COLOR BELT".Split('|')[i],
(i < 2 ? "GWANJANG"
: i > 3 ? "GEUP"
: "SABEOM|GYOSA|DAN|GODANJA".Split('|')[i-2])
+ (i++ < 4 ? " NIM" : ""));
return s + ", *SIDE KICK*";
};
System.Console.WriteLine(f("I am a Student and I do Taekwondo twice a week"));
System.Console.WriteLine(f("I am a Teacher willing to be a President"));
System.Console.ReadLine();
}
}