code: function (langKey, translationId, interpolateParams, Interpolator, sanitizeStrategy) {
        var deferred = $q.defer();
  
        var onResolve = function (translationTable) {
          if (Object.prototype.hasOwnProperty.call(translationTable, translationId) && translationTable[translationId] !== null) {
            Interpolator.setLocale(langKey);
            var translation = translationTable[translationId];
            if (translation.substr(0, 2) === '@:') {
              getFallbackTranslation(langKey, translation.substr(2), interpolateParams, Interpolator, sanitizeStrategy)
                .then(deferred.resolve, deferred.reject);
            } else {
              var interpolatedValue = Interpolator.interpolate(translationTable[translationId], interpolateParams, 'service', sanitizeStrategy, translationId);
              interpolatedValue = applyPostProcessing(translationId, translationTable[translationId], interpolatedValue, interpolateParams, langKey);
  
              deferred.resolve(interpolatedValue);
  
            }
            Interpolator.setLocale($uses);
          } else {
            deferred.reject();
          }
        };
        onResolve.displayName = 'fallbackTranslationResolver';
  
        getTranslationTable(langKey).then(onResolve, deferred.reject);
  
        return deferred.promise;
      }
docs: @name getFallbackTranslation
  @private
  
  @description
  Returns a promise that will resolve to the translation
  or be rejected if no translation was found for the language.
  This function is currently only used for fallback language translation.
  
  @param langKey The language to translate to.
  @param translationId
  @param interpolateParams
  @param Interpolator
  @param sanitizeStrategy
  @returns {Q.promise}