Version 3.18.1

APIs

  • Begin typing in the search box above to see results.
Show:

File: yui/js/intl-base.js

 /**
 * The Intl utility provides a central location for managing sets of
 * localized resources (strings and formatting patterns).
 *
 * @class Intl
 * @uses EventTarget
 * @static
 */
 
 var SPLIT_REGEX = /[, ]/;
 
 Y.mix(Y.namespace('Intl'), {
 
 /**
 * Returns the language among those available that
 * best matches the preferred language list, using the Lookup
 * algorithm of BCP 47.
 * If none of the available languages meets the user's preferences,
 * then "" is returned.
 * Extended language ranges are not supported.
 *
 * @method lookupBestLang
 * @param {String[] | String} preferredLanguages The list of preferred
 * languages in descending preference order, represented as BCP 47
 * language tags. A string array or a comma-separated list.
 * @param {String[]} availableLanguages The list of languages
 * that the application supports, represented as BCP 47 language
 * tags.
 *
 * @return {String} The available language that best matches the
 * preferred language list, or "".
 * @since 3.1.0
 */
 lookupBestLang: function(preferredLanguages, availableLanguages) {
 
 var i, language, result, index;
 
 // check whether the list of available languages contains language;
 // if so return it
 function scan(language) {
 var i;
 for (i = 0; i < availableLanguages.length; i += 1) {
 if (language.toLowerCase() ===
 availableLanguages[i].toLowerCase()) {
 return availableLanguages[i];
 }
 }
 }
 
 if (Y.Lang.isString(preferredLanguages)) {
 preferredLanguages = preferredLanguages.split(SPLIT_REGEX);
 }
 
 for (i = 0; i < preferredLanguages.length; i += 1) {
 language = preferredLanguages[i];
 if (!language || language === '*') {
 continue;
 }
 // check the fallback sequence for one language
 while (language.length > 0) {
 result = scan(language);
 if (result) {
 return result;
 } else {
 index = language.lastIndexOf('-');
 if (index >= 0) {
 language = language.substring(0, index);
 // one-character subtags get cut along with the
 // following subtag
 if (index >= 2 && language.charAt(index - 2) === '-') {
 language = language.substring(0, index - 2);
 }
 } else {
 // nothing available for this language
 break;
 }
 }
 }
 }
 
 return '';
 }
 });
 
 

AltStyle によって変換されたページ (->オリジナル) /