do_action( 'wpml_register_single_string', string $context, string $name, string $value )
- Typ
- action
- Kategorie
- Einfügen von Inhalten
- WPML-Version
- 3.2
Beschreibung
Registriert einen einzelnen Text-String zur Übersetzung (im Gegensatz zu einem String, der Teil eines Pakets ist). Diese Aktion wird normalerweise für Texte aus Benutzereingaben verwendet, die auch als „dynamische Text-Strings“ bezeichnet werden.
Für den Abruf einer String-Übersetzung siehe: wpml_translate_single_string
Für die Registrierung eines Text-Strings, der Teil eines Pakets ist, siehe: wpml_register_string
Hinweis: Dieser Hook erfordert das Modul WPML String-Übersetzung
Argumente
- $context
- (string) (Erforderlich) Dieser Wert gibt dem String, den Sie registrieren möchten, einen Kontext. Dies ist normalerweise der Name des Plugins oder Themes in einem für Menschen lesbaren Format
- $name
- (string) (Erforderlich) Der Name des Strings, der dem Übersetzer hilft, zu verstehen, was übersetzt wird
- $value
- (string) (Erforderlich) Der String, der übersetzt werden muss
- $allow_empty_value
- (bool: standardmäßig false) (Optional) Ob ein leerer Wert zulässig ist oder nicht
- $source_lang_code
- (string) (Optional) Der Sprachcode für den registrierten String
Anwendungsbeispiel
Stellen Sie sich vor, Sie haben ein benutzerdefiniertes Widget mit einem Titel-Eingabefeld und einigen anderen Optionen erstellt. Sie können den Widget-Titel für die Übersetzung mit apply_filters registrieren, aber Sie möchten auch den Eingabetext registrieren, den Sie in den anderen Optionsfeldern des Widgets speichern können.
Das Registrieren von Eingabetexten für die Übersetzung erfolgt am besten, wenn die Widget-Optionen gespeichert oder aktualisiert werden, d. h. innerhalb der „update“-Methode von Widgets.
Unten finden Sie ein Beispiel dafür, wie der Code aussehen könnte. Unser benutzerdefiniertes Beispiel-Widget verfügt über einen Titel, ein einzeiliges Eingabefeld und einen Textbereich.
Beispiel
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;
}
Der obige Code teilt WPML mit, dass der Benutzereingabetext für das Eingabefeld und den Textbereich übersetzt werden muss. Die Texte werden unter dem String-Kontext Widgets mit den Namen Custom Widget – input field bzw. Custom Widget – textarea field registriert.
Verwandte Hooks
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