Printf (__ ()) như thế nào; công việc?


12

Hôm nay tôi làm việc thông qua một chủ đề để hiểu rõ hơn về WordPress và tạo khuôn mẫu. Tôi phát hiện ra điều này:

<?php 
printf( 
    __('Designed by %s', 'Anyword'), 
    '<a href="http://www.example.com">Blub</a>'
); 
?>

Tôi biết nó hiển thị "Thiết kế bởi Blub" (Trường hợp Blub được liên kết) Nhưng __()ý nghĩa của nó là gì hoặc tại sao lại có chuỗi chèn? Anyword là gì?

Ai đó có thể giải thích chính xác dòng này cho tôi?

Câu trả lời:


8

Nó được sử dụng để dịch văn bản .

Đối số thứ hai là một loại không gian tên (được gọi là tên miền ở đây) để truy xuất bản dịch (ví dụ từ một tệp chuyên dụng hoặc một cái gì đó khác).

Vì vậy, Anywordở đây, nên là người đứng đằng sau khuôn mẫu, hoặc công ty hoặc những gì có thể là một miền / không gian tên.

biên tập:

Tài liệu từ wordpress cung cấp thêm lời giải thích về cách quốc tế hóa một plugin :


Thêm mã này vào mã Plugin để đảm bảo (các) tệp ngôn ngữ được tải:

load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );

Để tìm nạp một chuỗi, chỉ cần sử dụng __('String name','your-unique-name');để trả về bản dịch hoặc _e('String name','your-unique-name');để lặp lại bản dịch. Bản dịch sau đó sẽ đi vào thư mục / ngôn ngữ của plugin của bạn.


Đối với plugin / theme của bạn, your-unique-namedường như là vậy Anyword.


Có một số tập tin ngôn ngữ trong chủ đề. Làm thế nào để tranh luận biết chỉ sử dụng chúng cho 'Anyword'?

Tôi đã cập nhật câu trả lời của mình với phần tốt hơn từ tài liệu WP.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.