我正在国际化ASP.Net MVC应用程序,但链接文本的句子给了我暂停.以下列为例:
>英文:“请login继续.”
>Português:“Entre por favor para continuar”.
请注意,由于“登录”是超链接的,所以我必须让翻译器表示当文本被本地化时,相应的单词或短语应该被超链接.恩特雷里奥斯.
我不能第一个有这个问题,那么你看到或使用的最好的策略解决方案是什么?
有没有一个标准来表示这样的东西为翻译(和标准的方式使用翻译的结果)…或者我走错了路径,期望我的内容和演示文稿信息如此紧密耦合(虽然我可以’在这种情况下,我们可以想办法去除联轴器).
当前实施:
我目前正在为Views和an extension method on HtmlHelper使用本地资源文件来获取本地化的sting:
<%= Html.Resource("LoginMessage")%>
更新:
请参阅Keith’s answer.
我发现它最有帮助,但系统auto selected另一个.
解决方法
我有一个包含我的主要文本的全球资源文件,名为Strings.resx(Strings.NL-nl.resx等).旁边我有我的全球文件包含我的actionlink的所有本地化.那就是:ActionLinks.resx和本地人.
现在我做的是,在我的Strings.resx我有一些像:
Strings.resx
Please {0} to continue
本地语言Strings.NL-nl.resx
{0} om verder te gaan
现在的诀窍就是做一些事情:
<%= Html.Encode(string.Format(Resources.Strings.ControllernameViewnameKey,Html.ActionLink(Resources.ActionLinks.login,"Account","logon")))
如果您的链接中需要多个变量,则可以给出一组对象
string.Format()
keynaming是我自己的约定,以了解主文本的使用位置(什么页面).由于我的主旨非常具体.当然,钥匙可以自己制作.
有关我如何做的更多信息,您可以在自己的问题上查看我的答案:
here
编辑