do_action( 'wpml_register_single_string', string $context, string $name, string $value )
- Tipo
- action
- Categoria
- Inserir conteúdo
- Versão do WPML
- 3.2
Descrição
Registra uma string de texto individual para tradução (ao contrário de uma string que faz parte de um pacote). Essa ação geralmente é usada para textos de entrada do usuário, também conhecidos como “strings de texto dinâmicas”.
Para recuperar a tradução de uma string, consulte: wpml_translate_single_string
Para registrar uma string de texto que faz parte de um pacote, consulte: wpml_register_string
Nota: Este hook requer o módulo WPML Tradução de Strings
Argumentos
- $context
- (string) (Obrigatório) Este valor dá um contexto à string que você está prestes a registrar. Geralmente, este será o nome do plugin ou tema, em um formato legível por humanos
- $name
- (string) (Obrigatório) O nome da string que ajuda o tradutor a entender o que está sendo traduzido
- $value
- (string) (Obrigatório) A string que precisa ser traduzida
- $allow_empty_value
- (bool: false por padrão) (Opcional) Se um valor vazio é permitido ou não
- $source_lang_code
- (string) (Opcional) O código do idioma para a string registrada
Exemplo de uso
Imagine que você criou um widget personalizado com um campo de entrada de título e algumas outras opções. Você pode registrar o título do widget para tradução usando apply_filters, mas você também quer registrar o texto de entrada que você pode salvar nos outros campos de opção do widget.
O registro de textos de entrada para tradução é melhor realizado quando as opções do widget são salvas ou atualizadas, ou seja, dentro do método ‘update’ dos widgets.
Abaixo está um exemplo de como o código pode ficar. Nosso widget personalizado de exemplo tem um título, um campo de entrada de linha única e uma área de texto.
Exemplo
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 código acima diz ao WPML que o texto de entrada do usuário para o campo de entrada e a área de texto precisa ser traduzido. Os textos serão registrados sob o contexto de strings Widgets com o nome Custom Widget – input field e Custom Widget – textarea field, respectivamente.
Hooks relacionados
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