https://github.com/sonata-project/SonataTranslationBundle/blob/master/DependencyInjection/Compiler/AdminExtensionCompilerPass.php

Here is my compiler pass with code extract for sonata admin one.

https://github.com/sonata-project/SonataAdminBundle/blob/master/DependencyInjection/Compiler/ExtensionCompilerPass.php

So I reproduce this logic in the TranslatableChecker.

Because I guess that if I mix it the way @rande gist, just after you will ask to mix it in configuration too.
And right after that users will says that I made my own way instead of using the way sonata admin extension works.

What do you think about this ? Am I totally wrong ?

but I guess I can refactor checker to : 

    foreach (array_merge($this->getSupportedInterfaces(), $this->getSupportedModels()) as $class) {
        if ($object instanceof $class) {
            return true;
        }
    }