2012-03-03 32 views
5

Tôi đang cố gắng sử dụng trình giữ chỗ thư với công cụ mẫu Twig. My navlist.it.yml lưu trữ thư này và trình giữ chỗ của thư:Symfony/Twig không dịch chính xác khi sử dụng trình giữ chỗ thông báo

users: 
    label: Gestione utenti %app% 

Và trong mẫu Twig của tôi, tôi muốn chuyển tên ứng dụng dưới dạng chuỗi. Vì vậy, những gì tôi đang làm là:

<ul class="nav nav-list"> 
    <li class="nav-header"> 
     {{ 'users.label'|trans({'app' : 'Fid'}, 'navlist')|raw }} 
    </li> 
</ul> 

Note Tôi đang sử dụng rawusers.label có thể chứa HTML. Đầu ra là chính xác:

<li class="nav-header">Gestione utenti %Fid%</li> 

Vì vậy, thông điệp được dịch nhưng thêm %...% được thêm vào. Những gì tôi đang mất tích?

+2

Bạn có thử với '{ '% ứng dụng%': 'Fid'} '? – Maerlyn

+0

@Maerlyn cảm ơn bạn, công trình. Vui lòng thêm câu trả lời nếu bạn muốn. – gremo

Trả lời

8

Các dấu phần trăm là một phần của mô hình, vì vậy bạn nên thêm chúng vào quan trọng của các giá trị dịch của bạn mảng, như thế này:

{{ 'users.label'|trans({'%app%' : 'Fid'}, 'navlist')|raw }} 
+0

Ngoài ra nếu bạn dịch từ bên trong bộ điều khiển của bạn thông qua PHP, bạn có thể làm một cái gì đó như '$ page_title = $ this-> get ('translator') -> trans ('Mẫu từ thể loại% category_title%', ['% category_title%' => $ category_title]); ' –

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