Chúng tôi có một ứng dụng kế thừa sử dụng Struts 1.2.9. Ứng dụng hiện đang được quốc tế hoá theo cách thức chuẩn - .properties
tệp cho tất cả các nhãn UI, lỗi, thư, v.v. Định nghĩa <message-resouces>
cho mỗi tệp .properties trong struts-config.xml
sử dụng các định nghĩa mặc định Factory
& MessageResources
; <bean:message>
sử dụng trong tất cả các JSP. Điều này đã làm việc tuyệt vời cho đến bây giờ, nhưng đối với thực tế là các ứng dụng chính nó là một khuôn khổ cho các dịch vụ được sử dụng bởi một vài trăm (có 100!) Các ứng dụng khác trong nội bộ.Struts 1.2.9 - Các câu hỏi về quốc tế hóa tùy chỉnh
Chúng tôi có một yêu cầu để mở rộng chức năng i18n như sau:
- Xác định một thư mục tùy chỉnh cho
.properties
file - vì vậy đây sẽ là ngoài phạm vi của classpath; về cơ bản không nằm trong gói.war
. Ý tưởng là để chỉ hỗ trợ thay đổi chuỗi tin nhắn w/o thực sự phải triển khai lại toàn bộ ứng dụng. - Thư mục tùy chỉnh này cũng sẽ chứa trong mỗi thư được ứng dụng hỗ trợ - đây có thể chỉ là tập hợp con của các thư hiện có hoặc toàn bộ tập hợp tài nguyên được điều chỉnh riêng cho ứng dụng đó.
- Tùy chỉnh cách hỗ trợ theo yêu cầu cơ sở
Locale
cài đặt - chặn tất cả các cân nhắc khác (ngăn xếp mặc định, classpath/tra cứu gói, v.v.) tương tự như cáchI18nInterceptor
hoạt động trong Struts2 với thuộc tínhrequestOnlyParameterName
được đặt thànhtrue
.
Có, tôi hiểu rằng một vài 100 gói được nạp cùng một lúc sẽ là bộ nhớ chuyên sâu, nhưng điều đó có thể chấp nhận được trong trường hợp của chúng tôi.
Any help is appreciated - có thể là phương hướng, mẫu mã, vv
Lưu ý: Tôi hoàn toàn đồng ý rằng chuyển sang một nền tảng giao diện người dùng mới có lẽ là giải pháp tốt nhất. Nhưng chúng ta không thể.
TIA.
Dường như việc triển khai MessageResources và MessageResourcesFactory của riêng bạn là cách để thực hiện. Suy nghĩ? – Ranga