【问题标题】:How do you fill in a resource string at run-time?如何在运行时填写资源字符串?
【发布时间】:2010-08-01 20:05:00
【问题描述】:
我有一个想要本地化的应用程序。但是,要本地化的字符串偶尔会包含我想在运行时提供的部分,例如操作链接。
例如,我有一个这样的字符串:Please <a href="/help">click here</a> for help. 我不能将它拆分为两个资源,因为在不同的语言中它会位于不同的位置。
有什么方法可以做到这一点,还是我应该坚持在资源本身中硬编码到控制器/动作的链接?
【问题讨论】:
标签:
c#
asp.net-mvc
localization
resources
resx
【解决方案1】:
你应该这样修改你的字符串:
string.Format("Please {0]click here{1} for help", "<a href="/help">","</a>")
现在,第一个字符串 "Please {0]click here{1} for help" 可以轻松翻译/本地化,即使您的文本顺序发生变化:
"Für Hilfe klicken Sie bitte {0}hier{1}."
【解决方案2】:
我最终采用的方法是创建这样的资源字符串:
"Please {0} for help."
然后在运行时使用 String.Format 和我已经定义的 "Click Here" 的资源填充。