Set locale from param, session or header

Fix some existing errors and additionally get the locale from the header etc as needed.
Mejor no sumar a ciegas algo a una cadena. Si la otra cosa no es exactamente un String, entonces fallará.

La forma `"blahblah#{code}"` funciona prácticamente siempre porque llama implícitamente `.to_s` antes de construir la cadena.