Tôi đang phát triển một ứng dụng web PHP đa ngôn ngữ và tôi đã có các văn bản (-ish) dài mà tôi cần dịch bằng gettext. Đây là các mẫu email (thường là ngắn, nhưng vẫn còn vài dòng) và các phần của mẫu xem (các khối văn bản mô tả dài hơn). Các văn bản này sẽ bao gồm một số HTML đơn giản (những thứ như in đậm / in nghiêng để nhấn mạnh, có thể là một liên kết ở đây hoặc ở đó). Các mẫu là các tập lệnh PHP có đầu ra được ghi lại.
Vấn đề là gettext có vẻ rất vụng về để xử lý các văn bản dài hơn. Các văn bản dài hơn thường có nhiều thay đổi hơn theo thời gian so với các văn bản ngắn - Tôi có thể thay đổi các bản dịch và đảm bảo cập nhật nó trong tất cả các bản dịch (có thể rất nhiều công việc và rất dễ bị lỗi khi bản dịch dài) hoặc tôi có thể giữ Các bản dịch không thay đổi và chỉ sửa đổi các bản dịch (sẽ để lại các văn bản lỗi thời trong các mẫu). Ngoài ra, tôi đã thấy lời khuyên chống lại việc bao gồm HTML trong các chuỗi gettext, nhưng tránh nó sẽ phá vỡ một đoạn văn bản tự nhiên thành nhiều đoạn, đây sẽ là một cơn ác mộng lớn hơn để dịch và tập hợp lại, và tôi cũng đã thấy lời khuyên chống lại việc tách các chuỗi gettext không cần thiết thành các thông điệp riêng biệt.
Cách tiếp cận khác mà tôi thấy là bỏ qua gettext hoàn toàn cho các văn bản dài hơn này và tách các khối đó trong các mẫu phụ bên ngoài cho mỗi miền, và chỉ bao gồm một khối cho miền địa phương hiện tại. Nhược điểm là tôi tách biệt nỗ lực dịch giữa các tệp gettext .po và các mẫu riêng biệt nằm ở một vị trí hoàn toàn khác.
Vì ứng dụng này sẽ được sử dụng làm điểm khởi đầu cho các ứng dụng khác trong tương lai, tôi đang cố gắng đưa ra phương pháp tốt nhất trong dài hạn. Tôi cần một số lời khuyên cho các thực hành tốt nhất trong các tình huống như vậy. Làm thế nào bạn đã thực hiện các trường hợp tương tự? Điều gì hóa ra để làm việc và những gì hóa ra một ý tưởng tồi?