Drupal의 Twig 템플릿 파일 컨텍스트에서 사용되는 {{ |t }}
필터와 {% trans %} ... {% endtrans %}
블록 은 모두 Drupal 지역화 시스템의 일부입니다. 둘 중 하나로 처리 된 문자열의 번역은 같은 방식으로 localize.drupal.org를 통해 처리됩니다. 간단한 텍스트 문자열의 경우 서로 바꾸어 사용할 수 있지만 %trans
블록에는 복잡한 문자열에 유용한 기능이 몇 가지 더 있습니다.
차이점은 t
필터가 간단한 문자열 만 허용하고 %trans
블록을 사용하면 문자열에 동적 자리 표시자를 사용할 수 있다는 것입니다. PHP t()
함수를 사용하는 것과 매우 비슷 합니다.
몇 가지 예는 다음과 같습니다.
t
필터 를 통한 간단한 문자열 변환 :
{{ 'Hello Stack Exchange!'|t }}
자리 표시자를 사용한 문자열 번역 :
{% trans %}Hello {{ user.name }}, today's date is {{ date|placeholder }}.{% endtrans %}
자리 표시자는 기본적으로 이스케이프되지만 이스케이프 처리하지 {{ var|passthrough }}
않거나 자리 표시 자로 형식화 할 수도 있습니다 {{ var|placeholder }}
. 이것은 t () 함수에서 각각 @string,! string 및 % string을 사용하는 것과 같습니다.
%trans
복수 문자열을 형식화하기 위해 블록을 사용할 수도 있습니다 .
{% trans %}
There is 1 comment.
{% plural count %}
There are {{ count }} comments.
{% endtrans %}
간단한 문자열의 경우 |t
vs 를 사용해야 할 때에 대한 규칙이 실제로 없습니다 %trans
. 따라서 템플릿에서 가장 읽기 쉬운 것을 사용하는 것이 좋습니다. 필자의 경험에 따르면 |t
짧은 문자열 에는 필터를 사용하는 %trans
것이 좋지만 긴 텍스트 문자열 에는 블록이 더 쉽습니다.
사용에 대한 자세한 내용은 여기에서 찾을 수 있습니다 : https://www.drupal.org/node/2357633 여기 https://www.drupal.org/developing/api/8/localization