How to delete all translations when deleting a node using default language?
you first have to remove the nodes from the translation set before you can delete them. So do something like this:

function hook_node_delete($node){
    $all = translation_node_get_translations($node-&gt;tnid);

    foreach($all as $del){
        if($node-&gt;nid != $del-&gt;nid){
            translation_remove_from_set(node_load($del-&gt;nid));
            node_delete($del-&gt;nid);
        }
    }
}