具有嵌入式链接的文本的ASP.NET本地化......并且链接是服务器控件

时间:2010-03-02 18:54:47

标签: asp.net localization internationalization

我正在致力于ASP.NET应用程序的国际化和本地化,而且我遇到了字符串文字与标记混合的问题。像这个例子:

Acme Carpet Retailers <a href="#" class="link" id="ssoLoginUrl" 
    runat="server">click here</a> to log into the site.

对于大多数字符串文字我使用Localize控件。我可以将它嵌入Localize控件,标签和所有,但问题是链接不再是服务器控件。 (它在页面上通过其ID引用。)

我无法真正拆分字符串(“Acme Carpet零售商”,“点击此处”等),因为单词顺序可能因其他语言而异。

我已经看到了有关如何执行此操作的若干建议,但他们都假设带有嵌入式链接的文本是在代码中分配的,而不是在标记中分配的,并且它不是服务器控件。

有关如何成功本地化的建议吗?

2 个答案:

答案 0 :(得分:1)

你不能这样做:

<%= String.Format(Resources.MyResource.mydata, 
"<a href=""#"" class=""link"" id=""ssoLoginUrl"" runat=""server"">",
"</a>"
) %>

然后我将资源mydata定义为: “{0}点击此处{1}登录该网站。”

答案 1 :(得分:0)

如果单词顺序在不同的语言中可能不同,则您别无选择,只能在resx中本地化整个文本(包含标签)。

但是,当然,如果这太麻烦了,你可以改变应用程序以使文本更有条理:

Acme Carpet Retailers <a href="#" class="link" id="ssoLoginUrl" 
runat="server">(Log in here)</a>