4
4
5
5
using System ;
6
6
using System . Collections . Generic ;
7
+ using System . Globalization ;
7
8
using System . Linq ;
8
9
using System . Runtime . InteropServices ;
9
10
using System . Windows ;
@@ -76,7 +77,7 @@ private void PopulateLanguageMenu()
76
77
if ( string . IsNullOrEmpty ( selectedLanguageName ) )
77
78
{
78
79
selectedLanguage = ImageMethods . GetOCRLanguage ( ) ;
79
- selectedLanguageName = selectedLanguage ? . DisplayName ;
80
+ selectedLanguageName = selectedLanguage ? . NativeName ;
80
81
}
81
82
82
83
List < Language > possibleOcrLanguages = OcrEngine . AvailableRecognizerLanguages . ToList ( ) ;
@@ -85,10 +86,10 @@ private void PopulateLanguageMenu()
85
86
86
87
foreach ( Language language in possibleOcrLanguages )
87
88
{
88
- MenuItem menuItem = new ( ) { Header = language . NativeName , Tag = language , IsCheckable = true } ;
89
- menuItem . IsChecked = language . DisplayName . Equals ( selectedLanguageName , StringComparison . Ordinal ) ;
90
- LanguagesComboBox . Items . Add ( language ) ;
91
- if ( language . DisplayName . Equals ( selectedLanguageName , StringComparison . Ordinal ) )
89
+ MenuItem menuItem = new ( ) { Header = EnsureStartUpper ( language . NativeName ) , Tag = language , IsCheckable = true } ;
90
+ menuItem . IsChecked = language . NativeName . Equals ( selectedLanguageName , StringComparison . OrdinalIgnoreCase ) ;
91
+ LanguagesComboBox . Items . Add ( new ComboBoxItem { Content = EnsureStartUpper ( language . NativeName ) , Tag = language } ) ;
92
+ if ( language . NativeName . Equals ( selectedLanguageName , StringComparison . OrdinalIgnoreCase ) )
92
93
{
93
94
selectedLanguage = language ;
94
95
LanguagesComboBox . SelectedIndex = count ;
@@ -358,7 +359,12 @@ private void LanguagesComboBox_SelectionChanged(object sender, SelectionChangedE
358
359
359
360
// TODO: Set the preferred language based upon what was chosen here
360
361
int selection = languageComboBox . SelectedIndex ;
361
- selectedLanguage = languageComboBox . SelectedItem as Language ;
362
+ selectedLanguage = ( languageComboBox . SelectedItem as ComboBoxItem ) ? . Tag as Language ;
363
+
364
+ if ( selectedLanguage == null )
365
+ {
366
+ return ;
367
+ }
362
368
363
369
Logger . LogError ( $ "Changed language to { selectedLanguage ? . LanguageTag } ") ;
364
370
@@ -499,4 +505,16 @@ public System.Drawing.Rectangle GetScreenRectangle()
499
505
{
500
506
return screenRectangle ;
501
507
}
508
+
509
+ private string EnsureStartUpper ( string input )
510
+ {
511
+ if ( string . IsNullOrEmpty ( input ) )
512
+ {
513
+ return input ;
514
+ }
515
+
516
+ var inputArray = input . ToCharArray ( ) ;
517
+ inputArray [ 0 ] = char . ToUpper ( inputArray [ 0 ] , CultureInfo . CurrentCulture ) ;
518
+ return new string ( inputArray ) ;
519
+ }
502
520
}
0 commit comments