Пример #1
0
        private async void ConvertButton_Click(object sender, RoutedEventArgs e)
        {
            var picker = new Windows.Storage.Pickers.FileOpenPicker
            {
                ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail,
                SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary
            };

            picker.FileTypeFilter.Add(".xml");
            picker.FileTypeFilter.Add(".txt");

            StorageFile file = await picker.PickSingleFileAsync();

            var doc = CopticInterpreter.ReadDocXml(file.Path);

            if (String.IsNullOrWhiteSpace(OutputBox.Text))
            {
                //OutputBox.Text += CopticInterpreter.ConvertFromString(doc.Content);
                InputBox.Text += doc.Translations[0];
            }
            else
            {
                //string input = String.Join("\r\n", doc.Translations[0].Content.Select(s => s.Text));
                //OutputBox.Text += CopticInterpreter.ConvertFont(
                //    input, CopticFont.Coptic1, CopticFont.CopticUnicode
                //);
                //InputBox.Text += input;
            }
            //OutputBox.Text = CopticInterpreter.ConvertFromString(InputBox.Text);
        }
        private void InputBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            int caret = InputBox.SelectionStart;

            switch ((Language)LanguageOption.SelectedIndex)
            {
            case CoptLib.Language.Coptic:
                InputBox.Text = CopticInterpreter.ConvertFont(InputBox.Text, CopticFont.CsAvvaShenouda, CopticFont.CopticUnicode);
                break;
            }
            InputBox.SelectionStart = caret;
        }
Пример #3
0
        private async void LoadDocs(bool present = false)
        {
            OutputBox.Text = "";
            InputBox.Text  = "";
            IReadOnlyList <StorageFile> files = await ApplicationData.Current.RoamingFolder.GetFilesAsync();

            try
            {
                if (files != null)
                {
                    if (files.Count > 0)
                    {
                        Common.Docs.Clear();
                        foreach (StorageFile file in files)
                        {
                            Debug.WriteLine(file.Path);
                            var doc = CopticInterpreter.ReadDocXml(file.Path);
                            Common.Docs.Add(doc);
                            Debug.WriteLine(doc.Name);
                        }

                        if (present)
                        {
                            Present();
                        }
                    }
                    else
                    {
                        Frame.Navigate(typeof(FilesPage));
                    }
                }
                else
                {
                    Frame.Navigate(typeof(FilesPage));
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);

                ContentDialog errorDialog = new ContentDialog()
                {
                    Title           = "Error",
                    Content         = ex,
                    CloseButtonText = "Ok"
                };

                await errorDialog.ShowAsync();

                Frame.Navigate(typeof(FilesPage));
            }
        }
Пример #4
0
        private void ImportDoc(StorageFile file)
        {
            Debug.WriteLine(file.Path);
            var doc = CopticInterpreter.ReadDocXml(file.Path);

            FileView.Items.Add(new ListViewItem()
            {
                Content = $"{doc.Name} [{doc.Uuid}]",
            });
            _files.Add(file);
            //Common.Docs.Add(doc);

            StatusBlock.Visibility = Visibility.Visible;
            StatusBlock.Foreground = new SolidColorBrush(Color.FromArgb(255, 15, 166, 0));
            StatusBlock.Text       = "Successfully copied " + file.Name;
        }
Пример #5
0
        private async void OpenButton_Click(object sender, RoutedEventArgs e)
        {
            var picker = new FileOpenPicker();

            picker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
            picker.FileTypeFilter.Add(".xml");
            picker.FileTypeFilter.Add(".zip");

            Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

            if (file == null)
            {
                return;
            }

            var mru = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList;

            _ = mru.Add(file, file.Name);

            var stream = await file.OpenStreamForReadAsync();

            switch (Path.GetExtension(file.Name))
            {
            case ".xml":
                // Read the file
                var docXml = CopticInterpreter.ReadDocXml(stream);
                Docs.Add(docXml);
                MainTabControl.SelectedIndex = Docs.Count - 1;
                return;

            case ".zip":
                // Read the set
                var set = CopticInterpreter.ReadSet(stream, file.Name, Windows.Storage.ApplicationData.Current.TemporaryFolder.Path);
                Docs.Clear();
                set.IncludedDocs.ForEach(d => Docs.Add(d));
                MainTabControl.SelectedIndex = 0;
                CurrentStanza = (set.IncludedDocs[0].Translations[0].Content[0] as Stanza)?.Text;
                return;
            }
        }
