code: function (string, scope, context) {
              var fallbackLanguage = gettextFallbackLanguage(this.currentLanguage);
              string = this.getStringFormFor(this.currentLanguage, string, 1, context) ||
                       this.getStringFormFor(fallbackLanguage, string, 1, context) ||
                       prefixDebug(string);
              string = scope ? $interpolate(string)(scope) : string;
              return addTranslatedMarkers(string);
          }
docs: @ngdoc method
  @name gettextCatalog#getString
  @public
  @param {String} string translation key
  @param {$rootScope.Scope=} scope scope to do interpolation against
  @param {String=} context translation key context, e.g. {@link doc:context Verb, Noun}
  @returns {String} translated or annotated string
  @description Translate a string with the given scope and context.
  
  First it tries {@link gettextCatalog#currentLanguage gettextCatalog#currentLanguage} (e.g. `en-US`) then {@link gettextFallbackLanguage fallback} (e.g. `en`).
  
  When `scope` is supplied it uses Angular.JS interpolation, so something like this will do what you expect:
  ```js
  var hello = gettextCatalog.getString("Hello {{name}}!", { name: "Ruben" });
  // var hello will be "Hallo Ruben!" in Dutch.
  ```
  Avoid using scopes - this skips interpolation and is a lot faster.