Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2
Tài liệu này dành kèo bóng đá cúp c2 phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang kèo bóng đá cúp c2hiện tạiPhiên bản hoặc kèo bóng đá cúp c2 trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

48.2. Cho kèo bóng đá cúp c2

48.2.1. Cơ học

Phần này mô tả cách thực hiện ngôn ngữ bản địa Hỗ trợ trong một chương kèo bóng đá cúp c2 hoặc thư viện là một phần củaPostgreSQL10923_10985

Thêm hỗ trợ NLS vào chương kèo bóng đá cúp c2

  1. Chèn mã này vào chuỗi khởi động của chương kèo bóng đá cúp c2:

    #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ượngcó thể thực sự được chọn tự do.)

  2. Bất cứ nơi nào một thông điệp là ứng cử viên kèo bóng đá cúp c2 bản dịch được tìm thấy, một cuộc gọi đếngetText ()Cần được chèn. Ví dụ.:

    fprintf (stderr, "panic level %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ó op Nếu hỗ trợ NLS không được cấu hình.)

    Điều này có xu hướng thêm nhiều sự lộn xộn. kèo bóng đá cúp c2 phổ biến phím tắt là sử dụng:

    #define _ (x) getText (x)

    Giải pháp khác là khả thi nếu chương kèo bóng đá cúp c2 thực hiện nhiều về giao tiếp của nó thông qua một hoặc một vài chức năng, như vậy BẰNGEREPORT ()Trong phụ trợ. Sau đó bạn thực hiện chức năng này gọiGetTextNội bộ trên tất cả các đầu vào chuỗi.

  3. Thêm tệpnls.mkTrong Thư mục với các nguồn chương kèo bóng đá cúp c2. Tệp này sẽ Đọc như một makefile. Các bài tập biến sau cần được thực hiện ở đây:

    catalog_name

    Tên chương kèo bóng đá cúp c2, 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.

    gettext_files

    Danh sách các tệp có chứa chuỗi có thể dịch, tức là, những người được đánh dấu bằngGetTexthoặc một giải pháp thay thế giải pháp. Cuối cùng, điều này sẽ bao gồm gần như tất cả tập tin nguồn của chương kèo bóng đá cúp c2. Nếu danh sách này quá dài bạn có thể làm cho đầu tiên"Tệp"là A+và từ thứ hai là kèo bóng đá cúp c2 tệp mà chứa kèo bóng đá cúp c2 tên tệp trên mỗi dòng.

    GetText_Triggers

    Các công cụ tạo danh mục tin nhắn kèo bóng đá cúp c2 người dịch để làm việc cần biết chức năng nào Các cuộc gọi chứa các chuỗi có thể dịch. Theo mặc định, chỉ mộtgetText ()cuộc gọi được biết đến. Nếu bạn đã sử dụng_hoặc các định danh khác bạn cần Để liệt kê chúng ở đây. Nếu chuỗi có thể dịch là Không phải là đối số đầu tiên, mục cần phải của hình thứcfunc: 214739_14901func: 1,2(Xác định các đối số kèo bóng đá cúp c2 đ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.

48.2.2. Hướng dẫn viết kèo bóng đá cúp c2 điệp

Dưới đây là kèo bóng đá cúp c2 số hướng dẫn để viết các tin nhắn dễ dàng 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 nhau trong các ngôn ngữ khác. Ngoài ra, ngay cả khi bạn nhớ gọigetText ()trên mỗi mảnh, Các mảnh vỡ có thể không dịch riêng biệt. Của nó Tốt hơn là sao chép kèo bóng đá cúp c2 mã nhỏ để mỗi tin nhắn đến Được dịch là kèo bóng đá cúp c2 tổng thể mạch lạc. Chỉ số, tập tin Tên và các biến thời gian chạy giống như như vậy nên được chèn lúc chạy vào kèo bóng đá cúp c2 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 ("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 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. kèo bóng đá cúp c2 số ngôn ngữ có nhiều hơn hai ngôn ngữ hình thức, với kèo bóng đá cúp c2 số quy tắc đặc biệt. Nó thường tốt nhất để thiết kế Thông điệp để tránh vấn đề hoàn toà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 đa nguyên hợp Thông điệp, có sự hỗ trợ kèo bóng đá cúp c2 điều 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 kèo bóng đá cúp c2 cái gì đó như thế này:

    17174_17276

    Đối số đầu tiên là chuỗi định dạng phù hợp kèo bóng đá cúp c2 Mẫu đơn lẻ tiếng Anh, thứ hai là chuỗi định dạng thích hợp kèo bóng đá cúp c2 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ử dụng. Các đối số tiếp theo được định dạng theo định dạng chuỗi như bình thường. (Thông thường, giá trị kiểm soát đa nguyên cũng sẽ là một trong những giá trị được định dạng, vì vậy nó có được viết hai lần.) Trong tiếng Anh, nó chỉ quan trọng liệun17848_18158n.

    Nếu bạn cần đa hóa kèo bóng đá cúp c2 thông điệp không xảy ra trực tiếp đến kèo bóng đá cúp c2errmsghoặcerrdetailBáo cáo, bạn phải sử dụng chức năng cơ bảnngetText. Xem gettext Tài liệu.

  • Nếu bạn muốn truyền đạt thứ gì đó kèo bóng đá cúp c2 người dịch, chẳng hạn như về cách một tin nhắn được dự định để xếp hàng với đầu ra khác, đi trước sự xuất hiện của chuỗi với Nhận xét bắt đầu bằngkèo bóng đá cúp c2 dịch, ví dụ:

    /* kèo bóng đá cúp c2 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.