PageSourceSearch

https://sparnatural.eu/demos/demo-smt-cim10/assets/vendor/jquery.i18n/jquery.i18n.messagestore.js

js sparnatural.eu collected 2026-09-25 19:12:01 UTC 3,574 bytes, 123 lines download raw bytes

vendor: 3,574 bytes, lines 1-123
1/*!
2 * jQuery Internationalization library - Message Store
3 *
4 * Copyright (C) 2012 Santhosh Thottingal
5 *
6 * jquery.i18n is dual licensed GPLv2 or later and MIT. You don't have to do anything special to
7 * choose one license or the other and you don't have to notify anyone which license you are using.
8 * You are free to use UniversalLanguageSelector in commercial projects as long as the copyright
9 * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.
10 *
11 * @licence GNU General Public Licence 2.0 or later
12 * @licence MIT License
13 */
14
15( function ( $ ) {
16	'use strict';
17
18	var MessageStore = function () {
19		this.messages = {};
20		this.sources = {};
21	};
22
23	function jsonMessageLoader( url ) {
24		var deferred = $.Deferred();
25
26		$.getJSON( url )
27			.done( deferred.resolve )
28			.fail( function ( jqxhr, settings, exception ) {
29				$.i18n.log( 'Error in loading messages from ' + url + ' Exception: ' + exception );
30				// Ignore 404 exception, because we are handling fallabacks explicitly
31				deferred.resolve();
32			} );
33
34		return deferred.promise();
35	}
36
37	/**
38	 * See https://github.com/wikimedia/jquery.i18n/wiki/Specification#wiki-Message_File_Loading
39	 */
40	MessageStore.prototype = {
41
42		/**
43		 * General message loading API This can take a URL string for
44		 * the json formatted messages.
45		 * <code>load('path/to/all_localizations.json');</code>
46		 *
47		 * This can also load a localization file for a locale <code>
48		 * load( 'path/to/de-messages.json', 'de' );
49		 * </code>
50		 * A data object containing message key- message translation mappings
51		 * can also be passed Eg:
52		 * <code>
53		 * load( { 'hello' : 'Hello' }, optionalLocale );
54		 * </code> If the data argument is
55		 * null/undefined/false,
56		 * all cached messages for the i18n instance will get reset.
57		 *
58		 * @param {string|Object} source
59		 * @param {string} locale Language tag
60		 * @return {jQuery.Promise}
61		 */
62		load: function ( source, locale ) {
63			var key = null,
64				deferreds = [],
65				messageStore = this;
66
67			if ( typeof source === 'string' ) {
68				// This is a URL to the messages file.
69				$.i18n.log( 'Loading messages from: ' + source );
70				return jsonMessageLoader( source )
71					.then( function ( localization ) {
72						return messageStore.load( localization, locale );
73					} );
74			}
75
76			if ( locale ) {
77				// source is an key-value pair of messages for given locale
78				messageStore.set( locale, source );
79
80				return $.Deferred().resolve();
81			} else {
82				// source is a key-value pair of locales and their source
83				for ( key in source ) {
84					if ( Object.prototype.hasOwnProperty.call( source, key ) ) {
85						locale = key;
86						// No {locale} given, assume data is a group of languages,
87						// call this function again for each language.
88						deferreds.push( messageStore.load( source[ key ], locale ) );
89					}
90				}
91				return $.when.apply( $, deferreds );
92			}
93
94		},
95
96		/**
97		 * Set messages to the given locale.
98		 * If locale exists, add messages to the locale.
99		 *
100		 * @param {string} locale
101		 * @param {Object} messages
102		 */
103		set: function ( locale, messages ) {
104			if ( !this.messages[ locale ] ) {
105				this.messages[ locale ] = messages;
106			} else {
107				this.messages[ locale ] = $.extend( this.messages[ locale ], messages );
108			}
109		},
110
111		/**
112		 *
113		 * @param {string} locale
114		 * @param {string} messageKey
115		 * @return {boolean}
116		 */
117		get: function ( locale, messageKey ) {
118			return this.messages[ locale ] && this.messages[ locale ][ messageKey ];
119		}
120	};
121
122	$.extend( $.i18n.messageStore, new MessageStore() );
123}( jQuery ) );

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.