Chúng tôi đang phát triển một ứng dụng lớn, bao gồm nhiều gói nhỏ. Mỗi gói có tập hợp các tệp tài nguyên riêng để bản địa hóa.
Cách tiếp cận tốt nhất để tổ chức và đặt tên các chuỗi nội địa hóa là gì?
Đây là những suy nghĩ của tôi cho đến nay:
Xử lý trùng lặp
Cùng một văn bản (giả sử, "Mã zip") có thể xảy ra nhiều lần trong một gói nhất định. Bản năng lập trình (DRY) bảo tôi tạo một tài nguyên chuỗi duy nhất được chia sẻ bởi tất cả các lần xuất hiện .
Sau đó, một lần nữa, một dịch giả có thể muốn chọn một bản dịch dài ("Postleitzahl") ở một số nơi và một bản dịch ngắn hơn ("PLZ") ở những nơi có ít không gian hơn. Hoặc chúng tôi có thể quyết định nối thêm dấu hai chấm vào một số lần xuất hiện ("Mã zip:"), nhưng không cho các trường hợp khác. Hoặc chúng tôi có thể yêu cầu viết hoa khác ("mã zip") ở một số nơi. Tất cả các đối số này đều chỉ ra việc tạo một tài nguyên cho mỗi lần sử dụng, ngay cả khi nội dung của chúng giống hệt nhau .
Đặt tên
Nếu chúng tôi nhắm đến việc loại bỏ các bản sao, việc đặt tên tài nguyên theo nội dung sẽ có ý nghĩa, có thể gợi ý về loại sử dụng thông qua tiền tố. Vì vậy, chúng tôi có thể có labelOK
= "OK" , messageFileTooLarge
= "Tệp vượt quá kích thước tệp tối đa." và labelZipCode
= "Mã zip" .
Đặt tên theo nội dung có lợi thế là xử lý các đối số định dạng một cách tự nhiên: Tài nguyên messageFileHas_0_MBWhileMaximumIs_1_MB
rõ ràng có hai đối số định dạng, kích thước tệp thực tế và kích thước tệp tối đa.
Tuy nhiên, nếu chúng tôi cho phép trùng lặp, chỉ đặt tên theo nội dung sẽ không có ý nghĩa. Để có được tên tài nguyên duy nhất, bằng cách nào đó chúng ta phải bao gồm nơi sử dụng trong tên tài nguyên. Điều đó hoạt động cho các điều khiển đồ họa, mặc dù các định danh có xu hướng hơi dài: fileSelectionConfirmationButtonText
= "OK" , customerDetailsTableColumnZipCode
= "Mã Zip" . Tuy nhiên, đối với các tệp mã không trực quan, nó trở nên khó hơn. Làm thế nào để bạn đặt tên cho một cách sử dụng cụ thể của một chuỗi nếu bạn không biết cuối cùng nó sẽ được hiển thị ở đâu? Theo tập tin mã và tên hàm? Có vẻ khá vụng về và dễ vỡ đối với tôi.
Nói chung, tôi nghiêng về việc cho phép các bản sao, nhưng tôi đang cố gắng tìm một sơ đồ đặt tên nhất quán hỗ trợ việc này.
Chỉnh sửa: Câu hỏi này có hai khía cạnh: Làm thế nào để tổ chức các nguồn lực (DRY vs bản sao) và làm thế nào để đặt tên cho chúng. Cho đến nay, các câu trả lời đã tập trung vào khía cạnh đầu tiên. Tôi đánh giá cao một số phản hồi về quy ước đặt tên!