2015-10-18 14 views
6

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:

  1. 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.
  2. 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 đó.
  3. 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ách I18nInterceptor hoạt động trong Struts2 với thuộc tính requestOnlyParameterName được đặt thành true.

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.

+0

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

Trả lời

0

Tôi đã có yêu cầu tương tự trong dự án mùa xuân, không chỉ cho i18n, cũng là các điểm cuối dịch vụ web và các loại thuộc tính khác.

Chúng tôi thực hiện yêu cầu đó bằng cách thêm thư mục đó, trong đó chúng tôi đặt các tệp thuộc tính, vào đường dẫn lớp trong tệp cấu hình bắt đầu máy chủ.

Đã kiểm tra và làm việc trong weblogic 11g (Sản xuất trước và sản xuất) và trong máy chủ tomcat (môi trường phát triển).

Hy vọng sẽ giúp

+0

Cảm ơn đề xuất của bạn Francisco. Nếu tôi nhớ chính xác, khi bạn xác định , bạn xác định tên gói để chọn các tệp thuộc tính từ đó. Nếu tôi có một thư mục gốc với nhiều thư mục con, mỗi thư mục có khả năng chứa nhiều gói, tôi không nghĩ rằng thiết lập đường dẫn lớp này sẽ hoạt động. Bạn sẽ cần một cơ chế mà theo đó cho mọi yêu cầu, miền địa phương và lần lượt các bó thuộc tính phải được chọn từ thư mục tương ứng cho ứng dụng đó bên dưới thư mục gốc. – Ranga

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