Skip to content
Snippets Groups Projects
Select Git revision
  • 9564bbd0dbafc0525ade77da578bae2c50b9a37b
  • master default protected
  • v11
  • 3.4.1
4 results

angular-translate-loader-static-files.min.js

Blame
  • angular-translate-loader-url.js 2.02 KiB
    /*!
     * angular-translate - v2.18.2 - 2020-01-04
     * 
     * Copyright (c) 2020 The angular-translate team, Pascal Precht; Licensed MIT
     */
    (function (root, factory) {
      if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module unless amdModuleId is set
        define([], function () {
          return (factory());
        });
      } else if (typeof module === 'object' && module.exports) {
        // Node. Does not work with strict CommonJS, but
        // only CommonJS-like environments that support module.exports,
        // like Node.
        module.exports = factory();
      } else {
        factory();
      }
    }(this, function () {
    
    $translateUrlLoader.$inject = ['$q', '$http'];
    angular.module('pascalprecht.translate')
    /**
     * @ngdoc object
     * @name pascalprecht.translate.$translateUrlLoader
     * @requires $q
     * @requires $http
     *
     * @description
     * Creates a loading function for a typical dynamic url pattern:
     * "locale.php?lang=en_US", "locale.php?lang=de_DE", "locale.php?language=nl_NL" etc.
     * Prefixing the specified url, the current requested, language id will be applied
     * with "?{queryParameter}={key}".
     * Using this service, the response of these urls must be an object of
     * key-value pairs.
     *
     * @param {object} options Options object, which gets the url, key and
     * optional queryParameter ('lang' is used by default).
     */
    .factory('$translateUrlLoader', $translateUrlLoader);
    
    function $translateUrlLoader($q, $http) {
    
      'use strict';
    
      return function (options) {
    
        if (!options || !options.url) {
          throw new Error('Couldn\'t use urlLoader since no url is given!');
        }
    
        var requestParams = {};
    
        requestParams[options.queryParameter || 'lang'] = options.key;
    
        return $http(angular.extend({
          url: options.url,
          params: requestParams,
          method: 'GET'
        }, options.$http))
          .then(function(result) {
            return result.data;
          }, function () {
            return $q.reject(options.key);
          });
      };
    }
    
    $translateUrlLoader.displayName = '$translateUrlLoader';
    return 'pascalprecht.translate';
    
    }));