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
|
/**
* @ngdoc factory
* @module gettext
* @name gettextFallbackLanguage
* @param {String} langCode language code
* @returns {String|Null} fallback language
* @description Strips regional code and returns language code only
*
* Example
* ```js
* gettextFallbackLanguage('ru'); // "null"
* gettextFallbackLanguage('en_GB'); // "en"
* gettextFallbackLanguage(); // null
* ```
*/
angular.module("gettext").factory("gettextFallbackLanguage", function () {
var cache = {};
var pattern = /([^_]+)_[^_]+$/;
return function (langCode) {
if (cache[langCode]) {
return cache[langCode];
}
var matches = pattern.exec(langCode);
if (matches) {
cache[langCode] = matches[1];
return matches[1];
}
return null;
};
});
|