Disable babel's shorthands

Babel 3.9 now provides a package option to deactive shorthands at once:

\usepackage[shorthands=off,ngerman]{babel}

Their functionality are still available with \babelshorthand.


\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
\begin{document}

"`foo"'

\LanguageShortHands{ngerman}
"`foo"'
\end{document}

There is a beta package babeltools, to be loaded before babel, that plans to allow this, with the addition of selectively enabling some shorthands.