2009-01-23 28 views
10

Tôi đang làm việc trên một dự án và tôi mới bắt đầu thực hiện tất cả công việc cần thiết để toàn cầu hóa ứng dụng. Một điều mà xuất hiện khá thường xuyên là có nên toàn cầu hóa các thông báo ngoại lệ, nhưng đảm bảo rằng string.Format sử dụng CultureInfo.CurrentCulture thay vì CultureInfo.InvariantCulture. Ngoài ra, điều này có nghĩa là các thông báo ngoại lệ sẽ được lưu trữ trong các tệp tài nguyên có thể được đánh dấu là văn hóa cụ thể.Thông báo ngoại lệ nên được toàn cầu hóa

Vì vậy, câu hỏi đặt ra là các thông báo ngoại lệ phải được toàn cầu hoá hoặc phải được để lại trong cả InvariantCulture hoặc quốc gia của tác giả; trong trường hợp của tôi là en-US.

Trả lời

32

Thông báo ngoại lệ hiếm khi được hiển thị trực tiếp cho người dùng. Bạn cần nghĩ về người tiêu dùng cho mỗi chuỗi. Rõ ràng là phần văn bản trong giao diện người dùng cần quốc tế hóa, nhưng nếu thông báo ngoại lệ là , chỉ sẽ được hiển thị bằng hỗ trợ (hoặc sẽ hiển thị với người dùng và sau đó được gửi qua email để hỗ trợ khi họ nhấp vào nút) lợi ích của việc dịch nó?

Nếu bạn đi quá xa, bạn không chỉ có thể lãng phí thời gian và công sức (và i18n có thể mất một nhiều nỗ lực) nhưng bạn cũng sẽ làm cho cuộc sống của bạn hỗ trợ khó khăn hơn là tốt. Bạn thực sự không muốn phải đọc các tệp nhật ký được viết bằng ngôn ngữ nước ngoài và dịch chúng trở lại tiếng mẹ đẻ của bạn.

Nó làm cho ý nghĩa đối với Microsoft để quốc tế hóa thông điệp ngoại lệ của họ, bởi vì họ sẽ được đọc bởi các nhà phát triển từ khắp nơi trên thế giới - nhưng trừ khi bạn đa quốc gia với các nhà phát triển ở nhiều quốc gia người không chia sẻ chung ngôn ngữ, tôi sẽ không dịch thông điệp thực sự có ý nghĩa cho dev/support.

+0

+1 Cách tiếp cận thực tế hơn tôi nghĩ. –

+0

+1 nhưng một 'lý do' mà tôi đã nghe từ một nhà tuyển dụng cũ là một ngoại lệ tương tự có thể được ném bởi nhiều phương pháp. Nếu họ muốn thay đổi từ ngữ của một ngoại lệ, họ chỉ cần chỉnh sửa gói tài nguyên ở một vị trí. Tôi nghĩ rằng đó là ngu ngốc ... –

+0

@Outlaw: Yup, đó là ngu ngốc - bởi vì nó có nghĩa là nếu bạn cần phải thay đổi từ ngữ cho một trang web nhưng không phải khác (mà dường như khá có khả năng với tôi) bạn đã có nhiều công việc hơn để làm. –

0

Nếu bạn sẽ là người đối phó với các trường hợp ngoại lệ, thì hãy để chúng bằng ngôn ngữ bạn có thể hiểu hoặc cung cấp cho họ mã để bạn có thể tra cứu bằng ngôn ngữ mẹ đẻ của mình.

10

thông thường, tôi không.

Toàn cầu hóa chuỗi mà người dùng có thể nhìn thấy và bạn không để thông báo ngoại lệ của mình thấm qua giao diện người dùng, đúng không?

Phải không? :)

+0

+1 để nói giống như Jon S, nhưng ngắn gọn – MarkJ

0

Tôi giả định theo toàn cầu hóa, nghĩa là tuân thủ i18n thường được gọi là quốc tế hóa. Có, quốc tế hóa tất cả các phần hiển thị của GUI, bao gồm cả thông báo chẩn đoán. Tệp nhật ký, là nơi các nhà phát triển nên đi lấy thông tin thực sự như dấu vết ngăn xếp, không được quốc tế hóa.

+0

Trong .Net, các không gian tên được gọi là "Toàn cầu hoá". Chúng tôi đang mắc kẹt với bất kỳ thuật ngữ MS áp đặt. = / – StingyJack

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