You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					51 lines
				
				953 B
			
		
		
			
		
	
	
					51 lines
				
				953 B
			| 
								 
											4 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * 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()
							 | 
						||
| 
								 | 
							
								}
							 |