tl; dr: Tôi đang tìm kiếm một phương pháp thanh lịch để thực hiện quốc tế hóa trong các mẫu Jade. Về cơ bản, vấn đề nảy sinh khi tôi phải làm nội suy trên các chuỗi trong các biến, thay vì mã nguyên văn.I18N với Express/Jade: Các chuỗi với các thẻ nhúng và nội suy
chi tiết Vấn đề:
Trong một mẫu Jade đơn ngữ tôi chỉ có thể làm cho một phần tử với thẻ nhúng và các biến như sau:
p Posted by
span.author= post.author
| on
span.date= post.author
để có được một cái gì đó giống như
<p>Posted by <span style="author">The Author</span> on
<span style="date">2012-03-08</span></p>
Nhưng khi Tôi muốn quốc tế hóa điều này, tôi cần một chuỗi đơn, vì thứ tự từ không giống nhau trong mọi ngôn ngữ. Ngoài ra, tôi muốn ẩn chi tiết html từ dịch, và chỉ cần cung cấp cho họ một dòng như thế này:
Posted by #{author} on #{date}
Bây giờ khi tôi vượt qua phiên bản i18n-ed của chuỗi này vào mẫu Jade như i18n.posted_by_on, nó sẽ không làm nội suy trên đó, vì vậy tốt nhất tôi có thể làm là:
- var author = '<span class="author">$</span>'.replace('$',post.author);
- var date = '<span class="date">$</span>'.replace('$',post.date);
- var header = i18n.posted_by_on
.replace('#{author}',author)
.replace('#{date}',date);
p!= header
Điều này chủ yếu đánh bại điểm tô màu Jade đẹp, vì tôi phải làm tất cả nội suy theo cách thủ công. Có phương pháp nào hoạt động tốt hơn, gọn nhẹ, dễ đọc không?
Tôi chưa bao giờ tìm thấy câu trả lời (các ưu tiên được chuyển), nhưng điều này có vẻ phù hợp, vì vậy tôi sẽ chấp nhận nó :) –