2012-02-12 3 views
0

모든 번역 가능한 문자열이 데이터베이스에 있는지 확인하려고합니다. 그 중 일부는 매우 드물게 나타나며 (다양한 양식 검증 오류), 따라서 모든 것을 재현하는 것이 어려울 것입니다.Drupal을 사용하여 t ('')가 문자열을 채우게하려면 어떻게해야합니까?

대신 한 번 호출 된 관리 모듈을 만들어 모든 번역 가능한 문자열의 배열을 통해 echo t('[the string from the array]')을 실행합니다.

이 후, admin/config/regional/translate/translate을 사용하여 해당 문자열을 번역 할 수있을 것으로 기대합니다. 그러나 그들 모두가 거기에있는 것은 아닙니다.

  • 무엇이 누락 되었습니까?
  • 이것이 가능하지 않은 경우 입력을 강제하는 기능이 있습니까?
+0

코드 예제를 보여줄 수 있습니까? –

+0

$ t처럼 echo <($ t);?>'와 같이' Gajus

+0

업데이트 된 답변보기 –

답변

0

블라드 Stratulat에서 제안한 "번역 템플릿 추출기"모듈을 설치하고 사용하십시오. 이 모듈은 모든 모듈과 테마를 구문 분석하고 t() 함수에 사용 된 모든 문자열을 추출합니다.

결과는 모든 원래/번역 문자열 쌍이있는 .po 파일입니다. .po (일반 텍스트 파일이므로 좋아하는 텍스트 편집기 또는 POEdit 소프트웨어를 사용)를 열어 누락 된 문자열을 확인하고 번역 할 수 있습니다. 마지막으로 Drupal에서 전체 .po를 다시 업로드하십시오.

+0

간단히'.po' 파일을 직접 만들 수 있습니까? 배열의 모든 문자열을 가지고 있습니다. '.po' 파일 스펙은 어디에서 얻을 수 있습니까? – Gajus

+0

예,.포 포맷은 간단하지만 직접 만들 수는 있지만 simlicity를 위해 모듈이 모든 것을 파싱하게 할 것을 제안합니다! 이 파일의 형식을 복사 할 수 있습니다. http://ftp.drupal.org/files/translations/6.x/iconizer/iconizer-6.x-1.3.ca.po (내 Iconizer 모듈, 카탈로니아 어 번역본) –

+0

그 남자는 내 말을 듣고 싶지 않았어. –

-1

다음을 시도해보십시오.

foreach(array(t('foo'), t('bar')) as $t) { 
    echo $t; 
} 

당신은 t($text)를 호출하는 등의 변수를 번역 t()를 사용해서는 안됩니다. t() 기능에 대해 읽어보십시오.

하지만 어쨌든 가장 좋은 방법은 .po 파일을 모듈에서 만들고 Translation template extractor을 사용하여 Drupal로 내보내는 것입니다.

이 모듈은 모든 번역 가능한 문자열을 추출하여 언어 별 파일에 저장 한 다음 모듈을 사용하려는 다른 사이트에서 사용할 수 있습니다.

+0

가능한 경우 코드 내에서 수행하는 것이 좋습니다. – Gajus

+0

이 모듈은 확실히 도움이 될 것입니다. –

+0

어떤 종류의 모듈입니까? – Gajus

관련 문제