【问题标题】:Why should I localize strings? [duplicate]为什么要本地化字符串? [复制]
【发布时间】:2018-07-20 19:25:45
【问题描述】:

我刚刚下载了 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# 和一般编程的新手,所以我不知道这是一件可以做的事情。

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

【问题讨论】:

  • 字符串插值是这种情况的好方法: Console.WriteLine($"Value for {foo.Name}: {foo.OriginalValue}");
  • 从现在开始我肯定会使用字符串插值。更具可读性
  • 顺便说一句,您可以特别关闭该建议,以免再次打扰您。

标签: c# resharper


【解决方案1】:

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

【讨论】:

  • 所以如果这个项目只是我在胡闹,并且永远不会发布,我可以忽略这个建议吗?
  • 绝对是的。
  • 太棒了!感谢您的及时回复!
猜你喜欢
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 2012-06-07
  • 2016-03-11
相关资源
最近更新 更多