UNPKG

senselogic-lingo

Version:

Text localization and processing.

226 lines (220 loc) 4.17 kB
// -- FUNCTIONS export function getUnaccentedCharacter( character, languageCode = "", nextCharacterIsLowerCase = false ) { switch ( character ) { case 'á': case 'à': case 'â': { return 'a'; } case 'ä': { if ( languageCode === 'de' ) { return 'ae'; } else { return 'a'; } } case 'é': case 'è': case 'ê': case 'ë': { return 'e'; } case 'í': case 'ì': case 'î': case 'ï': { return 'i'; } case 'ó': case 'ò': case 'ô': { return 'o'; } case 'ö': { if ( languageCode === 'de' ) { return 'oe'; } else { return 'o'; } } case 'œ' : { return 'oe'; } case 'ú': case 'ù': case 'û': { return 'u'; } case 'ü': { if ( languageCode === 'de' ) { return 'ue'; } else { return 'u'; } } case 'ç': { return 'c'; } case 'ñ': { return 'n'; } case 'ß': { return 'ss'; } case 'Á': case 'À': case 'Â': { return 'A'; } case 'Ä': { if ( languageCode === 'de' ) { if ( nextCharacterIsLowerCase ) { return 'Ae'; } else { return 'AE'; } } else { return 'A'; } } case 'É': case 'È': case 'Ê': case 'Ë': { return 'E'; } case 'Í': case 'Ì': case 'Î': case 'Ï': { return 'I'; } case 'Ó': case 'Ò': case 'Ô': { return 'O'; } case 'Ö': { if ( languageCode === 'de' ) { if ( nextCharacterIsLowerCase ) { return 'Oe'; } else { return 'OE'; } } else { return 'O'; } } case 'Œ' : { return 'Oe'; } case 'Ú': case 'Ù': case 'Û': { return 'U'; } case 'Ü': { if ( languageCode === 'de' ) { if ( nextCharacterIsLowerCase ) { return 'Ue'; } else { return 'UE'; } } else { return 'U'; } } case 'Ç': { return 'C'; } case 'Ñ': { return 'N'; } case 'ẞ' : { if ( nextCharacterIsLowerCase ) { return 'Ss'; } else { return 'SS'; } } default: { return character; } } } // ~~ export function getUnaccentedText( text, languageCode = '' ) { let unaccentedTextArray = []; for ( let characterIndex = 0; characterIndex < text.length; ++characterIndex ) { unaccentedTextArray.push( getUnaccentedCharacter( text.charAt( characterIndex ), languageCode ) ); } return unaccentedTextArray.join( '' ); }