From 40ae341392913ebd7075419f5f25b11e1eb860eb Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Wed, 26 Oct 2011 22:48:16 +0200 Subject: [PATCH] implement localization of SearchPanel in SharpDevelop --- data/resources/StringResources.de.resx | 14 +++- data/resources/StringResources.resx | 16 ++++- .../AvalonEdit.AddIn/AvalonEdit.AddIn.csproj | 1 + .../Src/SearchPanelLocalization.cs | 71 +++++++++++++++++++ .../AvalonEdit.AddIn/themes/generic.xaml | 9 ++- .../Project/Gui/SearchAndReplacePanel.cs | 1 - .../Properties/AssemblyInfo.cs | 1 + .../Search/Localization.cs | 3 +- .../Search/SearchPanel.cs | 4 +- 9 files changed, 110 insertions(+), 10 deletions(-) create mode 100644 src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SearchPanelLocalization.cs diff --git a/data/resources/StringResources.de.resx b/data/resources/StringResources.de.resx index f0f78708a7..a326bbd8a9 100644 --- a/data/resources/StringResources.de.resx +++ b/data/resources/StringResources.de.resx @@ -229,6 +229,18 @@ Laden Sie ein AddIn aus dem Internet herunter, klicken Sie auf "AddIn installier Unbekanntes Dateiformat: + + Fehler: + + + Weiter + + + Zurück + + + Reguläre Ausdrücke verwenden + Klassendiagramm anzeigen @@ -655,7 +667,7 @@ Optional können Sie auch ein Arbeitsverzeichnis und Kommandozeilen-Argumente an Mit Profiler starten - Suchen... + Suchen ... Methode extrahieren diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx index 609c612ffc..3eda03fcb0 100644 --- a/data/resources/StringResources.resx +++ b/data/resources/StringResources.resx @@ -229,6 +229,19 @@ Download an AddIn from the Internet, then click 'Install AddIn' and choose the d Unknown file format: + + Error: + Note: Mind the trailing space! + + + Find next + + + Find previous + + + Use regular expressions + Show Class Diagram @@ -6550,9 +6563,6 @@ Removed the end part of the original message ", reason '${Message}'" since this View in browser - - The project is not a web project. - New Folder diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj index cbd74f85ea..68af13281c 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj @@ -116,6 +116,7 @@ + diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SearchPanelLocalization.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SearchPanelLocalization.cs new file mode 100644 index 0000000000..e726bf0630 --- /dev/null +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SearchPanelLocalization.cs @@ -0,0 +1,71 @@ +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using System.ComponentModel; +using ICSharpCode.AvalonEdit.Search; +using ICSharpCode.Core; +using ICSharpCode.Core.Presentation; + +namespace ICSharpCode.AvalonEdit.AddIn +{ + public class SearchPanelLocalization : Localization, INotifyPropertyChanged + { + static SearchPanelLocalization instance; + + public static SearchPanelLocalization Instance { + get { + if (instance == null) + instance = new SearchPanelLocalization(); + return instance; + } + } + + public SearchPanelLocalization() + { + ResourceService.LanguageChanged += delegate { PropertiesChanged(); }; + } + + public override string ErrorText { + get { return StringParser.Parse("${res:AddIns.AvalonEdit.SearchPanel.ErrorText}"); } + } + + public override string FindNextText { + get { return StringParser.Parse("${res:AddIns.AvalonEdit.SearchPanel.FindNextText}") + " (F3)"; } + } + + public override string FindPreviousText { + get { return StringParser.Parse("${res:AddIns.AvalonEdit.SearchPanel.FindPreviousText}") + " (Shift+F3)"; } + } + + public override string MatchCaseText { + get { return MenuService.ConvertLabel(StringParser.Parse("${res:Dialog.NewProject.SearchReplace.MatchCase}")); } + } + + public override string MatchWholeWordsText { + get { return MenuService.ConvertLabel(StringParser.Parse("${res:Dialog.NewProject.SearchReplace.MatchWholeWord}")); } + } + + public override string NoMatchesFoundText { + get { return StringParser.Parse("${res:Dialog.NewProject.SearchReplace.SearchStringNotFound}"); } + } + + public override string UseRegexText { + get { return StringParser.Parse("${res:AddIns.AvalonEdit.SearchPanel.UseRegexText}"); } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected virtual void OnPropertyChanged(string propertyName) + { + if (PropertyChanged != null) { + PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + + void PropertiesChanged() + { + OnPropertyChanged(null); + } + } +} diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/themes/generic.xaml b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/themes/generic.xaml index 38bbde2df5..6f67bc9ce7 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/themes/generic.xaml +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/themes/generic.xaml @@ -1,5 +1,6 @@  + TextOptions.TextFormattingMode="{Binding CurrentZoom, ElementName=PART_ScrollViewer, Converter={x:Static local:ZoomLevelToTextFormattingModeConverter.Instance}}"> + + + + diff --git a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs index 0d23495bbd..eb2a6c8015 100644 --- a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs +++ b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs @@ -22,7 +22,6 @@ namespace SearchAndReplace public class SearchAndReplacePanel : BaseSharpDevelopUserControl { SearchAndReplaceMode searchAndReplaceMode; - ITextEditor textEditor; public SearchAndReplaceMode SearchAndReplaceMode { get { diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Properties/AssemblyInfo.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Properties/AssemblyInfo.cs index def7dd001b..0cd511628f 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Properties/AssemblyInfo.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Properties/AssemblyInfo.cs @@ -41,3 +41,4 @@ using System.Windows.Markup; [assembly: XmlnsDefinition("http://icsharpcode.net/sharpdevelop/avalonedit", "ICSharpCode.AvalonEdit.Editing")] [assembly: XmlnsDefinition("http://icsharpcode.net/sharpdevelop/avalonedit", "ICSharpCode.AvalonEdit.Rendering")] [assembly: XmlnsDefinition("http://icsharpcode.net/sharpdevelop/avalonedit", "ICSharpCode.AvalonEdit.Highlighting")] +[assembly: XmlnsDefinition("http://icsharpcode.net/sharpdevelop/avalonedit", "ICSharpCode.AvalonEdit.Search")] diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/Localization.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/Localization.cs index 40d6a441ec..9fa0141681 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/Localization.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/Localization.cs @@ -4,7 +4,7 @@ using System; using System.ComponentModel; -namespace ICSharpCode.AvalonEdit +namespace ICSharpCode.AvalonEdit.Search { /// /// Holds default texts for buttons and labels in the SearchPanel. Override properties to add other languages. @@ -35,7 +35,6 @@ namespace ICSharpCode.AvalonEdit /// /// Default: 'Find next (F3)' - /// /// public virtual string FindNextText { get { return "Find next (F3)"; } diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchPanel.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchPanel.cs index 4a7c67184a..f1ecd84d8c 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchPanel.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchPanel.cs @@ -269,7 +269,7 @@ namespace ICSharpCode.AvalonEdit.Search } } - ToolTip messageView = new ToolTip { Placement = PlacementMode.Bottom }; + ToolTip messageView = new ToolTip { Placement = PlacementMode.Bottom, StaysOpen = false }; void DoSearch(bool changeSelection) { @@ -327,7 +327,7 @@ namespace ICSharpCode.AvalonEdit.Search if (searchTextBox != null) { var error = Validation.GetErrors(searchTextBox).FirstOrDefault(); if (error != null) { - messageView.Content = Localization.ErrorText + error.ErrorContent; + messageView.Content = Localization.ErrorText + " " + error.ErrorContent; messageView.PlacementTarget = searchTextBox; messageView.IsOpen = true; }