if(!SiteTree::has_extension('Translatable') || !class_exists('SiteTree')) return false;
should be replaces with
if(!Object::has_extension('SiteTree', 'Translatable') || !class_exists('SiteTree')) return false;
There is some inconsintency with the 3.0 and the 3.1 style of adding extensions that means that there is some incompatibility between the two. The current coding style of translatable is suitable for 3.1, but doesn't work on 3.0 and vice versa.
I highly recommend that the maintaners of this module setup separate branches for 3.0 and 3.1 so as to cater to developers using either.
I've created a 1.0 branch with compat set to >=3.0,<3.1
Cheers Ingo, that's exactly what I was after. :)