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

57.2. kèo bóng đá cúp c2#

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

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ượ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 kèo bóng đá cúp c2 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);

    (GetText12463_12522

    Điều này có xu hướng thêm nhiều sự lộn xộn. Một 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 kèo bóng đá cúp c2 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ọiGetTextNội bộ trên tất cả kèo bóng đá cúp c2 chuỗi đầu vào.

  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 đọc dưới dạng Makefile. 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 kèo bóng đá cúp c2, như được cung cấp trongTextdomain ()cuộc gọi.

    GetText_Files

    Danh sách kèo bóng đá cúp c2 tệp có chứa kèo bóng đá cúp c2 chuỗi có thể dịch, tức là, kèo bóng đá cúp c2 tệp được đánh dấu bằngGetText13768_13919HồiFILEHànglà A+và từ thứ hai là một tệp chứa một tên tệp trên mỗi dòng.

    GetText_Triggers

    kèo bóng đá cúp c2 công cụ tạo danh mục tin nhắn để kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 đị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: 214663_14777func: 1,2(Xác định kèo bóng đá cúp c2 đối số thông điệp số ít và số nhiều).

  4. Thêm tệpPO/Linguas, sẽ chứa danh sách kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 danh mục tin nhắn.

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

Dưới đây là một số hướng dẫn để viết kèo bóng đá cúp c2 tin nhắn dễ dàng dịch.

  • Không xây dựng kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 ngôn ngữ khác. Ngoài ra, ngay cả khi bạn nhớ gọigetText ()Trên mỗi mảnh, kèo bóng đá cúp c2 mảnh có thể không dịch riêng biệt. Tốt hơn là sao chép một ít mã để mỗi tin nhắn được dịch là một tổng thể mạch lạc. Chỉ kèo bóng đá cúp c2 số, tên tệp và kèo bóng đá cúp c2 biến thời gian chạy giống như vậy phải được chèn vào thời gian chạy vào một 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. Tốt nhất là thiết kế thông điệp để tránh vấn đề hoàn toàn, ví dụ 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 hợp, có sự hỗ trợ kèo bóng đá cúp c2 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 một cái gì đó như thế này:

    17348_17450

    Đố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. kèo bóng đá cúp c2 đối số tiếp theo được định dạng trên mỗi chuỗi định dạng như bình thường. .nlà 1 hoặc không 1, nhưng trong kèo bóng đá cúp c2 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à một 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.

    18299_18368errmsghoặcerrdetailBáo cáo, bạn phải sử dụng hàm cơ bảnngetText. Xem tài liệu GetText.

  • 18626_18823kèo bóng đá cúp c2 dịch, ví dụ:

    18910_18972

    Những bình luận này được sao chép vào kèo bóng đá cúp c2 tệp danh mục tin nhắn để kèo bóng đá cúp c2 dịch giả có thể nhìn thấy chúng.

Gửi sửa

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 khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.