public void CreateAndUpdateOneOfTwoFts() { m_para.SegmentsOS.Clear(); string pc1 = "Das buch ist rot. "; string pc2 = "Das Madchen ist shon."; string verse1 = "9"; m_para.Contents = Cache.TsStrFactory.MakeString(pc1 + verse1 + pc2, m_wsVern); string trans1 = "The book is red."; string trans2 = "The girl is beautiful"; BackTranslationAndFreeTranslationUpdateHelper.Do(m_para, () => SetFt(m_para, trans1, 0)); Assert.AreEqual(1, m_para.TranslationsOC.Count, "should not have updated for change to same ft."); BackTranslationAndFreeTranslationUpdateHelper.Do( m_para, () => MakeVerseSegment(m_para, pc1.Length, verse1.Length)); var seg2 = SetFt(m_para, trans2, 2); Assert.AreEqual(1, m_para.TranslationsOC.Count, "should have updated on changing another property"); Assert.AreEqual(trans1 + " " + verse1 + trans2, m_para.TranslationsOC.ToArray()[0].Translation.get_String(m_wsTrans).Text, "translation should be correct after changing prop2"); string trans2b = "The girl is pretty."; seg2.FreeTranslation.set_String(m_wsTrans, trans2b); // should generate propChanged for same prop. Assert.AreEqual(trans1 + " " + verse1 + trans2b, m_para.TranslationsOC.ToArray()[0].Translation.get_String(m_wsTrans).Text, "translation should be correct after changing prop2"); }
/// ------------------------------------------------------------------------------------ /// <summary> /// Convert the CmTranslation version of the translation to the interlinear version. /// </summary> /// <param name="para">The paragraph.</param> /// <param name="wsBt">The writing system for which to do the conversion.</param> /// ------------------------------------------------------------------------------------ public static void ConvertCmTransToInterlin(IStTxtPara para, int wsBt) { BtConverter converter = new BtConverter(para, wsBt); BackTranslationAndFreeTranslationUpdateHelper.Do(para, converter.ConvertCmTransToInterlin); }