Skip to content

Commit eafa77e

Browse files
committed
[MRTCore] Add global PrimaryLanguageOverride switch
1 parent b82d1ed commit eafa77e

File tree

6 files changed

+76
-3
lines changed

6 files changed

+76
-3
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Copyright (c) Microsoft Corporation and Contributors.
2+
// Licensed under the MIT License.
3+
4+
#include "pch.h"
5+
#include "ApplicationLanguages.h"
6+
#include "ApplicationLanguages.g.cpp"
7+
8+
namespace winrt::Microsoft::Windows::ApplicationModel::Resources::implementation
9+
{
10+
hstring ApplicationLanguages::m_language;
11+
12+
void ApplicationLanguages::PrimaryLanguageOverride(hstring language)
13+
{
14+
m_language = language;
15+
}
16+
17+
hstring ApplicationLanguages::PrimaryLanguageOverride()
18+
{
19+
return m_language;
20+
}
21+
22+
} // namespace winrt::Microsoft::Windows::ApplicationModel::Resources::implementation
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright (c) Microsoft Corporation and Contributors.
2+
// Licensed under the MIT License.
3+
4+
#pragma once
5+
#include "ApplicationLanguages.g.h"
6+
7+
namespace winrt::Microsoft::Windows::ApplicationModel::Resources::implementation
8+
{
9+
10+
struct ApplicationLanguages
11+
{
12+
ApplicationLanguages() = delete;
13+
14+
static void PrimaryLanguageOverride(hstring language);
15+
static hstring PrimaryLanguageOverride();
16+
17+
private:
18+
static hstring m_language;
19+
};
20+
21+
} // namespace winrt::Microsoft::Windows::ApplicationModel::Resources::implementation
22+
23+
namespace winrt::Microsoft::Windows::ApplicationModel::Resources::factory_implementation
24+
{
25+
struct ApplicationLanguages : ApplicationLanguagesT<ApplicationLanguages, implementation::ApplicationLanguages>
26+
{
27+
};
28+
}
29+
// namespace winrt::Microsoft::Windows::ApplicationModel::Resources::factory_implementation

dev/MRTCore/mrt/Microsoft.Windows.ApplicationModel.Resources/src/Microsoft.Windows.ApplicationModel.Resources.idl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,4 +113,11 @@ namespace Microsoft.Windows.ApplicationModel.Resources
113113
static String TargetSize { get; };
114114
static String Theme { get; };
115115
}
116-
} // namespace Microsoft.Windows.ApplicationModel.Resources
116+
117+
[contract(MrtCoreContract, 1)]
118+
runtimeclass ApplicationLanguages
119+
{
120+
static String PrimaryLanguageOverride;
121+
}
122+
123+
} // namespace Microsoft.Windows.ApplicationModel. Resources

dev/MRTCore/mrt/Microsoft.Windows.ApplicationModel.Resources/src/Microsoft.Windows.ApplicationModel.Resources.vcxproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
</ClCompile>
110110
</ItemDefinitionGroup>
111111
<ItemGroup>
112+
<ClInclude Include="ApplicationLanguages.h" />
112113
<ClInclude Include="Helper.h" />
113114
<ClInclude Include="KnownResourceQualifierName.h" />
114115
<ClInclude Include="pch.h" />
@@ -120,6 +121,7 @@
120121
<ClInclude Include="ResourceNotFoundEventArgs.h" />
121122
</ItemGroup>
122123
<ItemGroup>
124+
<ClCompile Include="ApplicationLanguages.cpp" />
123125
<ClCompile Include="Helper.cpp" />
124126
<ClCompile Include="KnownResourceQualifierName.cpp" />
125127
<ClCompile Include="pch.cpp">
@@ -140,7 +142,7 @@
140142
<None Include="Microsoft.Windows.ApplicationModel.Resources.def" />
141143
</ItemGroup>
142144
<ItemGroup>
143-
<ResourceCompile Include="Microsoft.Windows.ApplicationModel.Resources.rc">
145+
<ResourceCompile Include="Microsoft.Windows.ApplicationModel.Resources.rc">
144146
<AdditionalIncludeDirectories>$(RepoRoot);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
145147
</ResourceCompile>
146148
</ItemGroup>
@@ -186,4 +188,4 @@
186188
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props'))" />
187189
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets'))" />
188190
</Target>
189-
</Project>
191+
</Project>

dev/MRTCore/mrt/Microsoft.Windows.ApplicationModel.Resources/src/Microsoft.Windows.ApplicationModel.Resources.vcxproj.filters

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
<ClCompile Include="KnownResourceQualifierName.cpp">
3030
<Filter>Source Files</Filter>
3131
</ClCompile>
32+
<ClCompile Include="ApplicationLanguages.cpp">
33+
<Filter>Source Files</Filter>
34+
</ClCompile>
3235
</ItemGroup>
3336
<ItemGroup>
3437
<ClInclude Include="pch.h">
@@ -58,6 +61,9 @@
5861
<ClInclude Include="KnownResourceQualifierName.h">
5962
<Filter>Header Files</Filter>
6063
</ClInclude>
64+
<ClInclude Include="ApplicationLanguages.h">
65+
<Filter>Header Files</Filter>
66+
</ClInclude>
6167
</ItemGroup>
6268
<ItemGroup>
6369
<Midl Include="Microsoft.Windows.ApplicationModel.Resources.idl" />
@@ -75,4 +81,7 @@
7581
<UniqueIdentifier>{54696afe-f42a-494a-bc24-3fd0d4192122}</UniqueIdentifier>
7682
</Filter>
7783
</ItemGroup>
84+
<ItemGroup>
85+
<ResourceCompile Include="Microsoft.Windows.ApplicationModel.Resources.rc" />
86+
</ItemGroup>
7887
</Project>

dev/MRTCore/mrt/Microsoft.Windows.ApplicationModel.Resources/src/ResourceContext.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,10 @@ void ResourceContext::Apply()
9797
winrt::check_hresult(MrmSetQualifier(m_resourceContext, eachValue.Key().c_str(), eachValue.Value().c_str()));
9898
}
9999
}
100+
if (!ApplicationLanguages::PrimaryLanguageOverride().empty())
101+
{
102+
winrt::check_hresult(MrmSetQualifier(m_resourceContext, c_languageQualifierName, ApplicationLanguages::PrimaryLanguageOverride().c_str()));
103+
}
100104
}
101105

102106
hstring ResourceContext::GetLangugageContext()

0 commit comments

Comments
 (0)