Ok so heres how it breaks down:
Whatever you say is in a language.
The default language is Orcish (horde) and Common (alliance).
Many races have a special language (Trolls speak troll, Tauren speak Taurahe, etc etc.) and you can swap to and understand this.
Some classes have special languages (Demon hunters speak demonic “eredar” I think it’s called now, SP’s I think can speak Shath’Yar too, etc)
If something is said in a language and you DO NOT speak it, it is scrambled using a function.
It is always scrambled the same way So if I type…
“I Love Muffins!” and it comes out “J Kerc Gueksxs!” then saying it again will result in the exact same line of gibberish. Because of this you can figure out through trial and error things that display in certain ways, so thats how you sometimes see “YO U L oSE” or some such in battlegrounds, usually spammed in as large a block of text as the game will allow.
Emotes work a bit different. The in game programmed emotes will work, but custom ones will not.
“/ready” will make you emote “You let everyone know your ready.” and enemy faction will see "XXXXXX Lets you know they are ready.
“/e eats a banana” will display as “XXXXXX eats a banana” to your faction and “XXXXXX makes some strange gestures” to the enemy faction.
In the beta you could talk in /e freely, but this didn’t last very long.
Demon Hunters can talk to each other in eredar, even cross faction.
Belfs and Velfs can talk to each other in their racial language.
Horde players can communicate with any alliance player easily by killing them. Message delivered clearly and concisely.
Theres a potion in the dalaran sewers from a vendor that lets you understand the otehr faction language… BUT you can’t speak it. If you EACH drink the potion you can communicate freely back and forth… but if your doing that much to communicate you might as well just make a lvl 1 alt and whisper the player directly or invite them to disc.