2010-03-02 31 views
1

我工作的國際化和本地化的ASP.NET應用程序,我運行到哪裏字符串文字混合案件的問題與標記。像這個例子:ASP.NET本地化...和鏈接是服務器控件

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

對於大多數字符串文字我使用Localize控制。我可以將其嵌入到本地化控件,標籤和所有內容中,但問題是鏈接不再是服務器控件。 (它的ID在頁面上被引用。)

我不能真正地分割字符串(「Acme地毯零售商」,「點擊此處」等),因爲字順序可能不同於另一種語言。

我已經看到了如何做到這一點的幾個建議,但他們都認爲與嵌入式鏈接的文本分配代碼,而不是在標記,這不是一個服務器控件。

有關如何成功本地化的任何建議?

+0

爲什麼你不能在代碼中分配這個? – 2010-03-02 19:08:06

+0

即使假設我可以,你會用什麼語法? – 2010-03-02 19:20:15

回答

0

如果詞序可以在不同的語言不同,你別無選擇,只能本地化整個文本(包括標籤)的RESX內。

但是,當然,如果這是太麻煩,您可以更改應用程序,使文字更有條理:

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

這是我在做什麼,但我不知道是否有辦法做到這一點,同時保留結構原樣。 – 2010-03-03 00:19:13

1

你就不能只是:

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

然後我將資源mydata定義爲: 「{0}點擊此處{1}登錄到該網站。」

相關問題