2012-04-19 2 views
4

이 같은 나뭇 가지에 DateTime 개체를 표시하고 만들려면 :번역 나뭇 가지 날짜

<td>{{ transaction.getDate|date("F - d - Y") }}</td> 

지금 나는 달이 번역되고 싶어를, 예를 April - 20 - 2012를 들어 가 표시되어야 등 : Avril - 20 - 2012

이 작업을 수행 할 수 있습니까? 그렇다면 어떻게?

저는 Symfony2에서 작업하고 있습니다.

+0

https://github.com/fabpot/Twig/issues/378 괜찮습니까? – contrebis

+0

예, 유용합니다! 감사. 이 문제는 꽤 오랜 시간에 걸쳐 해결되었습니다. – Amit

답변

2

당신은 월 부분을 가져온 다음 그것을 번역 할 수 있습니다 :

{% set month  = transaction.getDate|date('F') %} 
    {% set dayAndYear = transaction.getDate|date('d - Y') %} 

    {{ '%s - %s'|format(month|trans, dayAndYear) }} 
1

인라인 나뭇 가지 솔루션을 다른 솔루션과 더 읽기 번역 메시지 파일 :

<td>{{ ('month.'~transaction.getDate|date("m"))|trans|raw~' - '~transaction.getDate|date("d - Y") }}</td> 

그리고 당신의 번역 예를 들어, messages.fr.yml에서 프랑스어 번역을하려면 다음 행을 넣어야합니다.

# messages.fr.yml 
month.01: Janvier 
month.02: Février 
month.03: Mars 
month.04: Avril 
month.05: Mai 
month.06: Juin 
month.07: Juillet 
month.08: Août 
month.09: Septembre 
month.10: Octobre 
month.11: Novembre 
month.12: Décembre 

설명 : 문자열로 모든 피연산자를 변환하고 그들에게의
사용을 연결하는 연산자 ~의

사용 | 운영자 때문에 우선 순위에서 정의하는 사업자의 괄호

주의 (... JS, HTML을 탈출 할 필요가 없습니다) 날짜가 안전 표시하기 위해 원료의
사용을 번역하는 필터를 트랜스 기능의
사용을 적용합니다 http://twig.sensiolabs.org/doc/templates.html

운영자 우선 나열된 낮은 우선 순위 연산자는 다음과 같다 : 첫째! B 및, B-XOR, B 또는, 또는, 및, == = <>,> = , < =, in, 시작, 끝, ..., +, -, ~, *, /, //, %, is, **, |, [] 및 :

첫 번째 부분에 괄호 63,210

설명 : ('. 달 ~ transaction.getDate | 날짜 ("m")) | 트랜스 | 원시

transaction.getDate | 날짜 ("m")가 먼저 실행됩니다 때문에 | 연산자는 ~ 연산자에 우선 순위가 더 높습니다. month of transaction.getDate가 may 일 수있는 경우 transaction.getDate | date ("m")는 03 문자열 을 반환하고 '월'이후. 이 문자열에 연결 한 다음 month.03을 가져야합니다.

그리고 괄호 사이에 'month.'~ transaction.getDate | date ("m")를 설정 했으므로 필터 trans은 문자열 month 이후에만 적용됩니다. 03 평가되었습니다 ...

6

또는 사용 The Intl Extension :

jeudi 25 février 2016 

가, 심포니 2 수 작곡가에 추가하려면 :

{{ "now"|localizeddate('none', 'none', app.request.locale, "Europe/Paris", "cccc d MMMM Y") }} 

당신에게 같은 줄 것이다

composer require twig/extensions 

을 그리고와 필터를 활성화 서비스 :

services: 
    twig.extension.intl: 
     class: Twig_Extensions_Extension_Intl 
     tags: 
      - { name: twig.extension } 
+1

실제로 가장 좋은 대답입니다. – Arvid