我已将一个字符串添加到资源文件中。我的应用程序将被本地化。
但是,添加带有占位符的字符串({0}
)进入资源是个好主意吗?
如果由非技术人员进行本地化怎么办?有没有办法让他们在不知不觉中把事情搞砸?
如果这不是一个好主意,我该怎么办?
这是一个简单的例子。我将使用 WPF 资源字典。
Example:
// Resource1.resx
// Name | Value
//---------------------------------------------------------------
// RELATIONSHIP_STATUS_MSG | {0} is in relationship with {1}.
//
class Program
{
static void Main(string[] args)
{
string msg = string.Format(Resource1.RELATIONSHIP_STATUS_MSG,
"Romeo", "Juliot");
Console.WriteLine(msg);
}
}
嗯,我相信这是一个好主意,因为这是渲染参数化和本地化字符串的一种简单快捷的方法。
顺便说一句,正如您在问题中所说,非技术人员可能会破坏您的本地化字符串,因为他们不明白什么是“{0}”。我有两种“方法”来解决这个问题
请注意,非技术人员维护本地化字符串,他们不能关心括号中的文本。
使用命名占位符:“{some-identifier}”并使用someTextResource.Replace("{some-identifier}", someTextVar)
.
关于第二个,您可以实现一些接受IDictionary<TKey, TValue>
替换关系的实例,其中键是要替换的标识符,值是要替换标识符的文本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)