예제 #1
0
        /// <summary>
        /// Преобразует кириллистический текст в латинский, в указанном формате.
        /// </summary>
        /// <param name="Text">Преобразуемый текст</param>
        /// <param name="Type">Формат преобразования</param>
        /// <returns></returns>
        public static String ToLatin(String Text, TranslitType Type = TranslitType.ISO)
        {
            foreach (KeyValuePair <String, String> Pair in GetDictionary(Type))
            {
                Text = Text.Replace(Pair.Key, Pair.Value);
            }

            return(Text);
        }
예제 #2
0
        private static Dictionary <string, string> GetDictionaryByType(TranslitType type)
        {
            Dictionary <string, string> tdict = iso;

            if (type == TranslitType.Gost)
            {
                tdict = gost;
            }
            return(tdict);
        }
예제 #3
0
        public static string Back(string text, TranslitType type)
        {
            string output = text;
            Dictionary <string, string> tdict = GetDictionaryByType(type);

            foreach (KeyValuePair <string, string> key in tdict)
            {
                output = output.Replace(key.Value, key.Key);
            }
            return(output);
        }
예제 #4
0
        /// <summary>
        /// Преобразует латинский текст в кириллистический, в указанном формате.
        /// </summary>
        /// <param name="Text">Преобразуемый текст</param>
        /// <param name="Type">Формат преобразования</param>
        /// <returns></returns>
        public static String ToCyrillic(String Text, TranslitType Type = TranslitType.ISO)
        {
            foreach (KeyValuePair <String, String> Pair in GetDictionary(Type))
            {
                if (Pair.Value != "")
                {
                    Text = Text.Replace(Pair.Value, Pair.Key);
                }
            }

            return(Text);
        }
예제 #5
0
            /// <summary>
            /// Метод транслитерации русского текста
            /// </summary>
            /// <param name="source">Исходная строка на русском</param>
            /// <param name="type">Тип транслитерации, гост или ISO</param>
            /// <returns></returns>
            public string Translit(string source, TranslitType type)
            {
                var result = "";

                for (var i = 0; i < source.Length; i++)
                {
                    result = result +
                             (TranslitSymbols.FirstOrDefault(x => x.SymbolRus == source[i].ToString() && x.TranslitType == type) == null
                        ? source[i].ToString()
                        : TranslitSymbols.First(x => x.SymbolRus == source[i].ToString() && x.TranslitType == type).SymbolEng);
                }

                return(result);
            }
예제 #6
0
        /// <summary>
        /// Преобразует текст в указанный алфавит и формат преобразования.
        /// </summary>
        /// <param name="Text">Преобразуемый текст</param>
        /// <param name="Alphabet">Алфавит</param>
        /// <param name="Type">Формат преобразования</param>
        /// <returns></returns>
        public static String Convert(String Text, TranslitAlphabet Alphabet, TranslitType Type = TranslitType.ISO)
        {
            switch (Alphabet)
            {
            case TranslitAlphabet.Latin:
                return(ToLatin(Text, Type));

            case TranslitAlphabet.Cyrillic:
                return(ToCyrillic(Text, Type));

            default:
                return(Text);
            }
        }
예제 #7
0
        public static string Front(string text, TranslitType type)
        {
            string output = text;

            output = Regex.Replace(output, @"\s|\.|\(", " ");
            output = Regex.Replace(output, @"\s+", " ");
            output = Regex.Replace(output, @"[^\s\w\d-]", "");
            output = output.Trim();

            Dictionary <string, string> tdict = GetDictionaryByType(type);

            foreach (KeyValuePair <string, string> key in tdict)
            {
                output = output.Replace(key.Key, key.Value);
            }
            return(output);
        }
예제 #8
0
        /// <summary>
        /// Получает алфавитный словарь в указанном формате.
        /// </summary>
        /// <param name="Type">Формат преобразования</param>
        /// <returns></returns>
        public static Dictionary <String, String> GetDictionary(TranslitType Type)
        {
            switch (Type)
            {
            case TranslitType.GOST:
                return(GOST);

            case TranslitType.ISO:
                return(ISO);

            case TranslitType.Custom:
                return(Custom);

            default:
                return(ISO);
            }
        }
예제 #9
0
 /// <summary>
 /// Преобразует латинский текст в кириллистический, в указанном формате.
 /// </summary>
 /// <param name="Text"></param>
 /// <param name="Type">Формат преобразования</param>
 /// <returns></returns>
 public static String ToCyrillic(String Text, TranslitType Type = TranslitType.ISO)
 {
     return(Translit.ToCyrillic(Text, Type));
 }