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

47.2. Cho soi kèo bóng đá truoctran

47.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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran C.

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

  1. 11117_11188

    #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 soi kèo bóng đá truoctran 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. soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran. 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 soi kèo bóng đá truoctran, 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ằngGetText13664_13863"Tệp"là A+và từ thứ hai là soi kèo bóng đá truoctran tệp mà chứa soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 số nhận dạng khác mà 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(soi kèo bóng đá truoctran Đối số thứ hai). Nếu bạn có một chức năng Hỗ trợ các thông điệp đa nguyên, mục nên xem xét giốngfunc: 1,2(Xác định các đối số soi kèo bóng đá truoctran đ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.

47.2.2. Hướng dẫn viết soi kèo bóng đá truoctran điệp

Đây là một số hướng dẫn soi kèo bóng đá truoctran 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ọigetText ()15796_16116

  • 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 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. soi kèo bóng đá truoctran số ngôn ngữ có nhiều hơn hai ngôn ngữ hình thức, với soi kèo bóng đá truoctran 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ợ soi kèo bóng đá truoctran đ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 soi kèo bóng đá truoctran cái gì đó như thế này:

    17158_17260

    17277_17801nlà 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 hình thức tiếng Anh là soi kèo bóng đá truoctran nhóm và có cơ hội cung cấp nhiều chuỗi thay thế, với 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 nhiều thông điệp không có trực tiếp đến soi kèo bóng đá truoctranerrmsghoặcerrdetailBáo cáo, bạn phải sử dụng chức năng cơ bảnngetText18457_18499

  • Nếu bạn muốn truyền đạt một cái gì đó soi kèo bóng đá truoctran 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ằngsoi kèo bóng đá truoctran dịch, ví dụ:

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