c# - 为什么要本地化字符串?
问题描述
我刚刚下载了 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++ - 无法使用 QVariantList 填充 ComboBox 模型
- node.js - 如何在使用 axios 的反应应用程序中显示 src 文件夹中的图像
- vba - 拆分表单为其每个部分创建一个单独的集合
- arrays - 最简单的字符串数组c程序上的分段错误(核心转储)
- r - 如何合并两个数据框并根据巧合填充不同的选项
- php - 在脚本中设置系统日期?
- visual-studio-code - 保存时有没有办法更改默认文件名?
- spring - 弹簧千分尺执行器 StatsD 标签定义
- python - 从作为异步任务运行的函数中获取订单值
- c# - 无法创建“GameContext”类型的对象