У меня есть простое консольное приложение (.NET Framework 4.6.1), в котором я пытаюсь использовать несколько файлов resx путем изменения cultureinfo.Вот мой код:
`static void Main( string[] args )
{
//default
Console.WriteLine( Resource.Hello );
Thread.CurrentThread.CurrentCulture = new CultureInfo( "fr-FR" );
Thread.CurrentThread.CurrentUICulture = new CultureInfo( "fr-FR" );
//french
Console.WriteLine( Resource.Hello );
Thread.CurrentThread.CurrentCulture = new CultureInfo( "hu-HU" );
Thread.CurrentThread.CurrentUICulture = new CultureInfo( "hu-HU" );
//hungarian
Console.WriteLine( Resource.Hello );
string res = Resource.ResourceManager.GetString( "Hello", CultureInfo.GetCultureInfo( "hu-HU" ) );
Console.WriteLine( res );
Console.ReadKey();
}`
Моя культура по умолчанию - en-US.У меня есть одна строка в файлах resx с ключом "Hello".По какой-то причине с fr-FR cultureinfo он работает нормально, но другие получили запасное значение.
Связанная часть файла csproj проекта:
<ItemGroup>
<EmbeddedResource Include="Properties\Resource.hu-HU.resx">
<DependentUpon>Resource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resource.fr-FR.resx">
<DependentUpon>Resource.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resource.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resource.Designer.cs</LastGenOutput>
</ItemGroup>
Я добавил все файлы resx вручную в свой проект в разделе «Свойства».Только по умолчанию есть designer.cs
Есть идеи?Спасибо за продвижение!