code: function (selector) {
                      if (typeof selector === 'undefined') {
                          return globalize.culture();
                      }
  
                      switchCulture(selector).done(function (newCulture) {
                          // Override $locale values with new ones
                          _.merge($locale, buildAngularLocale(newCulture));
  
                          // persist culture preference
                          savePreferredCulture(newCulture.name);
  
                          /**
                           * This event is emitted after the culture has changed successfully.
                           *
                           * @name w20.culture.culture-changed
                           * @w20doc event
                           * @memberOf w20CoreCulture
                           * @argument {Object} The new culture definition.
                           */
                          eventService.emit('w20.culture.culture-changed', newCulture);
  
  
                          $rootScope.$safeApply();
                      });
                  }
docs: @ngdoc function
  @name w20CoreCulture.service:CultureService#culture
  @methodOf w20CoreCulture.service:CultureService
  @param {String} [selector] The selector of the culture to switch to. Examples : "fr", "fr-FR", ["en-US", "fr-FR"], "fr;q=0.4, es;q=0.5, he".
  @returns {Object} The current culture object if no selector was specified, undefined if new culture selector was specified.
  
  @description
  
  Getter/setter of the currently active culture in the application. Return the current culture if the
  selector parameter is undefined, change it otherwise.
  
  Automatically load i18n string bundles configured when switching for the first time to a new culture.
  The <code>w20.culture.culture-changed</code> event is fired when the culture has switched.