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 cách đọc kèo bóng đá phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang cách đọc kèo bóng đáhiện tạiPhiên bản hoặc cách đọc kèo bóng đá trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

50.2. Cho cách đọc kèo bóng đá

50.2.1. Cơ học

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 đá

  1. 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.)

  2. 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_12180GetTextbên trong Tất cả các chuỗi đầu vào.

  3. 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:

    catalog_name

    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.

    gettext_files

    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ằngGetText12933_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ẻ.

    GetText_Triggers

    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.

50.2.2. Hướng dẫn viết cách đọc kèo bóng đá điệp

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ỘTerrmsghoặc16792_16803Bá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.