我有一個用於轉換文件的控制檯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