Change a notebooks language programatically

Unfortunately, the spell checker of a notebook always uses the language that is globally set in the Preferences dialog under Interface.Language Settings.Language and the language cannot be set for a specific notebook.

At least this can be changed via an initialization cell within the respective notebook:

notebookLang = "German";
currLang = CurrentValue[$FrontEnd, Language];
If[currLang != notebookLang, 
  SetOptions[$FrontEnd, Language -> notebookLang]];

When the language is actually changed, a pop-up prompts to quit and restart the frontend. Just like when changing the language manually with the preferences dialog.