Thanks to Björn Endres for internationalization and the German localization. Thanks to Coleman Watts for adding soft credits and improving the framework considerably.