2010-06-02 51 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”在语言上有很大差异,您最好单独翻译它们。