2012-01-04 28 views
34

Tôi có một tệp twig và một yml trong đó tôi xác định các biến cho bản dịch, Ví dụ: :Làm cách nào để xử lý Bản dịch trong tệp tin twig sử dụng các biến?

YML File -
variable.for.translation: Disponible, para tí

Hàm lượng cành File -

<h2>"Hola, Follow {{ variableName }} en Twitter</h2> 

Tôi muốn thực hiện một biến cho

Hola, Follow {{ variableName }} en Twitter 

trong tập tin dịch (ví dụ: tệp yml của tôi).
Hiện nay tôi đang làm nó như thế này:
Trong YML -

follow.us.twitter: Hola, Follow 

follow.us.twitter1: en Twitter 

Trong Twig -

<h2>{{ "follow.us.twitter"|trans([], "workend") }} {{ variableName }} {{ "follow.us.twitter1"|trans([], "workend") }}</h2> 

của nó làm việc tốt, nhưng vấn đề là tôi bây giờ có 3 biến trong một cành lá mà quá nhiều:

1. follow.us.twitter 
2. follow.us.twitter1 
3. {{ variableName }} 

Tôi đã cố gắng thực hiện với 1 biến số như:

follow.us.in.twitter : Hola, Follow {{ variableName }} en Twitter 
and 
<h2>{{ "follow.us.in.twitter"|trans([], "workend") }}</h2> 

nhưng nó không làm việc vấn đề là biến i.e {{variableName}} tôi đang sử dụng.
Có cách nào để xử lý biến được xác định trước và xác định nó trong tệp dịch không ??
Cảm ơn bạn đã dành thời gian.

Trả lời

59

Bạn đã được diễn ra đúng hướng, những gì bạn bỏ lỡ chỉ là để vượt qua variableName như một tham số trans() trong Twig bạn nộp như: tập tin

<h2>{{ "follow.us.in.twitter"|trans({'%variableName%': variableName}, "workend") }}</h2> 

Bây giờ thông điệp của bạn trong YML phải là:

follow.us.in.twitter: Hola, Follow %variableName% en Twitter 

Điều này sẽ hiệu quả. Để biết thêm chi tiết và rõ ràng, bạn có thể tham khảo các mục sau: Symfony Book

Chúc may mắn.

+0

Nếu tôi chuyển nhiều đối số cho cành, thì Twig không thể sử dụng toàn bộ mảng mà không định nghĩa chúng để chuyển đổi? Vì vậy, nếu tôi có: '{{remind.Email | trans ({'% firstName%': firstName, '% lastName%': lastName, '% siteUrl%': siteUrl})}}' tại sao không thể chỉ cần bản đồ một mảng toàn bộ, mà sẽ được sử dụng để thay thế% var% với var? – rolandow

+0

Sẽ tốt hơn nếu điều này được thay thế bằng điều này .. {'% variableName%': variableName} ===> {'% variableName%': variableValue} – Nandakumar

Các vấn đề liên quan