2013-08-10 2 views
4

어떻게 내가 이런 식으로 뭔가를 만들려는 경우 l20n 사용합니다 :l20n (HTML 마크 업 포함)?

About <strong>Firefox</strong> 

내가 전체 문구를 번역하고 싶지만 나는 또한 마크 업을 할 수 있습니다. 이 작업을 수행하고 싶지 않습니다.

<aboutBrowser "About {{ browserBrandShortName }}"> 
<aboutBrowserStrong "About &lt;strong&gt;{{ browserBrandShortName }}&lt;/strong&gt;"> 

... 번역 자체가 이제 복제됩니다.

이 내용은 l20n의 범위에 속하지 않을 수도 있지만 실제 상황에서는 일반적으로 충분하다고 생각합니다. 이것에 관해 갈 방법이 있습니까?

printf(_('About %s'), sprintf('<strong>%s</strong>', _('Firefox'))) 

당신은 정말, 그것을 두 가지를하지 않은 수 없습니다 당신이 문자열 자체에 마크 업을 포함하지 않으려면

+0

왜 그 중 하나에서만 강합니까? –

+0

무슨 뜻입니까? 특정 기술이라면 설명하고 태그를 추가하십시오. –

+0

@ IgnacioVazquez-Abrams 내 애플리케이션의 다른 부분에서 다르게 스타일 화 된 "Firefox 정보"를 원할 수도 있습니다. 제목 : Re : l20n. 태그를 추가하려고했지만 충분한 평판 포인트가 없습니다. 다음은 http://l20n.org/의 설명입니다. L20n은 젠더, 복수형, 활용법 및 자연 언어의 다른 기발한 요소 대부분을 처리하는 데 사용되는 오픈 소스, 현지화 관련 스크립팅 언어입니다. –

답변

6

간혹 번역본을 복제하는 것이 최선의 방법입니다. 중복성은 로컬라이제이션에 유용합니다. 다른 언어로의 번역에 대한 가정을 거의 없앨 수 있습니다. L20n의 핵심 원칙 중 하나는 only the localizer will know what they really need입니다.

귀하의 솔루션은

당신이 제안이 솔루션은 실제로 꽤 좋은 실제로 괜찮습니다. <strong>으로 표현하려는 강조가 일부 언어에서 알 수없는 일부 알 수없는 의미를 갖게 될 가능성이 완전히 있습니다. 예를 들어, 일부 언어는 "약"을 의미하기 위해 "postpositions"을 사용하거나 개발자 인 경우 사용자가 <strong> 요소의 정확한 위치에 대해 너무 많은 가정을해서는 안됩니다. 전체 번역본은 <strong>으로 둘러싸인 단일 단어가 될 것입니다. 예상대로이 작업을 위해, 당신은 data-l10n-id=aboutBrowserEmphasized으로 DOM 노드에 data-l10n-overlay 속성을 추가해야한다는 점

<aboutBrowser "About {{ browserBrandShortName }}"> 
<aboutBrowserEmphasized """ 
    About <strong>{{ browserBrandShortName }}</strong> 
"""> 

참고 :

여기 L20n의 여러 줄 문자열 리터럴을 사용하여 포맷 다시 코드입니다. 그렇지 않으면 <>이 이스케이프됩니다.

만드는 몇 가지 가정이

날 신속하게 빗나가와 파이어 폭스 OS에서 Bug 859035 — Do not use the same "unknown" entity for Size & Author when installing a WebApp을 기르자 중요하다. 영어를 사용하는 개발자는 "알 수없는"형용사를 사용하여 설치 대화 상자에서 크기와 작성자를 모두 확인할 수 있다고 가정했습니다. 그러나 프랑스어 또는 폴란드어와 같은 특정 언어의 경우 형용사는 성별 및 복수형의 관점에서 대상과 일치해야합니다.

<unknown "Unknown"> 

... 다른 언어들이에 사용하고있는 상황 각각에 대해 두 개의 분리 된 문자열이 필요할 수 있습니다 : 그래서 심지어 영어 불구하고 우리는 하나의 문자열을 가질 수 있습니다.

<unknownSize "Unknown"> 
<unknownAuthor "Unknown"> 
:

영어
<unknownSize "inconnue"> 
<unknownAuthor "inconnu"> 

,이 일부 중복을 의미합니다 : 프랑스어, 당신은 (알 수없는 저자는, 남성) "taille inconnue"하지만 (알 수없는 크기, 여성)는 "영화 감독 inconnu"라고 말하고 싶지만

... 결국 괜찮 았기 때문에 결국 현지화의 품질이 향상되었습니다. 일반적으로 어디에서나 고유 한 문자열을 사용하고 아껴서 재사용하는 것이 좋습니다. 이상적으로 모든 문자열에 대해 다른 번역을 허용 할 수 있습니다.

웨일스 예마다 시간없이 질문을 사용하는 하나의 단어가 없습니다 : 당신이 웨일스 같은 언어를 고려하는 경우처럼 단순하고 일반적인 무언가조차 "예"와 "아니오"까다로운 일이 될 수 있습니다. 사용되는 단어는 질문의 형식에 따라 다릅니다. 일반적으로 질문에 사용 된 동사의 관련 형식을 사용하거나 동사가 'ie'/ 'nage'를 사용하는 첫 번째 요소가 아닌 질문에 답해야합니다.

+1

개발자로서 필자는 중복에 대한 내재적 인 혐오감이 있지만이 지역화 컨텍스트에서 여러 번 언급 한 "중복성이 좋을 수 있음"을 알았으므로이를 받아 들일 것입니다. –

-1

은 거의 당신이 할 수있는 유일한 방법은 두 문자열을 분리하는 것입니다 문자열에 하나의 연속 문자열로 포함 된 마크 업을 포함합니다.

+0

이것은 120 만 질문에 대한 C/C++ 답변입니다. 해명 해 주셔서 감사합니다. – Tongfa