예제 #1
0
        public void TranslateInterlinearChapter()
        {
            ConnectionHelper.Connect();
            var uow    = new UnitOfWork();
            var verses = new XPQuery <Model.Verse>(uow).Where(x => x.Index.StartsWith("NPI.500.2"));
            var dic    = new XPQuery <Model.AncientDictionaryItem>(uow).ToList();

            uow.BeginTransaction();

            var c = new GreekTransliterationController();

            foreach (var verse in verses)
            {
                foreach (var verseWord in verse.VerseWords)
                {
                    if (verseWord.Translation.IsNullOrEmpty())
                    {
                        var w    = c.GetSourceWordWithoutBreathAndAccent(verseWord.SourceWord.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\""), out var isUpper);
                        var item = dic.Where(x => x.Word == w.ToLower()).FirstOrDefault();
                        if (item.IsNotNull())
                        {
                            verseWord.Translation = item.Translation;
                            if (isUpper && verseWord.Translation.IsNotNullOrEmpty() && verseWord.Translation.Length > 1)
                            {
                                verseWord.Translation = verseWord.Translation.Substring(0, 1).ToUpper() + verseWord.Translation.Substring(1);
                            }
                            verseWord.Save();
                        }
                    }
                }
            }

            uow.CommitChanges();
        }
예제 #2
0
        public VerseGridForm(Verse verse)
        {
            InitializeComponent();
            this.Text = "Interlinear Bible Editor";

            Uow = new UnitOfWork();

            Translation = verse.ParentTranslation;
            NAME        = Translation.Name;
            // $"{NAME.Replace("'", "").Replace("+", "")}.";

            LoadBooks();

            //var view = new XPView(Uow, typeof(BookBase)) {
            //    CriteriaString = $"[Status.BookType] = {(int)Translation.BookType}"
            //};
            //view.Properties.Add(new ViewProperty("NumberOfBook", SortDirection.None, "[NumberOfBook]", false, true));
            //view.Properties.Add(new ViewProperty("BookTitle", SortDirection.None, "[BookTitle]", false, true));

            //var list = new List<BookBaseInfo>();
            //foreach (ViewRecord item in view) {
            //    list.Add(new BookBaseInfo() {
            //        NumberOfBook = item["NumberOfBook"].ToInt(),
            //        BookTitle = item["BookTitle"].ToString()
            //    });
            //}
            //editBook.DataSource = list;

            var index = verse.GetVerseIndex();

            btnOblubienicaEu.Visibility   = index.NumberOfBook >= 470 ? DevExpress.XtraBars.BarItemVisibility.Always : DevExpress.XtraBars.BarItemVisibility.Never;
            btnLogosSeptuagint.Visibility = index.NumberOfBook < 470 ? DevExpress.XtraBars.BarItemVisibility.Always : DevExpress.XtraBars.BarItemVisibility.Never;


            VerseControl = new VerseGridControl()
            {
                Dock = DockStyle.Fill
            };
            pnlContent.Controls.Add(VerseControl);

            //this.Load += new EventHandler(delegate (object sender, EventArgs e) {
            //    Application.DoEvents();
            //    var bookInfo = list.Where(x => x.NumberOfBook == index.NumberOfBook).FirstOrDefault();
            //    txtBook.EditValue = bookInfo;
            //    editBook_EditValueChanged(this, new DevExpress.XtraEditors.Controls.ChangingEventArgs(null, bookInfo));
            //    Application.DoEvents();
            //    txtChapter.EditValue = index.NumberOfChapter;
            //    editChapter_EditValueChanged(this, new DevExpress.XtraEditors.Controls.ChangingEventArgs(null, index.NumberOfChapter));
            //    Application.DoEvents();
            //    txtVerse.EditValue = index.NumberOfVerse;
            //    editVerse_EditValueChanged(this, new DevExpress.XtraEditors.Controls.ChangingEventArgs(null, index.NumberOfVerse));
            //    Application.DoEvents();
            //});

            TransliterationController = new GreekTransliterationController();

            txtIndex.EditValue = verse.Index;
            txtIndex_KeyUp(txtIndex, new KeyEventArgs(Keys.Enter));
        }
        public void TransliterationTest()
        {
            ConnectionHelper.Connect();
            var uow        = new UnitOfWork();
            var controller = new GreekTransliterationController();
            var sentence   = controller.GetTransliterateSentence(new VerseIndex("NPI.10.1.2"), uow);

            Assert.IsTrue(sentence.TransliteritSentence != null);
        }
