function $translateMessageFormatInterpolationProvider() {

  'use strict';

  var configurer;

  /**
   * @ngdoc function
   * @name pascalprecht.translate.$translateMessageFormatInterpolationProvider#messageFormatConfigurer
   * @methodOf pascalprecht.translate.$translateMessageFormatInterpolationProvider
   *
   * @description
   * Defines an optional configurer for the MessageFormat instance.
   *
   * Note: This hook will be called whenever a new instance of MessageFormat will be created.
   *
   * @param {function} fn callback with the instance as argument
   */
  this.messageFormatConfigurer = function (fn) {
    configurer = fn;
  };

  /**
   * @ngdoc object
   * @name pascalprecht.translate.$translateMessageFormatInterpolation
   * @requires pascalprecht.translate.TRANSLATE_MF_INTERPOLATION_CACHE
   *
   * @description
   * Uses MessageFormat.js to interpolate strings against some values.
   *
   * Be aware to configure a proper sanitization strategy.
   *
   * See also:
   * * {@link pascalprecht.translate.$translateSanitization}
   * * {@link https://github.com/SlexAxton/messageformat.js}
   *
   * @return {object} $translateMessageFormatInterpolation Interpolator service
   */
  this.$get = function ($translateSanitization, $cacheFactory, TRANSLATE_MF_INTERPOLATION_CACHE) {
    return $translateMessageFormatInterpolation($translateSanitization, $cacheFactory, TRANSLATE_MF_INTERPOLATION_CACHE, configurer);
  };

}
@ngdoc object
@name pascalprecht.translate.$translateMessageFormatInterpolationProvider

@description
Configurations for $translateMessageFormatInterpolation