Пример #6
0
        static void Main(string[] args)
        {
            string logPath = @"C:\Users\jjask\Desktop\log.txt";

            Console.OutputEncoding = System.Text.Encoding.Unicode;

            var        parameters = ParseArgs(args);
            CopticFont sourceFont = CopticFont.CsAvvaShenouda;
            CopticFont targetFont = CopticFont.CopticUnicode;

            if (parameters.ContainsKey("source-font"))
            {
                sourceFont = CopticFont.Fonts.Find((f) => f.Name == parameters["source-font"]);
            }
            if (parameters.ContainsKey("target-font"))
            {
                targetFont = CopticFont.Fonts.Find((f) => f.Name == parameters["target-font"]);
            }

            string output = "";

            if (parameters.ContainsKey("source-txt"))
            {
                try
                {
                    output = CopticInterpreter.ConvertFont(
                        File.ReadAllText(parameters["source-file"]), sourceFont, targetFont
                        );
                }
                catch (FileNotFoundException)
                {
                    Console.Error.WriteLine("Unable to read the source file");
                }
            }
            else if (parameters.ContainsKey(""))
            {
                output = CopticInterpreter.ConvertFont(
                    parameters[""], sourceFont, targetFont
                    );
            }
            else if (parameters.ContainsKey("source-csv"))
            {
                try
                {
                    // Get the column to convert
                    int columnNum = 0;
                    if (parameters.ContainsKey("csv-column"))
                    {
                        columnNum = Int32.Parse(parameters["csv-column"]);
                    }

                    // Read the specified column
                    List <string> inputText = new List <string>();
                    var           table     = ReadCsvFile(parameters["source-csv"]);
                    foreach (List <string> row in table)
                    {
                        inputText.Add(row[columnNum]);
                    }

                    // Convert each line
                    foreach (string input in inputText)
                    {
                        output += CopticInterpreter.ConvertFont(
                            input, sourceFont, targetFont
                            );
                        output += "\r\n";
                    }
                }
                catch (FileNotFoundException)
                {
                    Console.Error.WriteLine("Unable to read the source file");
                }
            }

            Console.WriteLine(output);
            File.WriteAllText(logPath, output, System.Text.Encoding.Unicode);
        }
        /// <summary>
        /// Initializes the specified key
        /// </summary>
        /// <param name="btn">The key to initialize</param>
        /// <param name="keytype">Language to load: eng / copt / arabic + ":sft"</param>
        /// <param name="index"></param>
        private void InitKey(Button btn, Language language, bool shift, int index)
        {
            switch (language)
            {
                #region English
            case CoptLib.Language.English:
                if (shift)
                {
                    if (EnglishSft[index] != null)
                    {
                        btn.Visibility = Visibility.Visible;
                        btn.Content    = EnglishSft[index];
                    }
                    else
                    {
                        btn.Visibility = Visibility.Collapsed;
                    }
                }
                else
                {
                    if (English[index] != null)
                    {
                        btn.Visibility = Visibility.Visible;
                        btn.Content    = English[index];
                    }
                    else
                    {
                        btn.Visibility = Visibility.Collapsed;
                    }
                }
                return;

                #endregion

                #region Coptic
            case CoptLib.Language.Coptic:
                if (shift)
                {
                    if (CopticSft[index] != null)
                    {
                        btn.Visibility = Visibility.Visible;
                        btn.Content    = CopticInterpreter.ConvertFont(EnglishSft[index], CopticFont.CsAvvaShenouda, CopticFont.CopticUnicode);
                    }
                    else
                    {
                        btn.Visibility = Visibility.Collapsed;
                    }
                }
                else
                {
                    if (Coptic[index] != null)
                    {
                        btn.Visibility = Visibility.Visible;
                        var vals = CopticFont.CopticUnicode.Charmap.Values.ToList();
                        btn.Content = CopticInterpreter.ConvertFont(English[index], CopticFont.CsAvvaShenouda, CopticFont.CopticUnicode);
                    }
                    else
                    {
                        btn.Visibility = Visibility.Collapsed;
                    }
                }
                return;

                #endregion

                #region Arabic
            case CoptLib.Language.Arabic:
                if (!shift)
                {
                    if (ArabicSft[index] != null)
                    {
                        btn.Visibility = Visibility.Visible;
                        btn.Content    = ArabicSft[index];
                    }
                    else
                    {
                        btn.Visibility = Visibility.Collapsed;
                    }
                }
                else
                {
                    if (Arabic[index] != null)
                    {
                        btn.Visibility = Visibility.Visible;
                        btn.Content    = Arabic[index];
                    }
                    else
                    {
                        btn.Visibility = Visibility.Collapsed;
                    }
                }
                return;

                #endregion
            }
        }