Skip to content

Commit 4ddf2f3

Browse files
authored
Merge pull request #1972 from Hosch250/Localization
Set UI thread culture before loading the Ninject module to correctly set window caption language.
2 parents b364283 + 2e78637 commit 4ddf2f3

13 files changed

+298
-76
lines changed

RetailCoder.VBE/Extension.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@
66
using Rubberduck.UI;
77
using System;
88
using System.ComponentModel;
9+
using System.Globalization;
910
using System.IO;
1011
using System.Reflection;
1112
using System.Runtime.InteropServices;
1213
using System.Windows.Forms;
14+
using System.Windows.Threading;
1315
using Ninject.Extensions.Interception;
1416
using NLog;
17+
using Rubberduck.Settings;
18+
using Rubberduck.SettingsProvider;
1519

1620
namespace Rubberduck
1721
{
@@ -46,6 +50,24 @@ public void OnConnection(object Application, ext_ConnectMode ConnectMode, object
4650
{
4751
var currentDomain = AppDomain.CurrentDomain;
4852
currentDomain.AssemblyResolve += LoadFromSameFolder;
53+
54+
var config = new XmlPersistanceService<GeneralSettings>
55+
{
56+
FilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Rubberduck",
57+
"rubberduck.config")
58+
};
59+
60+
var settings = config.Load(null);
61+
if (settings != null)
62+
{
63+
try
64+
{
65+
var cultureInfo = CultureInfo.GetCultureInfo(settings.Language.Code);
66+
Dispatcher.CurrentDispatcher.Thread.CurrentUICulture = cultureInfo;
67+
}
68+
catch (CultureNotFoundException) { }
69+
}
70+
4971
_kernel.Load(new RubberduckModule((VBE)Application, (AddIn)AddInInst));
5072
_app = _kernel.Get<App>();
5173
_app.Startup();

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,11 @@
850850
<DependentUpon>SettingsView.xaml</DependentUpon>
851851
</Compile>
852852
<Compile Include="UI\SourceControl\SettingsViewViewModel.cs" />
853+
<Compile Include="UI\SourceControl\SourceControl.Designer.cs">
854+
<AutoGen>True</AutoGen>
855+
<DesignTime>True</DesignTime>
856+
<DependentUpon>SourceControl.resx</DependentUpon>
857+
</Compile>
853858
<Compile Include="UI\SourceControl\SourceControlPanel.cs">
854859
<SubType>UserControl</SubType>
855860
</Compile>
@@ -1066,6 +1071,10 @@
10661071
<SubType>Designer</SubType>
10671072
<LastGenOutput>RubberduckUI.Designer.cs</LastGenOutput>
10681073
</EmbeddedResource>
1074+
<EmbeddedResource Include="UI\SourceControl\SourceControl.resx">
1075+
<Generator>ResXFileCodeGenerator</Generator>
1076+
<LastGenOutput>SourceControl.Designer.cs</LastGenOutput>
1077+
</EmbeddedResource>
10691078
<EmbeddedResource Include="UI\SourceControl\SourceControlPanel.resx">
10701079
<DependentUpon>SourceControlPanel.cs</DependentUpon>
10711080
</EmbeddedResource>

RetailCoder.VBE/UI/Command/MenuItems/AddTestMethodCommandMenuItem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public AddTestMethodCommandMenuItem(CommandBase command)
1212
{
1313
}
1414

15-
public override string Key { get { return "TestExplorer_AddTestMethod"; } }
15+
public override string Key { get { return "TestExplorerMenu_AddTestMethod"; } }
1616
public override int DisplayOrder { get { return (int)UnitTestingMenuItemDisplayOrder.AddTestMethod; } }
1717

1818
public override Image Image { get { return Resources.flask; } }

RetailCoder.VBE/UI/Command/MenuItems/AddTestMethodExpectedErrorCommandMenuItem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public AddTestMethodExpectedErrorCommandMenuItem(CommandBase command)
1212
{
1313
}
1414

15-
public override string Key { get { return "TestExplorer_AddExpectedErrorTestMethod"; } }
15+
public override string Key { get { return "TestExplorerMenu_AddExpectedErrorTestMethod"; } }
1616
public override int DisplayOrder { get { return (int)UnitTestingMenuItemDisplayOrder.AddTestMethodExpectedError; } }
1717

1818
public override Image Image { get { return Resources.flask_exclamation; } }

RetailCoder.VBE/UI/Command/MenuItems/AddTestModuleCommandMenuItem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public AddTestModuleCommandMenuItem(CommandBase command)
1010
{
1111
}
1212

13-
public override string Key { get { return "TestExplorer_AddTestModule"; } }
13+
public override string Key { get { return "TestExplorerMenu_AddTestModule"; } }
1414
public override int DisplayOrder { get { return (int)UnitTestingMenuItemDisplayOrder.AddTestModule; } }
1515
public override bool BeginGroup { get { return true; } }
1616
}

RetailCoder.VBE/UI/Command/MenuItems/ParentMenus/ParentMenuItemBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ protected ParentMenuItemBase(string key, IEnumerable<IMenuItem> items, int? befo
3131

3232
public string Key { get { return Item == null ? null : Item.Tag; } }
3333

34-
public Func<string> Caption { get { return () => Key == null ? null : RubberduckUI.ResourceManager.GetString(Key, UI.Settings.Settings.Culture); } }
34+
public Func<string> Caption { get { return () => Key == null ? null : RubberduckUI.ResourceManager.GetString(Key, Settings.Settings.Culture); } }
3535

3636
public virtual bool BeginGroup { get { return false; } }
3737
public virtual int DisplayOrder { get { return default(int); } }

RetailCoder.VBE/UI/RubberduckUI.Designer.cs

Lines changed: 33 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

RetailCoder.VBE/UI/RubberduckUI.resx

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -982,19 +982,19 @@ Are you sure you want to proceed with this rename?</value>
982982
<value>Find symbol</value>
983983
</data>
984984
<data name="IndentCurrentModule" xml:space="preserve">
985-
<value>Current module</value>
985+
<value>Current &amp;Module</value>
986986
</data>
987987
<data name="IndentCurrentProcedure" xml:space="preserve">
988-
<value>Current procedure</value>
988+
<value>Current &amp;Procedure</value>
989989
</data>
990990
<data name="IndentCurrentProject" xml:space="preserve">
991991
<value>Entire project</value>
992992
</data>
993993
<data name="SmartIndenterMenu" xml:space="preserve">
994-
<value>Indent</value>
994+
<value>In&amp;dent</value>
995995
</data>
996996
<data name="RefactorMenu_IntroduceParameter" xml:space="preserve">
997-
<value>&amp;Introduce Parameter</value>
997+
<value>Introduce &amp;Parameter</value>
998998
</data>
999999
<data name="RefactorMenu_IntroduceField" xml:space="preserve">
10001000
<value>Introduce &amp;Field</value>
@@ -1058,7 +1058,7 @@ Are you sure you want to proceed with this rename?</value>
10581058
<value>E&amp;xtract Interface</value>
10591059
</data>
10601060
<data name="RefactorMenu_ImplementInterface" xml:space="preserve">
1061-
<value>Implement Interface</value>
1061+
<value>&amp;Implement Interface</value>
10621062
</data>
10631063
<data name="ImplementInterface_Caption" xml:space="preserve">
10641064
<value>Rubberduck - Implement Interface</value>
@@ -1526,13 +1526,6 @@ All our stargazers, likers &amp; followers, for the warm fuzzies
15261526
<data name="CodeExplorer_Commit" xml:space="preserve">
15271527
<value>Commit...</value>
15281528
</data>
1529-
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
1530-
<data name="cross_circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
1531-
<value>..\Resources\cross-circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
1532-
</data>
1533-
<data name="information" type="System.Resources.ResXFileRef, System.Windows.Forms">
1534-
<value>..\Resources\information.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
1535-
</data>
15361529
<data name="SourceControl_CommitStatus" xml:space="preserve">
15371530
<value>Commit status.</value>
15381531
</data>
@@ -1558,7 +1551,7 @@ All our stargazers, likers &amp; followers, for the warm fuzzies
15581551
<value>Source Control - Undo</value>
15591552
</data>
15601553
<data name="NoIndentAnnotation" xml:space="preserve">
1561-
<value>Add '@NoIndent</value>
1554+
<value>&amp;Add '@NoIndent</value>
15621555
</data>
15631556
<data name="CodeExplorer_Sort" xml:space="preserve">
15641557
<value>Sort</value>
@@ -1728,4 +1721,13 @@ All our stargazers, likers &amp; followers, for the warm fuzzies
17281721
<data name="RubberduckFatalError" xml:space="preserve">
17291722
<value>Rubberduck encountered an error. Please save your work and restart the host program, then upload your log file to our GitHub page.</value>
17301723
</data>
1724+
<data name="TestExplorerMenu_AddExpectedErrorTestMethod" xml:space="preserve">
1725+
<value>Test Method (&amp;Expected Error)</value>
1726+
</data>
1727+
<data name="TestExplorerMenu_AddTestMethod" xml:space="preserve">
1728+
<value>Test &amp;Method</value>
1729+
</data>
1730+
<data name="TestExplorerMenu_AddTestModule" xml:space="preserve">
1731+
<value>Test M&amp;odule</value>
1732+
</data>
17311733
</root>

RetailCoder.VBE/UI/SourceControl/SourceControl.Designer.cs

Lines changed: 83 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)