2013-02-25 38 views
7

Tôi muốn gán đầu ra của khối blocktrans cho biến mẫu.Gán blocktrans cho biến số

Bạn có thể làm điều đó bằng cách sử dụng tag xuyên như vậy:

{% trans "Some text to translate" as foo %} 

Tuy nhiên bạn không thể làm điều tương tự với một thẻ blocktrans. Tôi không thấy nó trong tài liệu mà bạn có thể làm điều này.

+0

Chỉ cần vui lòng hỏi: Bạn có thể cập nhật câu trả lời cho câu trả lời phù hợp nhất với Django 1.9. – webjunkie

+0

Cảm ơn. Đã cập nhật. – LeeMobile

Trả lời

6

Django 1.9 thêm thành phần asvar thành blocktrans. An example from the docs:

{% blocktrans asvar the_title %}The title is {{ title }}.{% endblocktrans %} 
<title>{{ the_title }}</title> 
<meta name="description" content="{{ the_title }}"> 

Thật không may, có vẻ như trước khi thêm bạn cần một số cách khác để thực hiện.

4

Điều đó là không thể với thẻ blocktrans.

Tuy nhiên, bạn có thể sử dụng captureas templatetag này để nắm bắt đầu ra của các blocktrans.

{% captureas trans_value %} 
    {% blocktrans %} 
     This has some stuff in it which will be translated {{ foo }}. 
    {% endblocktrans %} 
{% endcaptureas %} 

{{ trans_value }} 
+0

Cảm ơn bạn đã gợi ý cho bạn, nhưng tôi không biết vị trí đặt mã bạn đã cung cấp liên kết. –

+0

@ olivier-pons Bạn cần phải định nghĩa nó như là một [https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/](thẻ mẫu tùy chỉnh) và sau đó tải nó trong mẫu – guival

+0

chấp nhận câu trả lời chỉ hoạt động trong django v 1.9+. Câu trả lời này hoạt động cho <1.9. Bạn có thể nói sản phẩm của tôi nên được nâng cấp và bạn nói đúng, nhưng việc nâng cấp không phải lúc nào cũng được lên lịch. (Ngoài ra, captureas nếu tổng quát hơn là chỉ cho blocktrans) –

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