예제 #4
0
        public InterlinearEditorForm(Verse verse)
        {
            InitializeComponent();
            this.Text = "Interlinear Bible Editor";

            Uow = new UnitOfWork();

            Translation = verse.ParentTranslation;// new XPQuery<Translation>(Uow).Where(x => x.Name == verse.ParentTranslation.Name).FirstOrDefault();
            NAME        = Translation.Name;

            var view = new XPView(Uow, typeof(BookBase));

            view.CriteriaString = $"[Status.BookType] = {(int)Translation.BookType}";
            view.Properties.Add(new ViewProperty("NumberOfBook", SortDirection.None, "[NumberOfBook]", false, true));
            view.Properties.Add(new ViewProperty("BookTitle", SortDirection.None, "[BookTitle]", false, true));

            var list = new List <BookBaseInfo>();

            foreach (ViewRecord item in view)
            {
                list.Add(new BookBaseInfo()
                {
                    NumberOfBook = item["NumberOfBook"].ToInt(),
                    BookTitle    = item["BookTitle"].ToString()
                });
            }

            var index = verse.GetVerseIndex();

            btnOblubienicaEu.Visibility   = index.NumberOfBook >= 470 ? DevExpress.XtraBars.BarItemVisibility.Always : DevExpress.XtraBars.BarItemVisibility.Never;
            btnLogosSeptuagint.Visibility = index.NumberOfBook < 470 ? DevExpress.XtraBars.BarItemVisibility.Always : DevExpress.XtraBars.BarItemVisibility.Never;
            editBook.DataSource           = list;

            VerseControl = new VerseEditorControl()
            {
                Dock = DockStyle.Fill
            };
            this.Controls.Add(VerseControl);

            this.Load += new EventHandler(delegate(object sender, EventArgs e) {
                Application.DoEvents();
                var bookInfo      = list.Where(x => x.NumberOfBook == index.NumberOfBook).FirstOrDefault();
                txtBook.EditValue = bookInfo;
                editBook_EditValueChanged(this, new DevExpress.XtraEditors.Controls.ChangingEventArgs(null, bookInfo));
                Application.DoEvents();
                txtChapter.EditValue = index.NumberOfChapter;
                editChapter_EditValueChanged(this, new DevExpress.XtraEditors.Controls.ChangingEventArgs(null, index.NumberOfChapter));
                Application.DoEvents();
                txtVerse.EditValue = index.NumberOfVerse;
                editVerse_EditValueChanged(this, new DevExpress.XtraEditors.Controls.ChangingEventArgs(null, index.NumberOfVerse));
                Application.DoEvents();
            });

            TransliterationController = new GreekTransliterationController();
        }
        public void UpdateTransliteration()
        {
            ConnectionHelper.Connect();
            var uow = new UnitOfWork();

            uow.BeginTransaction();
            var controller = new GreekTransliterationController();
            var words      = new XPQuery <VerseWord>(uow);

            foreach (var word in words)
            {
                controller.TransliterateWord(word);
            }
            uow.CommitChanges();
        }
        public void UpdateTransliterationChapter()
        {
            ConnectionHelper.Connect();
            var uow = new UnitOfWork();

            uow.BeginTransaction();
            var controller = new GreekTransliterationController();
            var verses     = new XPQuery <Verse>(uow).Where(x => x.Index.StartsWith("NPI.10.1"));

            foreach (var verse in verses)
            {
                var words = verse.VerseWords;
                foreach (var word in words)
                {
                    controller.TransliterateWord(word);
                }
            }
            uow.CommitChanges();
        }
