Exemple #1
0
        // Строит синтаксическую разметку по данному тексту и помещает ее в 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;
        }