2014-04-30 2 views
1

Xliff를 크로스 플랫폼 애플리케이션 (백엔드에서는 PHP, 모바일에서는 Android)을위한 공통 포맷으로 사용할 계획입니다. 이 Xliff 파일은 문자열을 추출 할 수있는 "실제"소스 파일을 가지고 있지 않지만 개발이 진행됨에 따라 수제로 제작됩니다.PHP/Android 용 Xliff 툴링

당연히 Xliff는 대상 플랫폼에서 변환/읽을 필요가 있습니다. Android의 경우 소스 Xliff 파일을 Android String 리소스 파일로 변환하는 것이 가장 좋을 것이라고 상상했는데, PHP의 경우 대상 출력이 원시 PHP 배열이거나 Zend_Translate_Xliff과 같은 것을 사용 했으므로 동일한 작업을 수행했을 것입니다.

지금 두 가지가 여전히 해결되지 않은 있습니다
  1. msgmerge은 gettext를 위해하는 것과 유사한 다른 XLIFF 파일로 기존 XLIFF 파일을 병합 기존의 도구가 있습니까? 여기에서의 이유는 X 변환이 있고 새 문자열이 소스 언어에 추가되면 X 대상 변환 파일을 해당 새 문자열로 업데이트하지 않기를 바랍니다.

  2. Xliff에서 Android XML로 이미 변환 된 기존 변환기/XSLT 스크립트 (최고로 자동화 가능, CI 용)가 있습니까?

미리 감사드립니다.

+0

나는 그것이 주제가 아니라는 것을 안다 : 왜 gettext가 아닌 Xliff인가? Xliff에서 gettext가 누락 된 것은 무엇입니까? 게다가 모바일 앱 (XML은 뚱뚱함)이 될 때 왜 XML 기반 형식을 선택 했습니까? 나는 단지 호기심이 많다. 오, 나는 [Swordfish Translation Editor] (http://www.maxprograms.com/)를 사용했음을 언급 한 것을 잊었으며 괜찮습니다. 그러나 나는 그것을 다른 도구와 비교할 수 없다. [XLIFF에 대한 Wikipedia 기사] (http://en.wikipedia.org/wiki/XLIFF#Editors)에는 몇 가지 추가 정보가 있습니다. –

+1

Xliff를 사용하기 때문에 안드로이드의 리소스 XML 형식과 같은 다른 XML 형식으로 쉽게 변환 할 수 있습니다. Xliff는 표준화되어 있으며 번역 할 수 없거나 위치가 지정된 인수를 으로 정의하거나 을 통해 일반 참고를 사용하여 번역자가 문자열을 번역하는 데 도움이되는 것처럼 메타 데이터를 번역에 추가 할 수 있습니다. –

답변

1

기본적으로 파이썬 명령 줄 유틸리티 세트 인 translate-toolkit이라는 프로젝트가 있습니다. 이는 작업의 일부분을 수행합니다. XLIFF 파일을 병합

은 다음과 같이 작동합니다 : 나는 실제로 제거 대처 방법을 잘 테스트하지 않았습니다하지만

pretranslate -t translation.xml source.xml translation-merged.xml 

는/문자열을 변경했습니다. translation.xml에있는 기존 trans-unitapproved="yes" 속성을 가지고 있어야 해당 단위가 translation-merged.xml에 "needs-translation"으로 표시되지 않아야합니다.

이론적으로 translate-toolkit에는 PHP가 일부 지원되지만 동일한 문제가 발생하여 즉 as mentioned here, 즉 작동하지 않습니다.