我会尝试解释最好的方法。我不是一位经验丰富的程序员。
我正在使用Visual Studio 2008和C#
我有ressources文件(resx)包含字符串和语言中的等价物。例如,我有: English.resx French.resx 使用以下条目:
<data name="FileError" xml:space="preserve">
<value>There is a problem with the file : </value>
</data>
和
<data name="FileError" xml:space="preserve">
<value>Il y a un probleme avec le fichier : </value>
</data>
然后我有以下课程:
static class Language
{
public static string FileError;
Language(string setLanguage)
{
switch (setLanguage)
{
case "ENGLISH":
FileError = English.FileError;
break;
case "FRENCH":
FileError = French.FileError;
break;
default:
break;
}
}
}
所有这些让我可以用以下方式编码:
Language currentLanguage = Language((new ServiceConfiguration()).LanguageString)
...
try
{
File.AppendAllText("Writing...");
}
catch (Exception fileError)
{
Console.Write(currentLanguage.FileError + fileError.Message);
}
这里看起来并不多,因为只有一条消息,但有没有更好的方法可以做到这一点?它似乎不是太动态,看起来每次我想要添加一个字符串,我将不得不重新编码到多个地方,请建议更好的方法来做到这一点。
谢谢。
答案 0 :(得分:2)
.NET具有内置的本地化功能,因此无需像在这里一样重新发明轮子。请查看以下链接以获取更多信息: