Re: ASP.NET Internationalization bug?
- From: "Juan T. Llibre" <nomailreplies@xxxxxxxxxxx>
- Date: Fri, 27 Jun 2008 12:44:55 -0400
Here's a full example which shows that the xml:lang attribute is added programmatically :
attributes.aspx:
----------------------
<%@ Page Language="C#" AutoEventWireup="True" %>
<html xmlns="http://www.w3.org/1999/xhtml" runat="server" id="Myid" >
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
Myid.Attributes.Add("xml:lang", "es");
Message.InnerHtml = "<h4>The html control attributes collection contains:</h4>";
IEnumerator keys = Myid.Attributes.Keys.GetEnumerator();
while (keys.MoveNext())
{
String key = (String)keys.Current;
Message.InnerHtml += key + "=" + Myid.Attributes[key] + "<br />";
}
}
</script>
<head id="Head1" runat="server">
<title>The html control attributes collection</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>HtmlControl Attribute Collection Example</h3>
<br />
<span id="Message" enableviewstate="false" runat="server" />
</form>
</body>
</html>
----------------
I don't think it's a bug to have to add an attribute programmatically,
because the runat="server" tag only *declares* the html control as a programmable control.
To actually program it, you must use a script.
Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
"Lee C." <no.spam@xxxxxxxxxxx> wrote in message news:e0rLaPG2IHA.4772@xxxxxxxxxxxxxxxxxxxxxxx
Thanks, Juan.
I already added similar code to a page event in my masterpage code-beside.
elHtml.Attributes.Add("xml:lang", Resources.GlobalLang.ContentAudienceLanguage)
To me, that is a temporary workaround. I still want to understand whether the "eating" of the attribute I originally
posted about is a bug, or if this is actually happening for a reason.
Cordially,
Lee
"Juan T. Llibre" <nomailreplies@xxxxxxxxxxx> wrote in message news:%23gBUqSC2IHA.4772@xxxxxxxxxxxxxxxxxxxxxxx
Hi, Lee.
re:
!> <html runat="server" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US" dir="ltr">
!> no xml:lang attribute is rendered to the browser!
!> Remove the runat="server", and, voila, the xml:lang attribute is rendered.
Try this :
<html xmlns="http://www.w3.org/1999/xhtml" runat="server" id="someID">
<script runat="server">
someID.Attributes("xml:lang") = "en-US"
</script>
Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
"Lee C." <nomail@xxxxxxxx> wrote in message news:O%23KsAQA2IHA.4572@xxxxxxxxxxxxxxxxxxxxxxx
I think I have discovered a bug in ASP.NET, related to I18N.
In ASP.NET 3.5 I have to set runat="server" on the html element to use explicit expressions. It appears that
ASP.NET
eats the xml:lang attribute on the html element when it is set to runat="server".
Of course I want to replace the hardcoded "en-US" values with (resource) explicit expressions; but, for simplicity,
try this:
<html runat="server" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US" dir="ltr">
...And you will find that no xml:lang attribute is rendered to the browser! Remove the runat="server", and, voila,
the
xml:lang attribute is rendered. :[
...Any ideas?
Cordially,
Lee
.
- Follow-Ups:
- Re: ASP.NET Internationalization bug?
- From: Lee C.
- Re: ASP.NET Internationalization bug?
- References:
- ASP.NET Internationalization bug?
- From: Lee C.
- Re: ASP.NET Internationalization bug?
- From: Juan T. Llibre
- Re: ASP.NET Internationalization bug?
- From: Lee C.
- ASP.NET Internationalization bug?
- Prev by Date: Re: multiple pages using the same code behind page
- Next by Date: Re: ASP.NET Internationalization bug?
- Previous by thread: Re: ASP.NET Internationalization bug?
- Next by thread: Re: ASP.NET Internationalization bug?
- Index(es):
Relevant Pages
|
Loading