【发布时间】:2012-11-01 21:29:24
【问题描述】:
我即将本地化一个以 webforms (asp.net) 编码的 web 应用程序,我想知道多部分可本地化内容的最佳方法。为了说明问题:当您翻译类似“我的名字是 Jonhy,我 12 岁”这样的句子时,如果您假设姓名和年龄是动态检索的,则可能需要更改姓名的位置和翻译中的年龄以使其在目标语言中的语法正确。我在想我们可以使用 string.Format 并将 {0} 和 {1} 放在资源文件中,让翻译器处理。但是,我想知道是否有更好的方法来实现这一目标?我敢肯定这经常出现。
【问题讨论】:
-
这是
String.Format以它的方式工作的原因之一,它还允许您拥有不包含或以不同格式多次包含的参数...On Wed the 7th day of januaryvsJan 7等...两者都有一个日期作为参数,但可以重新措辞以允许本地化(好吧,日期是一个不好的例子,因为有很好的格式化程序,但你明白我的意思) -
是的,但这意味着我将资源文件发送给翻译人员,如下所示:我的名字是 {0},我 {1} 岁。此外,我可能需要小心在翻译中使用大括号(即使这不太可能)。
-
您需要转义(双)花括号...
It's {really} good...It's {{really}} good是的,这正是它们的样子,除非您还需要提供如果句子中没有明确暗示该值,则提供一些示例值。我不明白你怎么能避免这种情况?必须有一个 some 类型的占位符。其他人可能会给你一个更好的答案,但恐怕我不知道。 -
我的意思是在翻译方面,他或她需要了解这些额外的信息。我想这是无法避免的,至少在从头开始制作一些东西时需要一些巨大的开销,如果这是解决方案,那么我宁愿坚持我们所拥有的。
标签: asp.net localization