PigLatin[x_]:=Block[{lowerVowels={"a","e","i","o","u"},consonants},consonants={"B","C","D","F","G","H","J","K","L","M","N","P","Q","R","S","T","V","W","X","Y","Z","b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z","A","E","I","O","U"};StringRiffle[Map[If[StringFreeQ[#,lowerVowels],#,If[StringContainsQ[StringTake[#,1],lowerVowels],If[Total[Boole[StringContainsQ[Characters[#],PunctuationCharacter]]]0,#<>"way",StringJoin[Drop[Characters[#],-1]]<>"way"<>Last[Characters[x]]],If[Total[Boole[StringContainsQ[Characters[#],PunctuationCharacter]]]0,StringJoin[Reverse[TakeDrop[Characters[#],LengthWhile[Boole[StringContainsQ[Characters[#],consonants]],#11&]]]]<>"ay",StringJoin[Reverse[TakeDrop[Drop[Characters[#],-1],LengthWhile[Boole[StringContainsQ[Characters[#],consonants]],#11&]]]]<>"ay"<>Last[Characters[#]]]]]&,StringSplit[x]]]]