2011-12-25 2 views
1

나는 Drupal English/French 웹 사이트를 운영하고 있습니다. 모든 종류의 필드가있는 '광고'라는 맞춤 콘텐츠 유형이 있습니다. 내 테마 디렉토리 에 'node - ad.tpl.php'파일을 생성하여 '광고'콘텐츠 표시를 사용자 정의했습니다. pixture reloaded 테마 및 DRUPAL 7을 사용합니다.drupal을 사용하여 node.tpl.php 파일의 필드를 변환하는 중 7

'필드 변환'모듈을 사용하여 필드 (레이블과 값 모두) 을 변환하려고합니다.

필드 번역은 admin을 통해 콘텐츠를 만들거나 수정할 때 작동합니다.

그러나 '광고'유형의 콘텐츠를 표시하면 입력란이 번역되지 않습니다. 'node-ad.tpl.php'로의 drupal 호출과 번역 모듈이 호출되지 않았기 때문입니다. 'node - ad.tpl.php'를 삭제할 때 drupal은 기본 node.tpl.php 을 비슷한 결과로 호출합니다. - 내가 제대로 모듈에 대한 모든 종속성을 활성화 1 :

어떤 도움, 고급의 감사합니다,

노트를 감상 할 수있다. 2 - 사용자 인터페이스 변환이 올바르게 작동합니다.

답변

1

OK 나는 이것을하는 방법을 스스로 알았다. 여기에 해결책을드립니다. 다른 사람들에게 도움이 될 수도 있습니다 :

먼저 구성> 지역 및 언어> 번역> 가져 오기에서 필드 레이블과 값을 번역하십시오. 필드를 사용자 인터페이스로 가져 오지 마십시오. 을 URL로 지정하지 마십시오 (msgstr 및 msgid 만 해당).

이제 translation을 적용하려면 node.tpl.php에 t() 함수를 추가해야합니다. 그래서 :

node.tpl.php 파일에서 필드 라벨을 번역하려면 다음을 작성하십시오 : $ content [ 'field_my_field'] [ '# title'] = t ($ content [ 'field_my_field'] ['#표제']);

필드 값을 변환하려면 다음을 수행하십시오. $ content [ 'field_my_field'] [ "# items"] [0] [ 'value'] = t ($ content [ 'field_my_field'] [ "# items"] [0] [ 'value']));

이제 필드를 렌더링 할 수 있습니다. print render ($ content [ 'field_my_field']);

관련 문제