Yes, at a high level that is what they both do.
I think contexts would make the most sense in your case because at
runtime the description of the environment is just a simple list of
the languages you want installed "EN", "ES",
"EN, ES", etc.
When in doubt, I usually go with contexts because it will simplify
deployment configuration while giving changeSet authors the option to
handle complex logic if needed.
Nathan