예제 #7
0
        public VerseGridForm()
        {
            InitializeComponent();
            this.Text = "Interlinear Bible Editor";

            Uow = new UnitOfWork();

            Translation        = new XPQuery <Translation>(Uow).Where(x => x.Name == NAME).FirstOrDefault();
            txtIndex.EditValue = "NPI.";

            LoadBooks();

            /*
             * var view = new XPView(Uow, typeof(BookBase)) {
             *  CriteriaString = "[Status.Oid] = 1 OR [Status.Oid] = 2" // tylko kanoniczne
             * };
             * view.Properties.Add(new ViewProperty("NumberOfBook", SortDirection.None, "[NumberOfBook]", false, true));
             * view.Properties.Add(new ViewProperty("BookTitle", SortDirection.None, "[BookTitle]", false, true));
             *
             * var list = new List<BookBaseInfo>();
             * foreach (ViewRecord item in view) {
             *  list.Add(new BookBaseInfo() {
             *      NumberOfBook = item["NumberOfBook"].ToInt(),
             *      BookTitle = item["BookTitle"].ToString()
             *  });
             * }
             *
             * editBook.DataSource = list;
             */

            VerseControl = new VerseGridControl()
            {
                Dock = DockStyle.Fill
            };
            pnlContent.Controls.Add(VerseControl);

            TransliterationController = new GreekTransliterationController();
        }
        public VerseWordEditorControl(VerseWord word) : this()
        {
            Word          = word;
            Word.Changed += Word_Changed;

            lblNumberOfVerseWord.DataBindings.Add("Text", word, "NumberOfVerseWord");
            lblGreekWord.DataBindings.Add("Text", word, "SourceWord");
            txtTranslation.DataBindings.Add("Text", word, "Translation");
            lblTransliteration.DataBindings.Add("Text", word, "Transliteration");

            cbCitation.DataBindings.Add("Checked", word, "Citation");
            cbWordOfJesus.DataBindings.Add("Checked", word, "WordOfJesus");

            txtFootnoteText.DataBindings.Add("Text", word, "FootnoteText");

            if (word.GrammarCode.IsNotNull())
            {
                lblGrammarCode.DataBindings.Add("Text", word.GrammarCode, "GrammarCodeVariant1");
            }
            else
            {
                lblGrammarCode.BackColor = Color.DarkGray;
            }

            if (word.StrongCode.IsNotNull())
            {
                lblStrong.DataBindings.Add("Text", word.StrongCode, "Code");
            }
            else
            {
                lblStrong.BackColor = Color.DarkGray;
            }

            AddStrongToolTip(word.StrongCode);
            AddGrammarToolTip(word.GrammarCode);

            TransliterationController = new GreekTransliterationController();
        }
예제 #9
0
        public InterlinearEditorForm()
        {
            InitializeComponent();
            this.Text = "Interlinear Bible Editor";

            Uow = new UnitOfWork();

            Translation = new XPQuery <Translation>(Uow).Where(x => x.Name == NAME).FirstOrDefault();

            var view = new XPView(Uow, typeof(BookBase));

            view.CriteriaString = "[Status.Oid] = 1 OR [Status.Oid] = 2"; // tylko kanoniczne
            view.Properties.Add(new ViewProperty("NumberOfBook", SortDirection.None, "[NumberOfBook]", false, true));
            view.Properties.Add(new ViewProperty("BookTitle", SortDirection.None, "[BookTitle]", false, true));

            var list = new List <BookBaseInfo>();

            foreach (ViewRecord item in view)
            {
                list.Add(new BookBaseInfo()
                {
                    NumberOfBook = item["NumberOfBook"].ToInt(),
                    BookTitle    = item["BookTitle"].ToString()
                });
            }

            editBook.DataSource = list;

            VerseControl = new VerseEditorControl()
            {
                Dock = DockStyle.Fill
            };
            this.Controls.Add(VerseControl);

            TransliterationController = new GreekTransliterationController();
        }
