Postgresql 9.3.25 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 50. Bản địa Hỗ trợ ngôn ngữ | Tiếp theo |
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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá C.
Thêm hỗ trợ NLS vào chương cách đọc kèo bóng đá
Chèn mã này vào chuỗi khởi động của chương cách đọc kèo bóng đá:
#ifdef enable_nls #include <locale.h #endif ... #ifdef enable_nls setLocale (lc_all, ""); bindtextdomain ("Tiên lượng", Localedir); Textdomain ("Tiên lượng"); #endif
(TheTiên lượngthực sự có thể được chọn tự do.)
Bất cứ nơi nào một thông điệp là ứng cử viên cách đọc kèo bóng đá bản dịch được tìm thấy,
một cuộc gọi đếngetText ()
cần phải đượ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à NO-OP nếu NLS Hỗ trợ không được cấu hình.)
11841_11909
#define _ (x) getText (x)
Một giải pháp khác là khả thi nếu chương cách đọc kèo bóng đá 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 ()
12128_12180GetText
bên trong
Tất cả các chuỗi đầu vào.
Thêm tệpnls.mkTrong thư mục với các nguồn chương cách đọc kèo bóng đá. Tệp này sẽ được đọc dưới dạng Makefile. Các Các bài tập biến sau cần được thực hiện tại đây:
Tên chương cách đọc kèo bóng đá, như được cung cấp trongTextdomain ()
cuộc gọi.
Danh sách các bản dịch được cung cấp - ban đầu trống.
Danh sách các tệp có chứa các chuỗi có thể dịch, tức là, các tệp
được đánh dấu bằngGetText
12933_13084"Tệp"là A+Và từ thứ hai là một tệp chứa một tên tệp cách đọc kèo bóng đá mỗi
đường kẻ.
các công cụ tạo danh mục tin nhắn cách đọc kèo bóng đá các dịch giả
Làm việc với nhu cầu để biết những cuộc gọi chức năng nào có thể dịch được
chuỗi. Theo mặc định, chỉgetText ()
Cuộc gọi được biết đến. Nếu bạn đã sử dụng_
hoặc
Số nhận dạng khác bạn cần liệt kê chúng ở đây. Nếu có thể dịch
Chuỗi không phải là đối số đầu tiên, mục cần phải ở dạngfunc: 2(Đối với đối số thứ hai). Nếu bạn
có cách đọc kèo bóng đá chức năng hỗ trợ các tin nhắn đa hóa, mục nên
trông giống nhưfunc: 1,2(Xác định
Đối số cách đọc kèo bóng đá điệp số ít và số nhiều).
Hệ thống xây dựng sẽ tự động chăm sóc tòa nhà và cài đặt danh mục tin nhắn.
Dưới đây là cách đọc kèo bóng đá số hướng dẫn để viết các tin nhắn dễ dàng có thể dịch.
Không xây dựng các 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 trong các câu khác
ngôn ngữ. Ngoài ra, ngay cả khi bạn nhớ gọigetText ()
Trên mỗi mảnh, các mảnh có thể
không dịch tốt riêng biệt. Tốt hơn là sao chép cách đọc kèo bóng đá chút
Mã để mỗi thông báo được dịch là cách đọc kèo bóng đá tổng thể mạch lạc.
Chỉ các số, tên tệp và các biến thời gian chạy giống như vậy nên
được chèn vào thời gian chạy vào cách đọc kèo bóng đá văn bản tin nhắn.
Vì những lý do tương tự, điều này sẽ không hoạt động:
printf ("được 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) printf ("Sao chép 1 tệp"); khác printf ("được sao chép %d tệp", n):
Sau đó thất vọng. Một số ngôn ngữ có nhiều hơn hai hình thức, với một số quy tắc đặc biệt. Nó thường tốt nhất để thiết kế thông điệp cách đọc kèo bóng đá Chẳng hạn, tránh vấn đề như thế này:
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 một thông điệp đa nguyên,
Có sự hỗ trợ cách đọc kèo bóng đá điều này, nhưng nó hơi khó xử. Khi tạo ra
Thông báo lỗi chính hoặc chi tiết trongEREPORT ()
, bạn có thể viết cách đọc kèo bóng đá cái gì đó như thế này:
15752_15852
15860_16320nlà 1 hoặc không 1, Nhưng trong các ngôn ngữ khác có thể có nhiều hình thức số nhiều khác nhau. Người dịch coi hai biểu mẫu tiếng Anh là cách đọc kèo bóng đá nhóm và có cơ hội cung cấp nhiều chuỗi thay thế, với cách đọc kèo bóng đá cái 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 cách đọc kèo bóng đá thông điệp không trực tiếp đến
MỘTerrmsg
hoặc16792_16803
Báo cáo, bạn phải sử dụng cơ bản
chức năngngetText
. Xem gettext
Tài liệu.
Nếu bạn muốn truyền đạt một cái gì đó cách đọc kèo bóng đá người dịch, chẳng hạn như về cách một thông báo được dự định để xếp hàng với đầu ra khác, trước sự xuất hiện của chuỗi với một nhận xét bắt đầu vớicách đọc kèo bóng đá dịch, ví dụ:
/* cách đọc kèo bóng đá 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 các tệp danh mục tin nhắn để các dịch giả có thể nhìn thấy chúng.