C# 全球化与句子中的链接

C# 全球化与句子中的链接,c#,asp.net,localization,globalization,hyperlink,C#,Asp.net,Localization,Globalization,Hyperlink,我正在以C#为后端对asp.net应用程序进行全球化/本地化。我们正在将字符串提取到资源文件的过程中,遇到了一个问题。我们试图把句子放在一起,以便它们可以翻译,但这在链接中是不可能的。例如: <%= Strings.BeginningOfSentence %> <asp:HyperLink id="exampleLink" runat="server"><%= Strings.MiddleOfSentence %></asp:HyperLink>

我正在以C#为后端对asp.net应用程序进行全球化/本地化。我们正在将字符串提取到资源文件的过程中,遇到了一个问题。我们试图把句子放在一起,以便它们可以翻译,但这在链接中是不可能的。例如:

<%= Strings.BeginningOfSentence %>
<asp:HyperLink id="exampleLink" runat="server"><%= Strings.MiddleOfSentence %></asp:HyperLink>
<%= Strings.EndOfSentence %>


字符串是资源文件。如果这是链接的普通html,我可以使用String.Format并将句子放在一起,在html中添加两个参数,但这会破坏它。你有什么想法可以让它工作吗?

你不必为此使用超链接控件,是吗?如果需要动态链接,则可以将锚定标记存储在参数化字符串中,并使用string.Format添加必要的属性值,就像您建议的那样。大概是这样的:

代码:

myLiteral.Text=string.Format(“{0}{3}”,Strings.beginingofcentence,myUrl,Strings.middleofcentence,Strings.endofcentence);
ASPX:


您不必为此使用超链接控件,是吗?如果需要动态链接,则可以将锚定标记存储在参数化字符串中,并使用string.Format添加必要的属性值,就像您建议的那样。大概是这样的:

代码:

myLiteral.Text=string.Format(“{0}{3}”,Strings.beginingofcentence,myUrl,Strings.middleofcentence,Strings.endofcentence);
ASPX:


我发现参数化字符串极大地简化了包含动态内容的翻译。例如,在翻译后的字符串中可以有占位符,链接html可以插入其中。不过,这可能会排除使用服务器端超链接控件的可能性。示例字符串:

中文:

"The <a href=\"http://images.google.se/images?q=house&tab=wi\">house</a> in which we lived"

然后您只需要将生成的字符串插入页面。

我发现参数化字符串大大简化了与动态内容混合的翻译。例如,在翻译后的字符串中可以有占位符,链接html可以插入其中。不过,这可能会排除使用服务器端超链接控件的可能性。示例字符串:

中文:

"The <a href=\"http://images.google.se/images?q=house&tab=wi\">house</a> in which we lived"
然后您只需要将结果字符串插入页面中

"The <a href=\"http://images.google.se/images?q=house&tab=wi\">house</a> in which we lived"
"<a href=\"http://images.google.se/images?q=hus&tab=wi\">huset</a> som vi bodde i"
string googleSearchTemplate = "<a href=\"http://images.google.se/images?q={0}&tab=wi\">{1}</a>"
string.Format("The {0} in which we lived", string.Format(googleSearchTemplate, "house", "house"));