Browse Source

转档-OCR默认语言

liyijie 1 year ago
parent
commit
36af026a7c

+ 5 - 0
PDF Office/App.xaml.cs

@@ -179,6 +179,9 @@ namespace PDF_Master
         /// </summary>
         /// </summary>
         public static uint WebopenexpiredId;
         public static uint WebopenexpiredId;
 
 
+        //App当前系统语言
+        public static string CultureLanguage;
+
         /// <summary>
         /// <summary>
         /// 文案资源管理器  首页
         /// 文案资源管理器  首页
         /// </summary>
         /// </summary>
@@ -210,6 +213,8 @@ namespace PDF_Master
             AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
             AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
             //Task线程内
             //Task线程内
             TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
             TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
+
+            CultureLanguage = System.Globalization.CultureInfo.CurrentUICulture.ToString();
         }
         }
 
 
         private void InitSettings()
         private void InitSettings()

+ 84 - 0
PDF Office/Helper/CommonHelper.cs

@@ -4,6 +4,8 @@ using PDF_Master.ViewModels.Dialog.BOTA;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Diagnostics;
+using System.Diagnostics.Eventing.Reader;
+using System.Globalization;
 using System.IO;
 using System.IO;
 using System.Linq;
 using System.Linq;
 using System.Reflection;
 using System.Reflection;
@@ -598,5 +600,87 @@ namespace PDF_Master.Helper
             Numbers = Numbers.OrderBy(a => a).ToList();
             Numbers = Numbers.OrderBy(a => a).ToList();
             Numbers.Reverse();
             Numbers.Reverse();
         }
         }
+
+        /// <summary>
+        /// 获取系统语言列表
+        /// </summary>
+        /// <returns></returns>
+        public static CultureInfo[] cultureInfos()
+        {
+            return CultureInfo.GetCultures(CultureTypes.AllCultures);
+        }
+
+        /// <summary>
+        /// 语言缩写获取语言全称
+        /// </summary>
+        /// <param name="languageCode"></param>
+        /// <returns></returns>
+        public static string LanguageFullName(string languageCode = "en")
+        {
+
+            CultureInfo[] cultures = cultureInfos();
+
+            CultureInfo matchingCulture = cultures.FirstOrDefault(c => c.TwoLetterISOLanguageName.Equals(languageCode, StringComparison.InvariantCultureIgnoreCase));
+
+            if (matchingCulture != null)
+            {
+                string languageFullName = matchingCulture.EnglishName;
+                return languageFullName;
+            }
+            else
+            {
+                return languageCode;
+            }
+        }
+
+        /// <summary>
+        /// 语言与地区缩写获取语言名字(语言+地区)
+        /// </summary>
+        /// <param name="languageAndcountryCode"></param>
+        /// <returns></returns>
+        public static string LanguageAndCountryFullName(string languageAndcountryCode = "en-US")
+        {
+
+            try
+            {
+                CultureInfo culture = CultureInfo.GetCultureInfo(languageAndcountryCode);
+                string languageFullName = culture.DisplayName;
+                return languageFullName;
+            }
+            catch (CultureNotFoundException)
+            {
+                return languageAndcountryCode;
+            }
+        }
+
+        /// <summary>
+        /// 语言与地区缩写获取语言名字(语言+地区)
+        /// </summary>
+        /// <param name="languageAndcountryCode"></param>
+        /// <returns></returns>
+        public static string LanguageName(string languageAndcountryCode = "en-US")
+        {
+            string languageAndcountry =  LanguageAndCountryFullName(languageAndcountryCode);
+            if (languageAndcountry.Contains("Chinese")) {
+                if (languageAndcountry.Contains("Simplified")) {
+                    return "Chinese";
+                } 
+                else {
+                    return "ChineseTraditional";
+                }
+            }
+            else if (languageAndcountry.Contains("("))
+            {
+                string pattern = @"\([^()]*\)"; // 匹配括号以及其中的内容
+
+                string result = Regex.Replace(languageAndcountry, pattern, string.Empty);
+                return result;
+            }
+            else {
+                return languageAndcountry;
+            }
+            
+        }
+
     }
     }
 }
 }

+ 47 - 2
PDF Office/Helper/ConverterHelper.cs

@@ -17,6 +17,7 @@ using System.Windows;
 using System.Net.Mime;
 using System.Net.Mime;
 using System.Windows.Controls;
 using System.Windows.Controls;
 using PDF_Master.Properties;
 using PDF_Master.Properties;
