// Строит синтаксическую разметку по данному тексту и помещает ее в m_syntaxLayout void BuildSyntaxLayout(bool finished) { if (finished) { // Так как в разных языках разметка может формироваться по разному (например в испанском языке есть вопросительный знак непосредственно перед предложением, // и он означает начало предложения, в других же языках такого нет), то будем запрашивать построитель разметок для языка этого текста, который построит // разметку с учетом особенностей языка этой разметки // Запросим нужный построитель разметки по известному языку текста SyntaxLayoutBuilder syntaxLayoutBuilder = SyntaxLayoutBuilder.GetBuilder(LanguageCode); // Строим разметку m_syntaxLayout = syntaxLayoutBuilder.Build(Text); } else { m_syntaxLayout = null; } }
// По списку слов получает строку вида " 0 12 16 80 " (в таком виде слова хранятся в базе данных) public static string GetPhraseIndexes(SyntaxLayout.Word[] phraseWords) { Debug.Assert(phraseWords != null); if (phraseWords.Length == 0) return ""; StringBuilder sb = new StringBuilder(" "); foreach (var word in phraseWords) { sb.Append(word.FirstIndex.ToString()); sb.Append(' '); } return sb.ToString(); }
// Строит синтаксическую разметку по данному тексту и помещает ее в m_syntaxLayout void BuildSyntaxLayout(bool finished) { if (finished) { // Так как в разных языках разметка может формироваться по разному (например в испанском языке есть вопросительный знак непосредственно перед предложением, // и он означает начало предложения, в других же языках такого нет), то будем запрашивать построитель разметок для языка этого текста, который построит // разметку с учетом особенностей языка этой разметки // Запросим нужный построитель разметки по известному языку текста SyntaxLayoutBuilder syntaxLayoutBuilder = SyntaxLayoutBuilder.GetBuilder(LanguageCode); // Строим разметку m_syntaxLayout = syntaxLayoutBuilder.Build(Text); } else m_syntaxLayout = null; }