do_action( 'wpml_register_single_string', string $context, string $name, string $value )
- Loại
- action
- Danh mục
- Chèn nội dung
- Phiên bản WPML
- 3.2
Miêu tả
Đăng ký một chuỗi văn bản riêng lẻ để dịch (trái ngược với một chuỗi văn bản thuộc một gói). Hành động này thường được sử dụng cho các văn bản do người dùng nhập, hay còn được gọi là “các chuỗi văn bản động”.
Để truy xuất một bản dịch chuỗi, vui lòng xem: wpml_translate_single_string
Để đăng ký một chuỗi văn bản thuộc một gói, vui lòng xem: wpml_register_string
Lưu ý: hook này yêu cầu module WPML Dịch Chuỗi
Đối số
- $context
- (chuỗi) (Bắt buộc) Giá trị này cung cấp ngữ cảnh cho chuỗi văn bản mà bạn sắp đăng ký. Đây thường sẽ là tên của plugin hoặc giao diện, ở định dạng con người có thể đọc được
- $name
- (chuỗi) (Bắt buộc) Tên của chuỗi văn bản giúp người dịch hiểu được những gì đang được dịch
- $value
- (chuỗi) (Bắt buộc) Chuỗi văn bản cần được dịch
- $allow_empty_value
- (bool: mặc định là false) (Tùy chọn) Có cho phép giá trị trống hay không
- $source_lang_code
- (chuỗi) (Tùy chọn) Mã ngôn ngữ cho chuỗi văn bản đã đăng ký
Ví dụ sử dụng
Hãy tưởng tượng bạn đã tạo một widget tùy chỉnh với trường nhập tiêu đề và một số tùy chọn khác. Bạn có thể đăng ký tiêu đề của widget để dịch bằng cách sử dụng apply_filters nhưng bạn cũng muốn đăng ký văn bản nhập vào mà bạn có thể lưu trong các trường tùy chọn khác của widget.
Việc đăng ký các văn bản nhập vào để dịch được thực hiện tốt nhất khi các tùy chọn của widget được lưu hoặc cập nhật, tức là bên trong phương thức ‘update’ của các widget.
Dưới đây là ví dụ về đoạn mã. Widget tùy chỉnh trong ví dụ của chúng tôi có một tiêu đề, một trường nhập một dòng và một textarea.
Ví dụ
function update($new_instance, $old_instance){
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['custom_input'] = strip_tags($new_instance['custom_input']);
$instance['custom_textarea'] = $new_instance['custom_textarea'];
//WPML
/**
* register strings for translation
*/
do_action( 'wpml_register_single_string', 'Widgets', 'Custom Widget - input field', $instance['custom_input'] );
do_action( 'wpml_register_single_string', 'Widgets', 'Custom Widget - textarea field', $instance['custom_textarea'] );
//WPML
return $instance;
}
Đoạn mã trên cho WPML biết rằng văn bản do người dùng nhập cho trường nhập và textarea cần được dịch. Các văn bản sẽ được đăng ký dưới ngữ cảnh chuỗi Widgets với tên lần lượt là Custom Widget – input field và Custom Widget – textarea field.
Các hook liên quan
wpml_set_element_language_details, wpml_make_post_duplicates, wpml_admin_make_post_duplicates, wpml_copy_post_to_language, wpml_delete_package, wpml_import_get_trid_from_imported_translations, wpml_register_string, wpml_show_package_language_ui, wpml_delete_package_action