2010-06-02 55 views
2

試圖本地化ASP.NET標籤中的文本...希望在本地化文本之後添加':'。我可以將「:」添加到資源文件中的本地化文本中,但這看起來很愚蠢......應該有一個簡單的方法來做到這一點。在ASP.NET本地化標籤中連接文本

<asp:Label id="RoleTypeLabel" runat="server" Text='<%$ Resources: GS3, RoleTypeLabel %>:' AssociatedControlID="RoleTypeDropDown"></asp:Label>

(注意「:」在文本=結束「...」)

當然,這不工作...而且也沒有任何我能想到的將':'連接到本地化文本的末尾。

任何人都知道該怎麼做?

TIA, 詹姆斯

+0

您是否嘗試連接冒號的轉義序列,即;? – DOK 2010-06-02 20:45:17

+0

我得試試看,我很好奇,看看它是否有效 – 2010-06-03 18:54:36

+0

沒有骰子......只要我在<%$ ... %>之後添加任何東西,那麼這個頁面就會顯示<%$ ... %>。但是,感謝這個主意! – 2010-06-04 17:50:55

回答

3

我一直把標籤外結腸。

<asp:Label ID="RoleTypeLabel" runat="server" Text="<%$ Resources: GS3, 
RoleTypeLabel %> />: 
+0

杜!當然!我把它放在開始和結束asp:Label之間,它忽略了它。 當有一個簡單的解決方案時,思考過於複雜。謝謝! – 2010-06-03 15:42:44

+0

嗯,我碰到的唯一問題是控件上的填充...我無法在標籤上留下任何右側填充,或者將「:」從文本中推開。但是我需要在冒號後填充一定數量的填充。嗯,我得考慮一下。 – 2010-06-03 19:35:21

+0

正確 - 我通常在整個標籤和冒號周圍使用以應用所需的任何樣式。 – 2010-06-03 19:53:13

1

爲什麼不把':'放到資源文件中?

+0

主要原因是您可能會在不需要冒號的情況下(如列標題)重新使用該術語。 – 2010-06-03 16:45:11

1

如果您的標籤位置正確,您也可以使用CSS追加冒號。

label:after 
{ 
    content: ':'; 
} 
+0

這是一個很酷的方法......雖然我可能會將一個類分配給標籤,所以我只能將它附加到需要''的標籤上。: – 2010-08-17 17:40:39

+0

也沒關係。魔術出現在':after'僞元素中。 – 2010-08-17 17:46:20

0

剛回到類似的情況,我回去和本地化我們的應用程序之一。結束了使用標籤內的文字控制:

<asp:Label AssociatedControlID="txt" CssClass="class" ID="lbl" runat="server"> 
    * <asp:Literal runat="server" Text="<%$ Resources:Words, labelText %>" />: 
</asp:Label> 

我們使用一些CSS右對齊表單標籤具有固定寬度,使標籤以外的任何文本實際上打破了我們的網頁。接受的答案是最直接的,但可能不適用於所有情況。

0

您應該將冒號作爲您要翻譯的字符串的一部分。請參閱#3 in this 12 Commandments of Software Localization article,其中解釋了常常需要翻譯標點符號。例如,法語在冒號前加上一個空格,阿米尼亞語或希臘語等語言可能在冒號的地方使用不同的符號。

至於reusing terms,考慮到「Due:」和「Due」在語言上有很大差異,您最好單獨翻譯它們。