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 đá pháp 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 đá pháphiện tạiPhiên bản hoặc kèo bóng đá pháp trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

46.2. Cho kèo bóng đá pháp

46.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 đá pháp 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 kèo bóng đá pháp C.

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

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

    #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ử kèo bóng đá pháp cho 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 không có NLS được cấu hình.)

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

    #define _ (x) getText (x)

    12309_12446EREPORT ()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 đá pháp. 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 đá pháp, như được cung cấp trongTextdomain ()cuộc gọi.

    13245_13262

    Danh sách các bản dịch được cung cấp - trống trong bắt đầu.

    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ằngGetText13652_13851"Tệp"là A+và từ thứ hai là kèo bóng đá pháp tệp mà chứa kèo bóng đá pháp 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 đá pháp 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: 2(kèo bóng đá pháp Đối số thứ hai).

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.

46.2.2. Hướng dẫn viết thông điệp

Dưới đây là một số hướng dẫn kèo bóng đá pháp các thông điệp viết 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ọi gettext () trên mỗi mảnh, các mảnh có thể không dịch Vâng riêng biệt. Tốt hơn là sao chép kèo bóng đá pháp ít mã nên Rằng mỗi thông điệp được dịch là kèo bóng đá pháp tổng thể mạch lạc. Chỉ 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 kèo bóng đá pháp 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. Một số ngôn ngữ có nhiều hơn hai ngôn ngữ hình thức, với một số quy tắc đặc biệt. Chúng tôi có thể có một giải pháp kèo bóng đá pháp điều này trong tương lai, nhưng bây giờ vấn đề là tốt nhất nên tránh toàn bộ. Bạn có thể viết:

    printf ("số lượng tệp được sao chép: %d", n);
  • 16608_16829kèo bóng đá pháp dịch, ví dụ:

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