2016-03-29 24 views
7

Freemarker (theo mặc định) uses the locale to build the file names it looks for khi tải và bao gồm các mẫu. Ví dụ, bốc tos.ftl (template) với en_US locale sẽ tìm kiếm:Thymeleaf có thể thực hiện tra cứu mẫu được bản địa hóa như Freemarker không?

  1. tos_en_US.ftl
  2. tos_en.ftl
  3. tos.ftl

này có thể hữu ích để dịch toàn bộ các trang khi các trang hoàn toàn khác nhau giữa các ngôn ngữ khác nhau. Ví dụ: trang "Điều khoản dịch vụ" có thể chủ yếu là tĩnh nên các ngôn ngữ khác nhau sẽ có nội dung hoàn toàn khác nhau. Trong trường hợp này, sẽ là một rắc rối khi làm cho toàn bộ nội dung trở thành các tin nhắn được tải từ các gói tin.

Tôi hiện đang học Thymeleaf và không thể tìm thấy bất kỳ thông tin nào về chức năng tương tự. Tôi biết rằng Thymeleaf sử dụng localized message bundles để điền vào các yếu tố th:text nhưng có thể tải phiên bản được bản địa hóa của các tệp mẫu mẫu?

Lưu ý: Tôi đang sử dụng Spring Boot

+1

Tôi đã mở một yêu cầu tính năng cho điều này: https://github.com/thymeleaf/thymeleaf/issues/497 – bernie

Trả lời

1

hành vi Thymeleaf của giống như Spring 4 MVC Internationalization (Tôi đoán bạn sử dụng Thymeleaf với mùa xuân ??), nó sử dụng messages.properties nhận ra rằng. Ví dụ bạn có một mẫu với #{hello} nhắn:

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <title></title> 
</head> 
<body> 
    <span th:text="#{hello}"> 
</body> 

#{hello} văn bản sẽ được binded đến messages.properties proprty hello.

Nếu bạn locale khác, ví dụ: ru_RU bạn chỉ cần thêm messages_ru_RU.properties và thay đổi số locale của đơn đăng ký của bạn.

Sau đó, thư của bạn sẽ được lấy từ tệp thuộc tính được bản địa hóa. Lưu ý rằng nhất thiết phải để có tệp messages.properties nếu bạn sử dụng tệp tin được bản địa hóa.

+0

Cảm ơn câu trả lời của bạn, nhưng nó bỏ lỡ ý nghĩa của tôi. Tôi biết về các gói tin nhắn, nhưng tôi đã tự hỏi về bản thân mẫu thực tế bản thân có phiên bản địa hoá. Tôi sẽ làm rõ câu hỏi. – bernie

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