@@ -357,6 +357,76 @@ var transliterate = (function () {
357357 'Я' : 'Ja'
358358 } ,
359359
360+ // ISO 9:1995
361+ 'iso-9-1995' : {
362+ 'а' : 'a' ,
363+ 'б' : 'b' ,
364+ 'в' : 'v' ,
365+ 'г' : 'g' ,
366+ 'д' : 'd' ,
367+ 'е' : 'e' ,
368+ 'ё' : 'ë' ,
369+ 'ж' : 'ž' ,
370+ 'з' : 'z' ,
371+ 'и' : 'i' ,
372+ 'й' : 'j' ,
373+ 'к' : 'k' ,
374+ 'л' : 'l' ,
375+ 'м' : 'm' ,
376+ 'н' : 'n' ,
377+ 'о' : 'o' ,
378+ 'п' : 'p' ,
379+ 'р' : 'r' ,
380+ 'с' : 's' ,
381+ 'т' : 't' ,
382+ 'у' : 'u' ,
383+ 'ф' : 'f' ,
384+ 'х' : 'h' ,
385+ 'ц' : 'c' ,
386+ 'ч' : 'č' ,
387+ 'ш' : 'š' ,
388+ 'щ' : 'ŝ' ,
389+ 'ъ' : '"' ,
390+ 'ы' : 'y' ,
391+ 'ь' : '\'' ,
392+ 'э' : 'è' ,
393+ 'ю' : 'û' ,
394+ 'я' : 'â' ,
395+ 'А' : 'A' ,
396+ 'Б' : 'B' ,
397+ 'В' : 'V' ,
398+ 'Г' : 'G' ,
399+ 'Д' : 'D' ,
400+ 'Е' : 'E' ,
401+ 'Ё' : 'Ë' ,
402+ 'Ж' : 'Ž' ,
403+ 'З' : 'Z' ,
404+ 'И' : 'I' ,
405+ 'Й' : 'J' ,
406+ 'К' : 'K' ,
407+ 'Л' : 'L' ,
408+ 'М' : 'M' ,
409+ 'Н' : 'N' ,
410+ 'О' : 'O' ,
411+ 'П' : 'P' ,
412+ 'Р' : 'R' ,
413+ 'С' : 'S' ,
414+ 'Т' : 'T' ,
415+ 'У' : 'U' ,
416+ 'Ф' : 'F' ,
417+ 'Х' : 'H' ,
418+ 'Ц' : 'C' ,
419+ 'Ч' : 'Č' ,
420+ 'Ш' : 'Š' ,
421+ 'Щ' : 'Ŝ' ,
422+ 'Ъ' : '"' ,
423+ 'Ы' : 'Y' ,
424+ 'Ь' : '\'' ,
425+ 'Э' : 'È' ,
426+ 'Ю' : 'Û' ,
427+ 'Я' : 'Â'
428+ } ,
429+
360430 // LC
361431 'lc' : {
362432 'а' : 'a' ,
@@ -705,9 +775,123 @@ var transliterate = (function () {
705775 'Э' : 'E' ,
706776 'Ю' : 'Iu' ,
707777 'Я' : 'Ia'
778+ } ,
779+
780+ // Международные телеграммы
781+ 'international-telegrams' : {
782+ 'а' : 'a' ,
783+ 'б' : 'b' ,
784+ 'в' : 'v' ,
785+ 'г' : 'g' ,
786+ 'д' : 'd' ,
787+ 'е' : 'e' ,
788+ 'ё' : 'e' ,
789+ 'ж' : 'j' ,
790+ 'з' : 'z' ,
791+ 'и' : 'i' ,
792+ 'й' : 'i' ,
793+ 'к' : 'k' ,
794+ 'л' : 'l' ,
795+ 'м' : 'm' ,
796+ 'н' : 'n' ,
797+ 'о' : 'o' ,
798+ 'п' : 'p' ,
799+ 'р' : 'r' ,
800+ 'с' : 's' ,
801+ 'т' : 't' ,
802+ 'у' : 'u' ,
803+ 'ф' : 'f' ,
804+ 'х' : 'h' ,
805+ 'ц' : 'c' ,
806+ 'ч' : 'ch' ,
807+ 'ш' : 'sh' ,
808+ 'щ' : 'sc' ,
809+ 'ъ' : '' ,
810+ 'ы' : 'y' ,
811+ 'ь' : '' ,
812+ 'э' : 'e' ,
813+ 'ю' : 'iu' ,
814+ 'я' : 'ia' ,
815+ 'А' : 'A' ,
816+ 'Б' : 'B' ,
817+ 'В' : 'V' ,
818+ 'Г' : 'G' ,
819+ 'Д' : 'D' ,
820+ 'Е' : 'E' ,
821+ 'Ё' : 'E' ,
822+ 'Ж' : 'J' ,
823+ 'З' : 'Z' ,
824+ 'И' : 'I' ,
825+ 'Й' : 'I' ,
826+ 'К' : 'K' ,
827+ 'Л' : 'L' ,
828+ 'М' : 'M' ,
829+ 'Н' : 'N' ,
830+ 'О' : 'O' ,
831+ 'П' : 'P' ,
832+ 'Р' : 'R' ,
833+ 'С' : 'S' ,
834+ 'Т' : 'T' ,
835+ 'У' : 'U' ,
836+ 'Ф' : 'F' ,
837+ 'Х' : 'H' ,
838+ 'Ц' : 'C' ,
839+ 'Ч' : 'Ch' ,
840+ 'Ш' : 'Sh' ,
841+ 'Щ' : 'Sc' ,
842+ 'Ъ' : '' ,
843+ 'Ы' : 'Y' ,
844+ 'Ь' : '' ,
845+ 'Э' : 'E' ,
846+ 'Ю' : 'Iu' ,
847+ 'Я' : 'Ia'
708848 }
709849 } ;
710850
851+ function toYandexFriendlyUrl ( value ) {
852+ var processedValue ,
853+ result
854+ ;
855+
856+ processedValue = value . toLowerCase ( ) ;
857+ result = processedValue . replace ( / ( [ а - я ё ] ) | ( [ \s _ - ] ) | ( [ ^ a - z \d ] ) / gi,
858+ function ( all , charValue , space , special , offset ) {
859+ var replacements ,
860+ charCode ,
861+ index ,
862+ transliteratedCharValue
863+ ;
864+
865+ if ( space ) {
866+ return '-' ;
867+ }
868+
869+ if ( special ) {
870+ return '' ;
871+ }
872+
873+ replacements = [ 'yo' , 'a' , 'b' , 'v' , 'g' , 'd' , 'e' , 'zh' ,
874+ 'z' , 'i' , 'y' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' ,
875+ 'r' , 's' , 't' , 'u' , 'f' , 'h' , 'c' , 'ch' , 'sh' ,
876+ 'shch' , '' , 'y' , '' , 'e' , 'yu' , 'ya' ] ;
877+
878+ charCode = charValue . charCodeAt ( 0 ) ;
879+ if ( charCode == 1025 || charCode == 1105 ) {
880+ index = 0 ;
881+ }
882+ else {
883+ index = charCode > 1071 ? charCode - 1071 : charCode - 1039 ;
884+ }
885+
886+ transliteratedCharValue = replacements [ index ] ;
887+
888+ return transliteratedCharValue ;
889+ }
890+ ) ;
891+
892+ return result ;
893+ }
894+
711895 /**
712896 * Производит транслитерацию русского текста с кириллицы на латиницу
713897 *
@@ -733,6 +917,10 @@ var transliterate = (function () {
733917 return value ;
734918 }
735919
920+ if ( type === 'yandex-friendly-url' ) {
921+ return toYandexFriendlyUrl ( value ) ;
922+ }
923+
736924 characterMapping = characterMappings [ type ] ;
737925 if ( typeof characterMapping === 'undefined' ) {
738926 return value ;
0 commit comments