using namespace System;
using namespace System::Resources;
using namespace System::Globalization;
using namespace System::Threading;
[assembly:NeutralResourcesLanguageAttribute("de",UltimateResourceFallbackLocation::Satellite)];
public ref class Demo
{
public:
int FallbackDemo()
{
array<String^>^args = Environment::GetCommandLineArgs();
// If a specific culture is passed in through the command line, use that -- otherwise
// just use the current ui culture
String^ strCulture = L"";
if ( args->Length == 1 )
{
strCulture = args[ 0 ];
}
if ( !strCulture->Equals( L"" ) )
{
try
{
Thread::CurrentThread->CurrentUICulture = gcnew CultureInfo( strCulture );
}
catch ( ArgumentException^ e )
{
Console::WriteLine( e->Message, L"Bad command-line argument" );
}
}
else
Console::WriteLine( L"Current culture is: {0}", CultureInfo::CurrentUICulture );
ResourceManager^ rm;
try
{
rm = gcnew ResourceManager( L"MyStrings",Demo::typeid->Assembly );
NeutralResourcesLanguageAttribute^ attr = gcnew NeutralResourcesLanguageAttribute( L"de",UltimateResourceFallbackLocation::Satellite );
Console::WriteLine( L"Neutral language = {0}, Fallback location = {1}, Fallback culture = {2}", rm->GetString( L"Language" ), attr->Location, attr->CultureName );
Console::WriteLine( rm->GetString( L"MSG" ) );
}
catch ( MissingSatelliteAssemblyException^ e )
{
Console::WriteLine( e->Message, L"Unable to locate satellite Assembly" );
}
return 1;
}
};
void main()
{
Demo^ d = gcnew Demo;
d->FallbackDemo();
}