Of your four alternatives, #3 and #4 would be excessively confusing; don't do them. #1 and #2 are both acceptable, but I would tend toward a modification of #2:
Show the language selector, but in a way such that it's clear that there isn't a translation available for a specific language. For example:
If you normally use flag icons, replace the flag for unavailable translations with the same flag enclosed by the red circle-with-slash. Optionally, if the user points the mouse to the circle-with-slashed-flag, have a tool tip/popup that says "translation unavailable" in the appropriate language
If you normally use a text drop-menu, or a text link on the page, with the name of the language in the respective language, change the name of the unavailable language(s) to that language's phrase translating as "No «language-name» translation". If you normally use links, make sure that there's no link on the "No translation" text. If you have links with phrases like "Read this page in English", do the same.
If you normally use a link with the two-character language code, I would retain the code, but style it as struck-out, and no link on the code. Again, optionally, if the user points to the language code, a tool tip/popup saying "translation unavailable" in the indicated language can be included.
Don't display the page at all, meaning you should treat the two languages as two completely separate websites, if for example there is no "about" section in the english version then you simply don't display the about section on that website.
Users will expect EVERYTHING in their desired language after they hit the language-icon, they will be really frustrated and also confused if they get thrown around between two languages only because the site is not able to provide the proper content.
A site should only be published in multiple languages if the translations are done.