/usr/share/javascript/yui3/widget-locale/widget-locale.js is in libjs-yui3-full 3.5.1-1ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | /*
YUI 3.5.1 (build 22)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
YUI.add('widget-locale', function(Y) {
/**
* Provides string support for widget with BCP 47 language tag lookup. This module has been deprecated. It's replaced by the "intl" module which provides generic internationalization and BCP 47 language tag support with externalization.
*
* @module widget-locale
* @deprecated This module has been deprecated. It's replaced by the "intl" module which provides generic internationalization and BCP 47 language tag support with externalization.
*/
var TRUE = true,
LOCALE = "locale",
INIT_VALUE = "initValue",
HYPHEN = "-",
EMPTY_STR = "",
Widget = Y.Widget;
/**
* @attribute locale
* @deprecated Use Y.config.lang and Y.Intl externalization support
* @description
* The default locale for the widget. NOTE: Using get/set on the "strings" attribute will
* return/set strings for this locale.
* @default "en"
* @type String
*/
Widget.ATTRS[LOCALE] = {
value: "en"
};
// Since strings support with locale needs the private _strs setup
Widget.ATTRS.strings.lazyAdd = false;
Y.mix(Widget.prototype, {
/**
* Sets strings for a particular locale, merging with any existing
* strings which may already be defined for the locale.
*
* @method _setStrings
* @protected
* @param {Object} strings The hash of string key/values to set
* @param {Object} locale The locale for the string values being set
*/
_setStrings : function(strings, locale) {
var strs = this._strs;
locale = locale.toLowerCase();
if (!strs[locale]) {
strs[locale] = {};
}
Y.aggregate(strs[locale], strings, TRUE);
return strs[locale];
},
/**
* Returns the strings key/value hash for a paricular locale, without locale lookup applied.
*
* @method _getStrings
* @protected
* @param {Object} locale
*/
_getStrings : function(locale) {
return this._strs[locale.toLowerCase()];
},
/**
* Gets the entire strings hash for a particular locale, performing locale lookup.
* <p>
* If no values of the key are defined for a particular locale the value for the
* default locale (in initial locale set for the class) is returned.
* </p>
* @method getStrings
* @param {String} locale (optional) The locale for which the string value is required. Defaults to the current locale, if not provided.
*/
// TODO: Optimize/Cache. Clear cache on _setStrings call.
getStrings : function(locale) {
locale = (locale || this.get(LOCALE)).toLowerCase();
var defLocale = this.getDefaultLocale().toLowerCase(),
defStrs = this._getStrings(defLocale),
strs = (defStrs) ? Y.merge(defStrs) : {},
localeSegments = locale.split(HYPHEN),
localeStrs,
i, l,
lookup;
// If locale is different than the default, or needs lookup support
if (locale !== defLocale || localeSegments.length > 1) {
lookup = EMPTY_STR;
for (i = 0, l = localeSegments.length; i < l; ++i) {
lookup += localeSegments[i];
localeStrs = this._getStrings(lookup);
if (localeStrs) {
Y.aggregate(strs, localeStrs, TRUE);
}
lookup += HYPHEN;
}
}
return strs;
},
/**
* Gets the string for a particular key, for a particular locale, performing locale lookup.
* <p>
* If no values if defined for the key, for the given locale, the value for the
* default locale (in initial locale set for the class) is returned.
* </p>
* @method getString
* @param {String} key The key.
* @param {String} locale (optional) The locale for which the string value is required. Defaults to the current locale, if not provided.
*/
getString : function(key, locale) {
locale = (locale || this.get(LOCALE)).toLowerCase();
var defLocale = (this.getDefaultLocale()).toLowerCase(),
strs = this._getStrings(defLocale) || {},
str = strs[key],
idx = locale.lastIndexOf(HYPHEN);
// If locale is different than the default, or needs lookup support
if (locale !== defLocale || idx != -1) {
do {
strs = this._getStrings(locale);
if (strs && key in strs) {
str = strs[key];
break;
}
idx = locale.lastIndexOf(HYPHEN);
// Chop of last locale segment
if (idx != -1) {
locale = locale.substring(0, idx);
}
} while (idx != -1);
}
return str;
},
/**
* Returns the default locale for the widget (the locale value defined by the
* widget class, or provided by the user during construction).
*
* @method getDefaultLocale
* @return {String} The default locale for the widget
*/
getDefaultLocale : function() {
return this._state.get(LOCALE, INIT_VALUE);
},
_strSetter : function(val) {
return this._setStrings(val, this.get(LOCALE));
},
_strGetter : function(val) {
return this._getStrings(this.get(LOCALE));
}
}, true);
}, '3.5.1' ,{requires:['widget-base']});
|