50 lines
953 B
JavaScript
50 lines
953 B
JavaScript
/**
|
|
* Special language-specific overrides.
|
|
*
|
|
* Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
|
|
*
|
|
* @type {Object}
|
|
*/
|
|
var LANGUAGES = {
|
|
tr: {
|
|
regexp: /[\u0069]/g,
|
|
map: {
|
|
'\u0069': '\u0130'
|
|
}
|
|
},
|
|
az: {
|
|
regexp: /[\u0069]/g,
|
|
map: {
|
|
'\u0069': '\u0130'
|
|
}
|
|
},
|
|
lt: {
|
|
regexp: /[\u0069\u006A\u012F]\u0307|\u0069\u0307[\u0300\u0301\u0303]/g,
|
|
map: {
|
|
'\u0069\u0307': '\u0049',
|
|
'\u006A\u0307': '\u004A',
|
|
'\u012F\u0307': '\u012E',
|
|
'\u0069\u0307\u0300': '\u00CC',
|
|
'\u0069\u0307\u0301': '\u00CD',
|
|
'\u0069\u0307\u0303': '\u0128'
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Upper case a string.
|
|
*
|
|
* @param {String} str
|
|
* @return {String}
|
|
*/
|
|
module.exports = function (str, locale) {
|
|
var lang = LANGUAGES[locale]
|
|
|
|
str = str == null ? '' : String(str)
|
|
|
|
if (lang) {
|
|
str = str.replace(lang.regexp, function (m) { return lang.map[m] })
|
|
}
|
|
|
|
return str.toUpperCase()
|
|
}
|