Có cách nào để có được một mô tả cục bộ của một phím tắt như Ctrl + Z vì vậy mà tôi nhận được "Ctrl + Z" nếu ứng dụng chạy trên một hệ thống tiếng Anh và "Strg + Z "trên hệ thống của Đức?Delphi: Cách bản địa hóa mô tả cho lối tắt menu?
Chức năng VCL ShortCutToText không được quốc tế hóa. Chức năng API GetKeyNameText tốt hơn một chút nhưng vẫn không hoàn hảo: Nếu một thiết bị chuyển mạch các thiết lập vùng của một XP của Đức sang tiếng Anh (Mỹ), nó vẫn tạo ra các văn bản tiếng Đức. Bên cạnh đó kết quả là trong VỐN mà là xấu xí.
Làm rõ: Tôi biết cách tôi có thể thay thế chuỗi tài nguyên ShortCutToText hoặc Smkc * bằng các phiên bản tùy chỉnh. Nhưng để sử dụng tôi cần các chuỗi dịch. Và tôi muốn nhận những thứ này từ hệ điều hành (hoặc tương tự).
Cập nhật: Có vẻ như Microsoft hy vọng các nhà phát triển tự thực hiện bản dịch - xem 2. trong Associating a Menu Item with an Accelerator Key. Trích:
Ví dụ, để gán tổ hợp phím CTRL + O để mở lệnh trên menu File, bạn chỉnh sửa chú thích vào mục menu để nó trông như thế này:
Open \ tCtrl + O
Mục menu trong trình chỉnh sửa Menu được cập nhật để phản ánh chú thích mới khi bạn nhập.
Lưu ý rằng phím tắt được thêm thủ công vào phụ đề.
Tôi tin rằng điều này có nghĩa là các trình đơn được vẽ chủ sở hữu sẽ được vẽ không chính xác trong các hệ thống Delphi với bàn phím không phải tiếng Anh vì mã trong Menus.pas sử dụng 'ShortCutToText'. Đó là khá lame trong quan điểm của tôi. –
@David: Đó là lý do tôi hỏi - khách hàng không phải người Đức của chúng tôi phàn nàn về Strg + Z, v.v. trong các menu của họ. Họ muốn ít nhất Ctrl + Z hoặc - thậm chí tốt hơn tất nhiên - tương đương với ngôn ngữ của họ. Và điều này xảy ra ngay cả với các menu không phải chủ sở hữu (với D2007). –
Còn gì nữa, nếu họ chỉ dừng sử dụng các menu vẽ của chủ sở hữu (vì Vista bạn không cần chủ sở hữu vẽ để lấy nét vẽ) thì hệ thống sẽ sắp xếp nó ra. –