Some of the close reason explanations don't cover the reasons why we often use them. I'd like to suggest some changes to these.
Not Constructive
This question is not a good fit to our Q&A format. We expect answers to generally involve facts, references, or specific expertise; this question will likely solicit opinion, debate, arguments, polling, or extended discussion.
specifically
this question will likely solicit opinion, debate, arguments, polling, or extended discussion.
Opinion and extended discussion is okay, when its drawn out by a good subjective question, and debate and arguments are essentially the same thing.
This description also leaves out a few reasons we encounter all the friggen time. I'd suggest changing the reason to
This question is not a good fit to our Q&A format. We expect answers to generally involve facts, references, or specific expertise; this question will likely result in arguments, polls, shopping lists, low quality answers, or spam.
Not a Real Question
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form.
Lets remove the redundant points and switch them around
This question is difficult to understand, and therefore cannot be reasonably answered in its current form. This question is incomplete or overly broad.
Now lets add in the missing bits, expanding on why it is being closed (as the original was pretty much "we don't understand what the hell you just typed"):
This question is not a good fit for our Q&A format. It may be difficult to tell what is being asked here, and therefore cannot be reasonably answered in its current form. It may also solicit yes/no or link-only answers, be incomplete or overly broad, or require users to visit another website to answer.
Too Localized
This one is harder, as StackOverflow is different (get used to it) than other SE sites.
This question is unlikely to ever help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet.
This is pretty good in general, but leaves out a large majority of questions on SO that are closed as "too localized"--questions that ask users to debug code. There are other issues with the standard version.
I don't recall a question ever being closed as localized geographically on SO. Would you close a question such as "Why does my application break in Turkey?" as Too Localized? That's as geographically localized as you can get--and you'd be wrong. So ditch that noise.
Many questions are just a wall of code, with no effort to debug or at least narrow down where the problem exists. These kinds of questions ask our users to debug code for someone else, which shouldn't be acceptable.
So there should be a localized reason for SO only:
This question is unlikely to ever help any future visitors; it is only relevant to a specific moment in time, involves general code debugging tasks, or is an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet.
I'm not 100% on that bolded phrasing, but something about "show some effort, you slacking bastard, before you drive off good users" should be included.