Sprachumschaltung in TYPO3: verstecke nicht übersetzte Seiten im Menü und übersetze tt_news

Eine Sprachumschaltung sollte die folgenden features umfassen: immer auf die Übersetzung der jeweiligen Seite verweisen, den Übersetzungslink nicht anzeigen, wenn die Seite nicht übersetzt ist und mit tt_news Meldungen (und Inhalten anderer Extensions) funktionieren.

Für diese Zwecke gibt es die Extension sr_language_menu. Vor einiger Zeit habe ich darüber schrieben, dennoch vermeide ich den Einsatz, weil die Extension irgendwie kompliziert ist und ich die oben genannten Anforderungen eigentlich für einfach umsetzbar halte.
Mit folgendem TypoScript gehts:

lib.languageSwitch = COA
lib.languageSwitch {
  10 = HMENU
  10 {
    special = language
    special.value = 0
    1 = TMENU
    1 {
      NO = 1
      NO {
        doNotLinkIt = 1
        stdWrap.typolink.parameter.data = page:uid
        stdWrap.typolink.additionalParams = &L=0
        stdWrap.typolink.addQueryString = 1
        stdWrap.typolink.addQueryString.exclude = L,id,cHash,no_cache
        stdWrap.typolink.addQueryString.method = GET
        stdWrap.typolink.useCacheHash = 1
        stdWrap.typolink.no_cache = 0
        stdWrap.cObject = TEXT
        stdWrap.cObject.value = englisch
      }
      USERDEF1 = 1
      USERDEF1 {
        doNotLinkIt = 1
        stdWrap.cObject = TEXT
        stdWrap.cObject.value = 
      }
    }
  }
  20 < .10
  20.special.value = 1
  20.1.NO.stdWrap.typolink.additionalParams = &L=1
  20.1.NO.stdWrap.cObject.value = dansk
}

Man beachte, dass in obigem Beispiel zwei Sprachen verwendet werden: Standard (englisch – id 0) und dansk (id 1).
Will man, dass standardmäßig alle Seiten in der jeweiligen Sprache im Menü nicht angezeigt werden, wenn keine Übersetzung vorhanden ist, so setzt man über das Installtool folgenden Wert:

$TYPO3_CONF_VARS['FE']['hidePagesIfNotTranslatedByDefault'] = '1'

Will man tt_news dazu bringen im LIST oder LATEST Modus nur die übersetzten Meldungen anzuzeigen, so hilft folgendes:

plugin.tt_news.sys_language_mode = strict
plugin.tt_news.sys_language_overlay = hideNonTranslated

Links:
http://www.typo3.net/tsref/cobject/hmenu/
http://www.typo3-lisardo.de/home/blog-post/2010/09/01/sprachmenue.html