2014-07-23 4 views
3

Twig에서 문자열을 번역하는 데 문제가 있습니다. 저는 다국어 웹샵을위한 주제를 만들고 있습니다.Twig에서 변수를 문자열로 변환

사용자는 USP (Unique Selling Point)를 만들 수 있습니다. 문제는 언어가 다를 때 번역되지 않는다는 것입니다.

따라서 템플릿에서 usp가 호출됩니다. {{ theme.usp }} 그 결과는 예를 들어 "무료 배송"입니다.

시스템에서 문자열을 번역하려면 {{ 'Free shipping' | t }} 필터를 사용해야합니다.

{{ theme.usp }}을 번역 할 수있는 방법이 있습니까? 이 방법이 유용 할거라 생각했지만이 방법을 잘 모릅니다. 내가 무슨 짓을 How to concatenate strings in twig

했다 :

{% set usp = {{ theme.usp }} %} 
{{ usp | t }} 

{{ theme.usp }}'' 사이해야하기 때문에이 나에게 오류를 제공 하. 그러면 결과는 'Free shipping'이 아니라 'theme.usp'이됩니다.

누구든지 제안 하시겠습니까?

답변

7

시도 :

{{ theme.usp|trans }} 

되거나 t에 의해 필터링해야하는 경우 다음

{{ theme.usp|t }} 
이 작업을 수행하는
+0

예. 나는 그것을 시도했다. 원하는 결과를주지 않습니다. 나는 {{theme.usp}}를 't'함수로 변환 할 수있는 객체로 변환하는 것에 대해 더 많이 생각한다고 생각하십니까 ?? – Meules

+0

은'theme.usp' 객체 또는 문자열입니까? – pazulx

+0

@pazulux : 이상하게도 옵션이 작동합니다! 나는 오타가 생긴 것을 보았다. 바보 같은 .. – Meules

3

쉬운 방법은 마지막에 사실 PHP 함수에있는 필터 중 하나를 (사용하는 것입니다 ) 단순히 PHP 문서에서와 같이 문자열을 반환합니다.

예를 들어 문자열이 필요하므로 선택 양식 (SELECT/OPTION) 양식 유형의 값을 명시 적으로 설정하는 데 문제가 있었지만 int 값이 있습니다. 나는 단순히 이것을했다 :

{{ form_widget(form.scope, {'value': scope|trim}) }} 

범위는 int이지만 트림 (및 다른 PHP 함수, ​​여기서는 Twig 필터)은 자동으로 문자열로 만든다. 예, Symfony2에서 또 다른 누락 된 기능입니다.