do_action( 'wpml_register_single_string', string $context, string $name, string $value )
- Tipo
- action
- Categoria
- Inserimento di contenuti
- Versione di WPML
- 3.2
Descrizione
Registra una singola stringa di testo per la traduzione (a differenza di una stringa che fa parte di un pacchetto). Questa azione viene solitamente usata per i testi inseriti dall’utente, altrimenti noti come “stringhe di testo dinamiche”.
Per recuperare la traduzione di una stringa vedi: wpml_translate_single_string
Per registrare una stringa di testo che fa parte di un pacchetto vedi: wpml_register_string
Nota: questo hook richiede il modulo WPML Traduzione stringhe
Argomenti
- $context
- (string) (Obbligatorio) Questo valore fornisce un contesto alla stringa che stai per registrare. Di solito si tratta del nome del plugin o del tema, in un formato leggibile
- $name
- (string) (Obbligatorio) Il nome della stringa che aiuta il traduttore a capire cosa viene tradotto
- $value
- (string) (Obbligatorio) La stringa che deve essere tradotta
- $allow_empty_value
- (bool: false per impostazione predefinita) (Opzionale) Se è consentito o meno un valore vuoto
- $source_lang_code
- (string) (Opzionale) Il codice della lingua per la stringa registrata
Esempio di utilizzo
Immagina di aver creato un widget personalizzato con un campo di input per il titolo e alcune altre opzioni. Puoi registrare il titolo del widget per la traduzione utilizzando apply_filters, ma vuoi registrare anche il testo di input che puoi salvare negli altri campi delle opzioni del widget.
La registrazione dei testi di input per la traduzione si esegue al meglio quando le opzioni del widget vengono salvate o aggiornate, ossia all’interno del metodo ‘update’ dei widget.
Di seguito è riportato un esempio di come potrebbe apparire il codice. Il nostro widget personalizzato di esempio ha un titolo, un campo di input a riga singola e un’area di testo.
Esempio
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;
}
Il codice precedente indica a WPML che il testo inserito dall’utente per il campo di input e l’area di testo deve essere tradotto. I testi verranno registrati nel contesto delle stringhe Widgets, rispettivamente con i nomi Custom Widget – input field e Custom Widget – textarea field.
Hook correlati
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