Phần này mô tả cách thực hiện hỗ trợ ngôn ngữ bản địa trong một chương soi kèo bóng đá truoctran hoặc thư viện là một phần củaPostgreSQLPhân phối. Hiện tại, nó chỉ áp dụng cho các chương soi kèo bóng đá truoctran C.
Thêm hỗ trợ NLS vào chương soi kèo bóng đá truoctran
Chèn mã này vào chuỗi khởi động của chương soi kèo bóng đá truoctran:
#ifdef enable_nlsTiên lượng
", Localedir);Tiên lượng
");
(TheTiên lượng
thực sự có thể được chọn tự do.)
Bất cứ nơi nào soi kèo bóng đá truoctran thông điệp là ứng cử viên cho dịch được tìm thấy, soi kèo bóng đá truoctran cuộc gọi đếngetText ()
cần được chèn. Ví dụ.:
fprintf (stderr, "mức độ hoảng loạn %d \ n", lvl);
sẽ được thay đổi thành:
fprintf (stderr, getText ("panic level %d \ n"), lvl);
(GetText
được định nghĩa là không có hỗ trợ NLS nếu không được cấu hình.)
Điều này có xu hướng thêm nhiều sự lộn xộn. soi kèo bóng đá truoctran phím tắt phổ biến là sử dụng:
#Define _ (x) getText (x)
Một giải pháp khác là khả thi nếu chương soi kèo bóng đá truoctran thực hiện nhiều giao tiếp thông qua một hoặc một vài chức năng, chẳng hạn nhưEREPORT ()
Trong phần phụ trợ. Sau đó bạn thực hiện chức năng này gọiGetText
Nội bộ trên tất cả soi kèo bóng đá truoctran chuỗi đầu vào.
Thêm tệpnls.mk
Trong thư mục với các nguồn chương soi kèo bóng đá truoctran. Tệp này sẽ được đọc dưới dạng Makefile.
catalog_name
Tên chương soi kèo bóng đá truoctran, như được cung cấp trongTextDomain ()
cuộc gọi.
GetText_Files
Danh sách soi kèo bóng đá truoctran tệp có chứa soi kèo bóng đá truoctran chuỗi có thể dịch, tức là, soi kèo bóng đá truoctran tệp được đánh dấu bằngGetText
hoặc một giải pháp thay thế. Cuối cùng, điều này sẽ bao gồm gần như tất cả các tệp nguồn của chương soi kèo bóng đá truoctran.FILElà A+
và từ thứ hai là soi kèo bóng đá truoctran tệp chứa soi kèo bóng đá truoctran tên tệp trên mỗi dòng.
GetText_Triggers
soi kèo bóng đá truoctran công cụ tạo danh mục tin nhắn để soi kèo bóng đá truoctran dịch giả làm việc cần biết những cuộc gọi chức năng nào chứa soi kèo bóng đá truoctran chuỗi có thể dịch. Theo mặc định, chỉgetText ()
Cuộc gọi được biết đến. Nếu bạn đã sử dụng_
hoặc soi kèo bóng đá truoctran định danh khác mà bạn cần liệt kê chúng ở đây. Nếu chuỗi có thể dịch không phải là đối số đầu tiên, mục này cần phải ở dạngfunc: 2
(Đối với đối số thứ hai). Nếu bạn có soi kèo bóng đá truoctran chức năng hỗ trợ các tin nhắn đa hóa, mục sẽ trông giống nhưfunc: 1,2
(Xác định soi kèo bóng đá truoctran đối số thông điệp số ít và số nhiều).
Thêm tệpPO/Linguas
, trong đó sẽ chứa danh sách soi kèo bóng đá truoctran bản dịch được cung cấp - ban đầu trống.
Hệ thống xây dựng sẽ tự động chăm sóc việc xây dựng và cài đặt soi kèo bóng đá truoctran danh mục tin nhắn.
Dưới đây là soi kèo bóng đá truoctran số hướng dẫn cho các tin nhắn viết dễ dàng dịch.
Không xây dựng soi kèo bóng đá truoctran câu khi chạy, như:
printf ("Tệp là %s. \ N", cờ? "Đã sao chép": "Đã xóa");
Thứ tự từ trong câu có thể khác nhau trong soi kèo bóng đá truoctran ngôn ngữ khác. Ngoài ra, ngay cả khi bạn nhớ gọigetText ()
Trên mỗi mảnh, các đoạn có thể không dịch riêng biệt. Tốt hơn là sao chép soi kèo bóng đá truoctran ít mã để mỗi tin nhắn được dịch là soi kèo bóng đá truoctran tổng thể mạch lạc.
Vì những lý do tương tự, điều này sẽ không hoạt động:
printf ("Sao chép %d tệp %s", n, n! = 1? "S": "");
Bởi vì nó giả sử cách số nhiều được hình thành. Nếu bạn hình dung bạn có thể giải quyết nó như thế này:
if (n == 1)
Sau đó thất vọng. soi kèo bóng đá truoctran số ngôn ngữ có nhiều hơn hai hình thức, với soi kèo bóng đá truoctran số quy tắc đặc biệt.
printf ("số lượng tệp được sao chép: %d", n);
Nếu bạn thực sự muốn xây dựng soi kèo bóng đá truoctran thông điệp đa nguyên hợp, có sự hỗ trợ cho việc này, nhưng nó hơi khó xử. Khi tạo thông báo lỗi chính hoặc chi tiết trongEREPORT ()
, bạn có thể viết soi kèo bóng đá truoctran cái gì đó như thế này:
17377_17479
Đối số đầu tiên là chuỗi định dạng phù hợp với dạng số ít tiếng Anh, thứ hai là chuỗi định dạng phù hợp với dạng số nhiều tiếng Anh và thứ ba là giá trị kiểm soát số nguyên xác định dạng số nhiều sẽ sử dụng. soi kèo bóng đá truoctran đối số tiếp theo được định dạng trên mỗi chuỗi định dạng như bình thường.n
là 1 hoặc không 1, nhưng trong các ngôn ngữ khác có thể có nhiều dạng số nhiều khác nhau. Người dịch coi hai biểu mẫu tiếng Anh là soi kèo bóng đá truoctran nhóm và có cơ hội cung cấp nhiều chuỗi thay thế, với hình thức thích hợp được chọn dựa trên giá trị thời gian chạy củan
.
Nếu bạn cần đa hóa soi kèo bóng đá truoctran thông điệp không trực tiếp đếnerrmsg
hoặcerrdetail
Báo cáo, bạn phải sử dụng hàm cơ bảnngetText
. Xem tài liệu GetText.
18655_18852soi kèo bóng đá truoctran dịch
, ví dụ:
/* soi kèo bóng đá truoctran dịch: Thông báo này không phải là những gì nó có vẻ như. */
Những bình luận này được sao chép vào soi kèo bóng đá truoctran tệp danh mục tin nhắn để soi kèo bóng đá truoctran dịch giả có thể nhìn thấy chúng.
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không phù hợpMẫu nàyĐể báo cáo vấn đề tài liệu.