function getTranslateNamespace(scope) {
  'use strict';
  if (scope.translateNamespace) {
    return scope.translateNamespace;
  }
  if (scope.$parent) {
    return getTranslateNamespace(scope.$parent);
  }
}
@ngdoc method
@name $animateProvider#register

@description
Registers a new injectable animation factory function. The factory function produces the
animation object which contains callback functions for each event that is expected to be
animated.

  * `eventFn`: `function(element, ... , doneFunction, options)`
  The element to animate, the `doneFunction` and the options fed into the animation. Depending
  on the type of animation additional arguments will be injected into the animation function. The
  list below explains the function signatures for the different animation methods:

  - setClass: function(element, addedClasses, removedClasses, doneFunction, options)
  - addClass: function(element, addedClasses, doneFunction, options)
  - removeClass: function(element, removedClasses, doneFunction, options)
  - enter, leave, move: function(element, doneFunction, options)
  - animate: function(element, fromStyles, toStyles, doneFunction, options)

  Make sure to trigger the `doneFunction` once the animation is fully complete.

```js
  return {
    //enter, leave, move signature
    eventFn : function(element, done, options) {
      //code to run the animation
      //once complete, then run done()
      return function endFunction(wasCancelled) {
        //code to cancel the animation
      }
    }
  }
```

@param {string} name The name of the animation (this is what the class-based CSS value will be compared to).
@param {Function} factory The factory function that will be executed to return the animation
                          object.