2010-05-03 5 views
5

Zend Framework 응용 프로그램에서 일부 텍스트를 현지화하고 싶습니다. 같은 일부 텍스트가 있습니다HTML 태그를 사용한 현지화

Hello, I'm <a href="test.php" title="Title-Attribute" rel="test">a sample text</a>, greetings to all of you! :)

그것을에는 HTML이 없다면, 그것은 localizate 간단하지만 거기에 HTML과 내가 가장 잘 할 방법?

+0

동일한 주제가 논의되었습니다. http://stackoverflow.com/questions/2566432/add-some-html-to-zend-forms/2567764#2567764 여기를 확인하십시오. – user1400

답변

4

Virtaal과 같은 일부 현지화 도구는 way의 XML (HTML) 태그를 처리하므로 번역자가 쉽게 작업 할 수 있습니다. 또 다른 옵션은 태그를 문자열 형식 변수로 바꾸고 형식 결과 대신 형식 문자열을 지역화 할 수 있도록하여 현지화 담당자에게 제공된 문자열을 단순화하는 것입니다. 예를 들어 (I 대부분의 예를 위해 추측하고있어 아주 잘 PHP를 모르는) :

printf(_("Hello, I'm %sa sample%s, greetings to all of you!"), '<a href="test.php" title="Title-Attribute" rel="test">', "</a>");

을 위의 문장에서 로칼 라이져에게 표시되는 문자열은을 포함하는 유일한 사람이다 %s 서식 지정 변수 (_() gettext 함수로 래핑 되었기 때문에). 물론 이것은 변수가 대체 될 것임을 알지 못하는 경우 localiser에게 상당히 혼란 스럽다는 단점이 있으므로 적절한 현지화 주석을 포함해야합니다.

+2

"제목 속성"도 번역되어야한다는 것을 이해했습니다. – Gordon

+0

그런 경우 xtofl의 대답이 더 나은 것으로 보입니다. Upvoted 그것. 그래도 같은 생각이야. :) – Walter

2

UI에있는 문자열을 지역화해야합니다. 이 상황에서는 UI/컨트롤 요소의 조합이 있습니다. 즉, title 속성의 콘텐츠는 별도로 현지화되어야합니다. 고든이 말한대로,

$guilink = "<a href='test.php' " 
      ."title='".gettext("Title-Attribute")."'" 
      ." rel='test'>" 
      .gettext("a sample text") 
      ."</a>"; 

$guistring = sprintf( 
     gettext("Hello, I'm %s, greetings to all of you! :)"), $guilink); 

을 :하지만

이 경우, 이는 너무 복잡하지 않습니다.

1

번역 어댑터의 경우 번역에 HTML이 포함되어 있는지 여부가 달라져서는 안됩니다. 인라인 HTML이있는 짧은 문자열이 있으면 필요에 따라 HTML과 함께 번역을 언어 소스 파일에 넣기 만하면됩니다. 문자열 안에 HTML이있을 때 출력이 이스케이프되지 않도록해야합니다. xtofl처럼


편집는 번역가가 HTML을 처리 익숙 수 있기 때문에, 최적의 솔루션이 아닌 언어 파일 내에서 HTML을 가지고, 코멘트에 지적했다. 진실이 있지만, 나는 그것을 무시할 만하다. HTML은 로켓 과학이 아니며, 인라인 HTML 요소가 나타날 수있는 경우는 치트 시트를 제공 할 수 있습니다. 전문 번역가가이를 처리 할 수 ​​있어야합니다. 또 다른 우려는 원치 않는 콘텐츠를 삽입하는 것입니다. 링크 (전문가가 아닌 커뮤니티 번역가와 함께 일하는 경우). 그러나 어쨌든 어떤 번역자도 언급하지 않았으므로 직접 번역을하고 있다고 가정합니다. 위의 경우 모두는 yagni입니다. overcomplicate things은 필요 없습니다.

+0

가장자리로 가져 가면 번역사가 완전한 소스 코드를 읽고 문자열 리터럴을 고르십시오 ... 나는 그것을 정말로 좋아하지 않습니다. 번역사는 작업을 효율적으로 완료하기 위해 기술 세부 사항을 모르게해야합니다. (html 형식의 입력에서'name' 속성이'nom','name','gnorpx'로 변환되어야 하는지를 누가 알겠습니까?) – xtofl

+0

@xtofl OP의 목적을 위해서는 위의 방법이 유효합니다.OP가 번역사와 함께 작업하는지 여부는 알 수 없습니다. OP가하는 경우 번역자는 인라인 HTML을 처리 할 수 ​​있는지 알려줄 수 있습니다. 더 나은 해결책이라고 생각한다면 자신의 답을 삭제 취소하십시오. – Gordon