gpt4 book ai didi

.net - .NET 中的资源文件、string.Format 和占位符

转载 作者:行者123 更新时间:2023-12-04 08:08:50 25 4
gpt4 key购买 nike

据我所知,使用 .NET 中的资源文件处理本地化字符串中的动态数据的最佳方法是将本地化字符串放在 resources.resx 文件中,并在其中包含一个占位符:Lorem {0} ipsum。在您的代码中,以这种方式处理它:string.Format(Resources.My_Localized_Key, myValue); .

我的担忧如下:

1/如何确保占位符将被实际值替换?例如,您团队中的新开发人员可能需要在他正在编写的一些新代码中使用此本地化字符串,但不知道他必须为其提供一些数据。也没有什么数据。

2/如果稍后,由于某些原因,本地化字符串更改为 Lorem {0} ipsum {1}。我们如何确保在整个应用程序中对该字符串的所有使用都会更新?

有没有更好的方法来处理这个?例如,一种以强类型方式处理这些占位符的方法,而无需使用反射或解析本地化字符串的内容......?还是只是这样做的方法?

最佳答案

实际上,对于问题 1,开发人员不太可能在不检查其内容的情况下重用字符串,如果这样做,他们可能会在运行代码时注意到占位符(或 QA 会)。所以这不太可能,也不会是世界末日。

对于问题 2,您可以在 Visual Studio 中使用“查找用法”作为它为资源创建的自动生成属性,以查找它使用的每个位置,并确保在使用它的任何地方都有正确数量(和顺序)的参数。但一般来说,资源字符串无论如何都不会被重用(实际上不建议在不同的上下文中重用可本地化的文本,因为翻译可能需要在不同的上下文中更改,例如由于语言规则或空间限制)。

我会看到的另一个风险是翻译人员可能会忽略或弄乱占位符,这将更难检测。但这只是本地化错误的一个例子......在本地化应用程序时还有很多其他事情可能会出错,而且通常没有可靠的方法来防范它们。

关于.net - .NET 中的资源文件、string.Format 和占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9786231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com