Function Call by Reference
-
Hi everybody,
I am using the following code in a plugin in order to change some specific translated strings for a plugin and for my theme. (I could change the translations itself into the .po .mo files, but I would have to do it after each update of the plugin or of the theme. Including this code in a separate plugin avoids these updates.)
register_activation_hook( __FILE__, 'Corrections_install' ); function Corrections_install() { global $wp_version; if (version_compare($wp_version, '4.1', '<' )) wp_die( 'This plugin requires WordPress version 4.1 or higher.' ); }; /* * Filter the translation string before it is displayed. * * @param $translation The current translation * @param $text The text to translate * @param $domain The domain for the translation * @return string The translated / filtered text. */ function filter_gettext($translation, $text, $domain) { $translations = &get_translations_for_domain($domain); /* Menus de langues et de pages sur les appareils mobiles */ if ($domain == 'catch-box') { /* Menu de gauche (les langues) */ if (($text == 'Menu') && (function_exists('pll_current_language'))) { switch (pll_current_language()) { case 'en': return $translations->translate('Languages'); case 'fr': return $translations->translate('Langues'); case 'ar': return $translations->translate('اللغات'); }; }; /* Menu de droite (les pages) */ if ($text == 'Secondary Menu') return $translations->translate(' '); }; /* Typos dans les messages du widget calendrier */ if (($domain == 'google-calendar-events') && ($text == 'Nothing from %1$s to %2$s.')) { switch ($translation) { case 'Rien de %1$s à %2$s.': return $translations->translate('Rien du %1$s au %2$s.'); case 'لا شيئ من %1$s إلى %2$s.': return $translations->translate('لا شيء من %1$s إلى %2$s.'); }; }; return $translation; }; add_filter('gettext', 'filter_gettext', 10, 3);It works perfectly, but I am using $translations = &get_translations_for_domain($domain);, which seems not to be strongly recommanded.
What do you think? Should I change my code? And how?
Thanks!
Rémi
The topic ‘Function Call by Reference’ is closed to new replies.