2011-02-16 3 views
2

저는 ASP.NET 웹 사이트를 현지화했습니다. 보통 난 그냥 asp.net 컨트롤왜이 지역화 라인은 이런 식으로 행동합니까?

<%= Resources.ResourceFile.ResourceName %>

를 사용에서 .aspx 페이지에 텍스트를 국산화이 작동하지 않습니다. 나는 버튼이있는 경우, 그러나 구문을

<%$ Resources:ResourceFile, ResourceName %>

을 사용하고 Text 재산 그런 식으로 지역화하지만, 그 후 현지화 바꿈을 추가 문자를 추가해야하고 그것은 일반 텍스트로 보여줍니다.

그래서
<퍼센트의 $ 리소스로 Text="<%$ Resources:ResourceFile, ResourceName %> &raquo;" 표시 : ResourceFile, resourceName이의 %> »

나는이에 대한 유효한 이유는, 난 그냥 방법에 MSDN에 대한 설명을 찾을 수 있습니다 확신 해요 Text 속성은 이것을 평가합니다. 나는 심지어 <%$가 실제로 무엇을하는지 100 % 확신하지 못합니다.

+0

큰 따옴표 대신 작은 따옴표를 두어보십시오. 그래서 'Text ='<% $ Resources : ResourceFile, ResourceName %> » ' – Bazzz

+0

@Bazzz, 작동하지 않습니다. 같은 결과. – Brandon

답변

1

ASP.net이 Expression Builder을 호출하고 있습니다. 무엇을 효과적으로 여기에 일어나는 것은 그 ASP.net 컴파일러는 당신의 번역보다는 :

<asp:AControlWithATextProperty runat="server" Text="Some Text"> 

에 : 그것은 코드 코드와 결합 된 .cs 파일로 .aspx 파일의 마크 업을 변환

AControlWithATextProperty ctl1 = new AControlWithATextProperty(); 
ctl1.Text = "Some Text"; 

<asp:AControlWithATextProperty runat="server" Text="<%$ Resources:ResourceFile, ResourceName %>"> 

가되다 :

012,351 뒤, 실제로 이와 비슷한 무언가를
AControlWithATextProperty ctl1 = new AControlWithATextProperty(); 
ctl1.Text = ResourceExpressionBuilder.EvaluateExpression("ResourceFile, Resourcename"); 

asp.net 컴파일러는 <%$ %> 태그의 내용을 태그의 속성에있는 추가 텍스트와 연결하여 처리 할 수없는 것으로 보입니다. 버그 또는 디자인. 즉, ctl1.Text = ResourceExpressionBuilder.EvaluateExpression("ResourceFile, Resourcename") + "&raquo;"으로 끝나지 않습니다.

ResourceExpressionBuilder에 대한 자세한 내용은 msdn, ExpressionBuilder, 또는 정말로 원할 경우 읽을 수 있습니다. 로컬라이제이션을위한 구현 (데이터베이스 지원, 따라서 ResourceExpressionBuilder를 사용하지 않았다는 사실) onmyblog (3 부).

+0

철저히 설명해 주셔서 감사합니다. 호기심에서 연결에 관한 가능한 버그 보고서를 제출해야한다고 생각합니까? – Brandon

+0

@Brandon, 솔직히 모르겠다. 이미 문제가 없다면 연결 문제를 제기하고 Microsoft의 응답이 무엇인지 확인해보십시오.) – Rob

관련 문제