Einzelne Wörter in WordPress übersetzen – String via functions.php übersetzen
Oft will man als Entwickler oder Agentur nur einzelne Wörter oder Phrasen innerhalb des Designs oder der Plugins übersetzen. Neben dem Anpassen der Sprachdateien innerhalb des Designs oder der Plugins bietet sich hier die Übersetzung via functions.php an.
Für das Übersetzen von Ganzen Webseiten oder Inhalten eignet sich dafür spezialisierte Plugins wie:
- WPML
- Weglot
- Polylang
- MultilingualPress
- TranslatePress
Hier kann man also direkt in die functions.php des Child Themes oder des eigentlichen Themes die Übersetzungen anlegen.
add_filter('gettext', 'translate_text'); add_filter('ngettext', 'translate_text'); function translate_text($translated) { $translated = str_ireplace('Original', 'Ihr Text', $translated); $translated = str_ireplace('Original', 'Ihr Text', $translated); $translated = str_ireplace('Original', 'Ihr Text', $translated); return $translated; }
Anzupassen ist dabei immer die Zeile:
$translated = str_ireplace('Original', 'Ihr Text', $translated);
Es gibt noch eine zweite Möglichkeit Texte innerhalb functions.php zu übersetzen:
function translate_text($text_to_translate) { if ($text_to_translate == 'Original') { $text_to_translate ='Ihr Text'; } if ($text_to_translate == 'Original Text 2') { $text_to_translate = 'Ihr zweiter Text'; } return $text_to_translate; } add_filter('gettext', 'translate_text', 20);
Hier ersetzen Sie einfach den String in der falschen Sprache durch Ihre Übersetzung, so sparen Sie sich die Übersetzung der po, .mo und .pot Dateien.