예제 #10
0
 public VerseGridControl()
 {
     InitializeComponent();
     TransliterationController = new GreekTransliterationController();
     txtDefinition.ReplaceService <ISyntaxHighlightService>(new HTMLSyntaxHighlightService(txtDefinition));
 }
예제 #11
0
        private void btnAutoTranslateChapter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (XtraMessageBox.Show("Do you want to auto-translate this chapter to Polish?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                var verses = VerseControl.Verse.ParentChapter.Verses.OrderBy(x => x.NumberOfVerse).ToList();
                var dic    = new XPQuery <AncientDictionaryItem>(Uow).ToList();

                Uow.BeginTransaction();

                var c = new GreekTransliterationController();

                foreach (var verse in verses)
                {
                    foreach (var verseWord in verse.VerseWords)
                    {
                        var sourceWord = verseWord.SourceWord.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\"", "?");

                        if (verseWord.Translation.IsNullOrEmpty())
                        {
                            var exactItem = dic.Where(x => x.Word == sourceWord.ToLower()).FirstOrDefault();
                            if (exactItem.IsNotNull())
                            {
                                var translation = String.Empty;
                                var _isUpper    = System.Char.IsUpper(sourceWord[0]);
                                if (_isUpper && exactItem.Translation.IsNotNullOrEmpty() && exactItem.Translation.Length > 1)
                                {
                                    translation = exactItem.Translation.Substring(0, 1).ToUpper() + exactItem.Translation.Substring(1).ToLower();
                                }
                                else
                                {
                                    translation = exactItem.Translation.ToLower();
                                }
                                if (translation.IsNotNullOrEmpty())
                                {
                                    translation = translation.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\"", "?");
                                    if (verseWord.SourceWord.EndsWith(","))
                                    {
                                        translation += ",";
                                    }
                                    if (verseWord.SourceWord.EndsWith(";"))
                                    {
                                        translation += ";";
                                    }
                                    if (verseWord.SourceWord.EndsWith("·"))
                                    {
                                        translation += ":";
                                    }
                                    if (verseWord.SourceWord.EndsWith("."))
                                    {
                                        translation += ".";
                                    }

                                    verseWord.Translation = translation;
                                    verseWord.Save();

                                    continue;
                                }
                            }

                            var w    = c.GetSourceWordWithoutBreathAndAccent(sourceWord, out var isUpper);
                            var item = dic.Where(x => x.Word == w.ToLower()).FirstOrDefault();
                            if (item.IsNotNull())
                            {
                                var translation = String.Empty;
                                if (isUpper && item.Translation.IsNotNullOrEmpty() && item.Translation.Length > 1)
                                {
                                    translation = item.Translation.Substring(0, 1).ToUpper() + item.Translation.Substring(1).ToLower();
                                }
                                else
                                {
                                    translation = item.Translation.ToLower();
                                }
                                if (translation.IsNotNullOrEmpty())
                                {
                                    translation = translation.RemoveAny(".", ":", ",", ";", "·", "—", "-", ")", "(", "]", "[", "’", ";", "\"", "?");
                                    if (verseWord.SourceWord.EndsWith(","))
                                    {
                                        translation += ",";
                                    }
                                    if (verseWord.SourceWord.EndsWith(";"))
                                    {
                                        translation += ";";
                                    }
                                    if (verseWord.SourceWord.EndsWith("·"))
                                    {
                                        translation += ":";
                                    }
                                    if (verseWord.SourceWord.EndsWith("."))
                                    {
                                        translation += ".";
                                    }

                                    verseWord.Translation = translation;
                                    verseWord.Save();
                                }
                            }
                        }
                    }
                }

                VerseControl.Verse.ParentChapter.IsTranslated = true;

                Uow.CommitChanges();

                VerseControl.LoadData(verses.First());
            }
        }