do_action( 'wpml_register_single_string', string $context, string $name, string $value )
- Тип
- action
- Категория
- Вставка контента
- Версия WPML
- 3.2
Описание
Регистрирует отдельную текстовую строку для перевода (в отличие от строки, которая является частью пакета). Это действие обычно используется для текстов, вводимых пользователем, также называемых «динамическими текстовыми строками».
Для получения перевода строки см.: wpml_translate_single_string
Для регистрации текстовой строки, которая является частью пакета, см.: wpml_register_string
Примечание: Для этого хука требуется модуль WPML Перевод строк
Аргументы
- $context
- (string) (Обязательно) Это значение задает контекст для строки, которую Вы собираетесь зарегистрировать. Обычно это название плагина или темы оформления в удобочитаемом формате
- $name
- (string) (Обязательно) Имя строки, которое помогает переводчику понять, что именно переводится
- $value
- (string) (Обязательно) Строка, которую необходимо перевести
- $allow_empty_value
- (bool: по умолчанию false) (Необязательно) Разрешено ли пустое значение
- $source_lang_code
- (string) (Необязательно) Код языка для зарегистрированной строки
Пример использования
Представьте, что Вы создали пользовательский виджет с полем ввода для заголовка и некоторыми другими параметрами. Вы можете зарегистрировать заголовок виджета для перевода с помощью apply_filters, но Вы также хотите зарегистрировать вводимый текст, который можно сохранить в других полях параметров виджета.
Регистрировать вводимые тексты для перевода лучше всего при сохранении или обновлении параметров виджета, т. е. внутри метода «update» виджетов.
Ниже приведен пример того, как может выглядеть этот код. В нашем примере пользовательского виджета есть заголовок, однострочное поле ввода и текстовая область.
Пример
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;
}
Приведенный выше код сообщает WPML, что введенный пользователем текст для поля ввода и текстовой области необходимо перевести. Эти тексты будут зарегистрированы в контексте строк Widgets с именами Custom Widget – input field и Custom Widget – textarea field соответственно.
Связанные хуки
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