2010-03-02 5 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 컨트롤을 사용하고 있습니다. 이 컨트롤을 Localize 컨트롤, 태그 및 모두에 포함시킬 수 있지만 문제는 링크가 더 이상 서버 컨트롤이 아닙니다. (ID로 페이지에서 참조했습니다.)

다른 언어로 된 단어 순서가 다를 수 있기 때문에 문자열을 분리 할 수 ​​없습니다 ("Acme Carpet Retailers", "여기를 클릭하십시오"등). .

나는 이것을 수행하는 방법에 대한 몇 가지 제안을 보았지만, 모두 링크가 삽입 된 텍스트는 마크 업이 아니라 코드에 할당되어 있으며 서버 컨트롤이 아니라고 가정합니다.

성공적으로 지역화하는 방법에 대한 조언이 있으십니까?

+0

코드에서 이것을 할당 할 수없는 이유는 무엇입니까? –

+0

내가 할 수 있다고 가정해도 어떤 구문을 사용합니까? –

답변

0

다른 언어로 된 단어 순서가 다를 수있는 경우 resx 내에 전체 텍스트 (태그 포함)를 현지화하는 것 외에 다른 방법은 없습니다.

그러나이 너무 귀찮은 경우, 물론, 당신은 텍스트보다 구조화하기 위해 응용 프로그램을 변경할 수 있습니다

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

그게 내가하고있는 일이야.하지만 구조를 그대로 유지하면서 그 일을 할 수있는 방법이 있는지 궁금해. –

1

을 당신은 할 수 없습니다 :

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

그럼 난 리소스 mydata는 다음과 같이 정의됩니다. "{0} 사이트에 로그인하려면 여기를 클릭하십시오."