The \selectlanguage command and the otherlanguage environment have the same functionality: change all language-related settings; the difference is that the environment defines a group so the language change is local to the environment.
In your case, since the changes must apply to whole chapters, I'd probably go with \selectlanguage, unless intermixing
left-to-right typesetting with right-to-left typesetting is required, in which case the environment would be better according to babel documentation:
The environment otherlanguage does basically the same as
\selectlanguage, except the language change is local to the
environment. This environment is required for intermixing
left-to-right typesetting with right-to-left typesetting.
There's also an otherlanguage* environment in which the typesetting is done according to the rules of the other language, but the text-strings such as "figure", "table", etc. are left as they were set outside this environment.
\selectlanguage. The environment creates a group which is probably unnessary. – Ulrike Fischer Nov 29 '11 at 15:38