+using ComDocumentAIKit;
 
 
 namespace PDF_Master.Helper
 namespace PDF_Master.Helper
 {
 {
@@ -620,8 +621,52 @@ namespace PDF_Master.Helper
         /// 转档解锁跳转
         /// 转档解锁跳转
         /// </summary>
         /// </summary>
         public static void convertUnlock()
         public static void convertUnlock()
-        {      
-                Process.Start(new ProcessStartInfo(ServiceHelper.WebHost + "/windows/store/master?email=" + Settings.Default.UserDate.Email));
+        {
+            Process.Start(new ProcessStartInfo(ServiceHelper.WebHost + "/windows/store/master?email=" + Settings.Default.UserDate.Email));
+        }
+
+        /// <summary>
+        /// 获取OCR枚举
+        /// </summary>
+        /// <returns></returns>
+        public static COCRLanguage GetCOCRLanguage()
+        {
+            try
+            {
+                string languageName = CommonHelper.LanguageName(App.CultureLanguage);
+                string enumString = "COCRLanguage" + languageName; // 要转换的字符串
+                COCRLanguage enumValue; // 目标枚举类型变量
+                bool success = Enum.TryParse(enumString, out enumValue);
+                if (success)
+                {
+                    return enumValue;
+                }
+                else
+                {
+                    return COCRLanguage.COCRLanguageEnglish;
+                }
+            }
+            catch
+            {
+                return COCRLanguage.COCRLanguageEnglish;
+            }
+
+        }
+
+        /// <summary>
+        /// 将OCR语言枚举转为int
+        /// </summary>
+        /// <returns></returns>
+        public static int GetCOCRLanguageInt() {
+
+            if ((int)ConverterHelper.GetCOCRLanguage() <= 4)
+            {
+               return (int)ConverterHelper.GetCOCRLanguage();
+            }
+            else
+            {
+               return 2;
+            }
         }
         }
 
 
     }
     }

+ 1 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterExcelDialogViewModel.cs

@@ -764,6 +764,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 {
                 {
                     LimitationsConvertVisible = Visibility.Visible;
                     LimitationsConvertVisible = Visibility.Visible;
                 }
                 }
+                LanguageSelectedIndex = ConverterHelper.GetCOCRLanguageInt();
             }
             }
         }
         }
         #endregion
         #endregion

+ 1 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterHTMLDialogViewModel.cs

@@ -522,6 +522,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 {
                 {
                     LimitationsConvertVisible = Visibility.Visible;
                     LimitationsConvertVisible = Visibility.Visible;
                 }
                 }
+                LanguageSelectedIndex = ConverterHelper.GetCOCRLanguageInt();
             }
             }
         }
         }
         #endregion
         #endregion

+ 1 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterPPTDialogViewModel.cs

@@ -551,6 +551,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 {
                 {
                     LimitationsConvertVisible = Visibility.Visible;
                     LimitationsConvertVisible = Visibility.Visible;
                 }
                 }
+                LanguageSelectedIndex = ConverterHelper.GetCOCRLanguageInt();
             }
             }
         }
         }
         #endregion
         #endregion

+ 1 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterRTFDialogViewModel.cs

@@ -520,6 +520,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 {
                 {
                     LimitationsConvertVisible = Visibility.Visible;
                     LimitationsConvertVisible = Visibility.Visible;
                 }
                 }
+                LanguageSelectedIndex = ConverterHelper.GetCOCRLanguageInt();
             }
             }
         }
         }
         #endregion
         #endregion

+ 1 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterTextDialogViewModel.cs

@@ -522,6 +522,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 {
                 {
                     LimitationsConvertVisible = Visibility.Visible;
                     LimitationsConvertVisible = Visibility.Visible;
                 }
                 }
+                LanguageSelectedIndex = ConverterHelper.GetCOCRLanguageInt();
             }
             }
         }
         }
         #endregion
         #endregion

+ 2 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterWordDialogViewModel.cs

@@ -16,6 +16,7 @@ using Prism.Services.Dialogs;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Diagnostics;
+using System.Globalization;
 using System.IO;
 using System.IO;
 using System.Linq;
 using System.Linq;
 using System.Windows;
 using System.Windows;
@@ -578,6 +579,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 {
                 {
                     LimitationsConvertVisible = Visibility.Visible;
                     LimitationsConvertVisible = Visibility.Visible;
                 }
                 }
+                LanguageSelectedIndex = ConverterHelper.GetCOCRLanguageInt();
             }
             }
         }
         }
         #endregion
         #endregion