Move language switching logic to language service