Exemplo n.º 1
0
        /// <summary>
        /// Transliterates <paramref name="input"/> string according to provided map.
        /// </summary>
        /// <param name="input">Text that will be transliterated.</param>
        public string Transliterate(string input)
        {
            if (string.IsNullOrEmpty(input))
            {
                return null;
            }

            var processor = new TranslitProcessor(_translitData);
            var output = new StringBuilder();
            int lastGrahemeLength = 0;

            foreach (char c in input)
            {
                var addResult = processor.AddChar(c);
                switch (addResult.Status)
                {
                    case AddCharStatus.NoGraphemeFound:
                        output.Append(c);
                        lastGrahemeLength = 0;
                        break;
                    case AddCharStatus.NewGrapheme:
                        output.Append(addResult.Grapheme);
                        lastGrahemeLength = addResult.Grapheme.Length;
                        break;
                    case AddCharStatus.SubstitutePreviousGrapheme:
                        output.Remove(output.Length - lastGrahemeLength, lastGrahemeLength);
                        output.Append(addResult.Grapheme);
                        lastGrahemeLength = addResult.Grapheme.Length;
                        break;
                    default:
                        throw new ArgumentOutOfRangeException();
                }
            }
            return output.ToString();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates an instance of <see cref="TransliteratorLive"/> class.
        /// </summary>
        /// <param name="mapJson">
        /// Graphemes map in JSON format. Example: { "б": ["b"], "ё": ["jo", "yo"] }
        /// </param>
        public TransliteratorLive(string mapJson)
        {
            var translitData = new TranslitData(mapJson);

            _translitProcessor = new TranslitProcessor(translitData);
        }
Exemplo n.º 3
0
 public void Setup()
 {
     string jsonBody = ReadManifestData("YC.Transliteration", "lexicon.json");
    _config= JsonConvert.DeserializeObject<LexiconConfig>(jsonBody);
    _tp = new TranslitProcessor();
 }
Exemplo n.º 4
0
 /// <summary>
 /// Creates an instance of <see cref="TransliteratorLive"/> class.
 /// </summary>
 /// <param name="mapJson">
 /// Graphemes map in JSON format. Example: { "б": ["b"], "ё": ["jo", "yo"] }
 /// </param>
 public TransliteratorLive(string mapJson)
 {
     var translitData = new TranslitData(mapJson);
     _translitProcessor = new TranslitProcessor(translitData);
 }