Tôi đang xây dựng một ứng dụng web đa ngôn ngữ bằng cách sử dụng mẫu MVC làm vị trí bắt đầu. Ứng dụng này có một số biểu mẫu mà người dùng sẽ tương tác và nhiều biểu mẫu trong số này sẽ có các trường tra cứu từ bảng cơ sở dữ liệu, ví dụ như 'Tỉnh'.Bản dịch ngôn ngữ phù hợp với mẫu MVC ở đâu?
Nếu tôi cần các tùy chọn trong các danh sách này sẽ được hiển thị bằng ngôn ngữ của người dùng trên màn hình, tôi có thể thấy một vài cách để làm điều này:
- Trong mô hình. Khi truy vấn mô hình, tôi có thể cung cấp ngôn ngữ mà tôi muốn kết quả được trả về. Điều này sẽ cho phép sử dụng bản dịch ở mọi nơi mà dữ liệu từ mô hình được hiển thị mà không có thay đổi. Tuy nhiên, điều này cũng có nghĩa là mô hình tỉnh trong ví dụ của tôi (cộng với tất cả các mô hình ứng dụng khác) bây giờ cần biết cách thực hiện các bản dịch ngôn ngữ.
- Trong bộ điều khiển. Tôi có thể truy vấn mô hình trong hành động của trình điều khiển như bình thường và sau đó tạo đối tượng 'Translator' để tôi có thể chuyển kết quả vào trước khi hoàn thành tác vụ. Điều này có nghĩa là mỗi hành động điều khiển có khả năng sẽ nhân bản cùng một mã dịch, vi phạm nguyên tắc DRY.
- Trong chế độ xem. Do trình bày của ứng dụng thường được dự kiến tồn tại trong các khung nhìn, và ngôn ngữ của người dùng không ảnh hưởng đến logic nghiệp vụ của hệ thống, một lập luận có thể được thực hiện rằng các bản dịch ngôn ngữ thuộc về đây. Đặc biệt xem xét rằng một trang cũng có thể chứa nội dung tĩnh cần được dịch. Nhược điểm của điều này là nó sẽ làm phức tạp các quan điểm một chút, đặc biệt là cho các nhà thiết kế front-end, những người sẽ phải làm việc xung quanh các mã dịch mới.
Có một phương pháp hay nhất được chấp nhận cho các bản dịch văn bản thuộc mẫu MCV cho các ứng dụng web không? Liệu sự thay đổi này có xảy ra nếu tôi đang tải các tùy chọn danh sách lựa chọn thông qua một cuộc gọi AJAX thay vì tại thời gian tải trang?
Cảm ơn sự giúp đỡ!
Tôi cho rằng điều này sẽ mở ra cuộc tranh luận giữa các mô hình chất béo/bộ điều khiển gầy và bộ điều khiển mô hình/chất béo gầy. Tôi đúng rằng bạn sẽ có logic kinh doanh của bạn trong bộ điều khiển? –
@WallyLawless Không bao giờ nghe bất cứ ai tranh luận về bộ điều khiển chất béo. Bộ điều khiển là một lớp mỏng dịch từ xem sang mô hình và mô hình để xem. Bộ điều khiển thường không được tái sử dụng, chúng chỉ là keo dán, không điền mã của bạn bằng keo. –