Vào cuối ngày, người dịch sẽ có thể ngồi xuống và thay đổi văn bản cho mọi ngôn ngữ (để chúng phù hợp với ý nghĩa) mà không cần phải liên quan đến lập trình viên đã thực hiện công việc của mình.
Điều này làm cho tôi cảm thấy như là câu trả lời thích hợp là sử dụng một phiên bản sửa đổi của gettext
nơi bạn đặt chuỗi như
_(id, backup_text, context)
_('ABOUT_ME', 'About Me', 'HOMEPAGE')
bối cảnh này là không bắt buộc
tại sao như thế này? vì bạn cần phải xác định văn bản trong hệ thống bằng cách sử dụng ID duy nhất không phải là văn bản tiếng Anh có thể được lặp lại ở nơi khác.
Bạn cũng nên giữ bản sao lưu, id và ngữ cảnh trong cùng một vị trí trong mã của mình để giảm chênh lệch.
của id cũng phải có thể đọc được, trong đó mang lại vấn đề từ đồng nghĩa và lặp lại sử dụng (thậm chí như id), chúng ta có thể thêm tiền tố id như thế này "HOMEPAGE_ABOUT_ME" hoặc "MAIL_LETTER", nhưng
- người quên để làm điều này ngay từ đầu và thay đổi nó sau này là một vấn đề
- của nó linh hoạt hơn cho hệ thống để có thể nhóm cả bởi id và bối cảnh
đó là lý do tôi cũng nói thêm biến bối cảnh tại kết thúc
văn bản sao lưu có thể được khá nhiều bất cứ điều gì, thậm chí có thể "[ABOUT_ME @ văn bản HOMEPAGE không tải, xin vui lòng liên hệ với [email protected]]"
Nó sẽ không làm việc với các chương trình chỉnh sửa gettext hiện như "poedit", nhưng tôi nghĩ bạn có thể xác định tên biến tùy chỉnh cho các bản dịch như chỉ "t()" mà không có dấu gạch dưới lúc bắt đầu.
Tôi biết rằng gettext cũng có hỗ trợ cho các ngữ cảnh, nhưng nó không được tài liệu hóa hay sử dụng rộng rãi.
P.S. Tôi không chắc chắn về thứ tự biến tốt nhất để thực thi mã tốt và có thể mở rộng để các đề xuất được hoan nghênh.
câu trả lời được chấp nhận của bạn là IMHO không phải là giải pháp tốt! – markus
Có một câu hỏi tương tự: http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders – sleske