首页 > 解决方案 > 为什么要本地化字符串?

问题描述

我刚刚下载了 ReSharper,因为我的许多同事多年来一直在奉承它。我正在浏览我的一个程序,我发现了一些扩展程序提出的建议,有些有用,有些没有。然而,一个建议确实让我感到困惑。最初,我有这个简单的代码:

foreach (Device foo in MasterDataGrid.ItemsSource)
{
     Console.WriteLine("Value for {0}: {1}", foo.Name, foo.OriginalValue);
}

这工作得很好,而且我多年来一直在格式化这样的字符串,没有任何问题。但是,ReSharper 建议我使用资源而不是字符串文字。这是 ReSharper 完成后的代码。

foreach (Device foo in MasterDataGrid.ItemsSource)
{
     Console.WriteLine(Properties.Resources.MainWindow_HistoryButton_Click_Value_for__0____1_, foo.Name, foo.OriginalValue);
}

我是 C# 和一般编程的新手,所以我不知道这是可以做的事情。

这是否比我所拥有的更好?在什么情况下我会注意到两段代码之间的差异,它有多大的差异?

标签: c#resharper

解决方案


如果您要以不同的语言发布您的应用程序,这是必要的。然后翻译人员可以只本地化资源文件,您将所有字符串放在一个位置,并且翻译人员不需要知道代码中的哪些字符串文字是要翻译的,并且在翻译时不会弄乱代码。


推荐阅读