我正在致力于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零售商”,“点击此处”等),因为单词顺序可能因其他语言而异。
我已经看到了有关如何执行此操作的若干建议,但他们都假设带有嵌入式链接的文本是在代码中分配的,而不是在标记中分配的,并且它不是服务器控件。
有关如何成功本地化的建议吗?
答案 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>