Thẻ chuyển tiếp Django có thể bao gồm thẻ HTML không? Ví dụ: tôi có thể làm {% trans "Hold <em><strong>Ctrl</strong></em>" %}
? Hay tôi phải làm {% trans "Hold" %} <em><strong>{% trans "Ctrl" %}</strong></em>"
để thay thế?Thẻ chuyển tiếp Django có thể bao gồm thẻ HTML không?
Trả lời
Chúng tôi có thể bao gồm các thẻ HTML bên trong các thẻ mẫu trans
không?
Không, chúng ta không nên bao gồm các thẻ HTML bên trong một trans
mẫu thẻ như bạn đang làm trong cách tiếp cận của bạn 1 {% trans "Hold <em><strong>Ctrl</strong></em>" %}
. Đây là một cách tiếp cận sai
Từ docs:
Các
{% trans %}
mẫu thẻ dịch hoặc là một chuỗi liên tục (kèm theo trong dấu nháy đơn hoặc kép) hay những nội dung khác nhau.Không thể kết hợp biến mẫu bên trong một chuỗi trong phạm vi
{% trans %}
. Nếu bản dịch của bạn yêu cầu chuỗi có các biến số (trình giữ chỗ), hãy sử dụng{% blocktrans %}
để thay thế.
<title>{% trans "This is the title." %}</title> # example 1
<title>{% trans "myvar" noop %}</title> # example 2
Giải pháp 1: Sử dụng trans
mẫu thẻ
Thay vì đặt HTML code bên trong thẻ trans
, bạn có thể làm điều gì đó như dưới đây để có được kết quả mong muốn (mặc dù đây không phải là cách tiếp cận được khuyến nghị).
{% trans "Hold" %} <em><strong>{% trans "Ctrl" %}</strong></em> # using trans tag
Giải pháp 2: Sử dụng blocktrans
thẻ thay vì
Better tùy chọn là sử dụng blocktrans
mẫu thẻ thay vì trans
thẻ để bao gồm các thẻ HTML.
thẻ
blocktrans
phép bạn đánh dấu các câu phức tạp bao gồm literals và nội dung biến cho dịch bằng cách sử dụng placeholders:
Sau đó bạn có thể chỉ cần làm:
{% blocktrans %}
Hold <em><strong>Ctrl</strong></em>
{% endblocktrans %}
Như Rahul đã nói trong câu trả lời của mình, người ta không nên bao gồm các thẻ HTML bên trong một thẻ mẫu trans. Tuy nhiên, theo số Translating text blocks with Django .. what to do with the HTML? (mà tôi vừa tìm thấy), người ta có thể đặt các thẻ HTML bên trong các thẻ mẫu blocktrans thay thế. Do đó tôi không phải làm {% trans "Hold" %} <em><strong>{% trans "Ctrl" %}</strong></em>"
. Tôi không thể tìm thấy các hướng dẫn như vậy trong the Django 1.8 docs.
Có, chúng tôi không thể sử dụng thẻ HTML bên trong thẻ mẫu 'trans' nhưng chúng tôi có thể sử dụng thẻ' blocktrans'. Giải pháp sử dụng mẫu 'trans' không phải là giải pháp tốt nhất. Chúng tôi có thể sử dụng thẻ mẫu 'blocktrans' thay cho trường hợp của chúng tôi. Tôi đã cập nhật ans, xin vui lòng kiểm tra. –
- 1. Bao gồm HTML bên trong thẻ Jekyll
- 2. Thẻ có điều kiện bao gồm trong Django
- 3. bao gồm mẫu thẻ không làm việc trong django
- 4. Django: xây dựng giá trị của {% bao gồm%} thẻ động?
- 5. Django: Thẻ đính kèm có sẵn và thẻ bao gồm tùy chỉnh
- 6. Hiển thị thuộc tính bao gồm thẻ html
- 7. Thụt lề, mã in đẹp bao gồm thẻ mẫu Django, HTML, CSS và JavaScript
- 8. Outlook 2010 không bao gồm thẻ kiểu trong chữ ký
- 9. Bao gồm thẻ có điều kiện trong Rails/ERB
- 10. Django blocktrans - bên trong thẻ HTML
- 11. Django Bao gồm - họ có xấu không?
- 12. Thực tiễn tốt nhất: thẻ jsp tùy chỉnh hoặc thẻ bao gồm?
- 13. Thẻ gắn thẻ HTML với thẻ nghiêng
- 14. Chuỗi văn bản giới hạn PHP KHÔNG bao gồm thẻ html?
- 15. Di chuyển thẻ url để django 1,5
- 16. cách bao gồm thẻ tập lệnh trong tệp xsl?
- 17. Thẻ 'có' có điều kiện ở Django
- 18. Bao gồm thẻ neo trong ASP.NET MVC 5 ActionLink
- 19. Làm tổ thẻ HTML-anchor
- 20. Thẻ HTML nào không có nội dung
- 21. django {% url%} thẻ không có tham số
- 22. Sự khác nhau giữa các thẻ bao gồm và các thẻ nhúng trong expressionengine là gì?
- 23. dữ liệu Android Binding: tầm nhìn trên bao gồm thẻ
- 24. Bao gồm thẻ neo trong ASP.NET MVC Html.ActionLink
- 25. Xác nhận Rails và thẻ chọn gói 'fieldWithErrors' bao gồm
- 26. Thẻ HTML để ngăn thẻ HTML được thực thi?
- 27. ID có được để trống trong thẻ HTML không?
- 28. Ưu điểm thẻ mẫu không gian Django
- 29. Thẻ 'Bao gồm' của Android XML Layout có thực sự hoạt động không?
- 30. Tại sao PHP DOM không bao gồm dấu gạch chéo trên các thẻ tự đóng?
Điều phiền toái. – Daniel
Điều này dường như không phù hợp với nguyên tắc DRY. – Daniel
Ở một mức độ nào đó bạn có thể nói. –