我有一个用于转换文件的控制台MEF应用程序。有一些类用于记录警告和错误,每个类都在单独的程序集中。每一条我想记录的信息都会传送到LoggerProxy类,并从它传送到所有相关的记录器。我使用强类型资源名称,例如Message.NoFilesFound。这是我的问题 - 我的字符串必须是英文或德文,但文件所有者的信息必须用他的语言。这意味着Message.NoFilesFound在控制台和日志文件中应该是德语,但例如意大利人在邮件为客户。同时对多种语言进行本地化
如何为系统设置任务?
现在我有:
class Main()
{
Message.Culture = new CultureInfo("it");
LoggerProxy.Write(Destination.Console|Destination.Customer, Message.NoFilesFound);
}
class LoggerProxy
{
[ImportMany]
Lazy<ILogger,ILoggerMetadata>[] Loggers { get; set; }
public void Write(Destination dest, string msg)
{
foreach (var logger in Loggers)
if ((logger.Metadata.Destination & dest) != 0)
logger.Value.Write(msg);
}
}
我想在LoggerProxy.Write的文化变革,但参数已经是本地化的字符串。
Windows应用程序,网络应用程序? – balexandre 2011-03-30 12:22:34
如果参数已经本地化,那么我不知道你的期望。你可以祈祷函数'relocalize'来,但请参阅http://en.wikipedia.org/wiki/Entropy。请告诉我们它是什么_exactly_你期望/要求 – sehe 2011-03-30 12:23:04
balexandre:控制台MEF应用程序 – Gabriel 2011-03-30 14:08:24