T Block: raise notice if target function is not callable

To catch if the L10n functions where not loaded
This commit is contained in:
2024-08-09 18:47:00 +09:00
parent 5bddc90972
commit d1fe561041

View File

@@ -72,6 +72,17 @@ class T implements BlockHandlerInterface
return strtr($str, $tr); return strtr($str, $tr);
} }
/**
* raise a notice for missing callable, indicates L10n functions where not loaded
*
* @param string $function
* @return void
*/
private function reportL10nNotInitialized(string $function): void
{
trigger_error("Missing " . $function . ", L10n::loadFunctions() called?", E_NOTICE);
}
/** /**
* main handler * main handler
* *
@@ -120,55 +131,57 @@ class T implements BlockHandlerInterface
// use plural if required parameters are set // use plural if required parameters are set
if (isset($count) && isset($plural)) { if (isset($count) && isset($plural)) {
// plural calls
if (isset($domain) && isset($context)) { if (isset($domain) && isset($context)) {
if (is_callable('_dnpgettext')) { if (is_callable('_dnpgettext')) {
$content = _dnpgettext($domain, $context, $content, $plural, $count); $content = _dnpgettext($domain, $context, $content, $plural, $count);
}/* elseif (is_callable('dnpgettext')) { } else {
$content = dnpgettext($domain, $context, $content, $plural, $count); $this->reportL10nNotInitialized('_dnpgettext');
} */ }
} elseif (isset($domain)) { } elseif (isset($domain)) {
if (is_callable('_dngettext')) { if (is_callable('_dngettext')) {
$content = _dngettext($domain, $content, $plural, $count); $content = _dngettext($domain, $content, $plural, $count);
} elseif (is_callable('dngettext')) { } else {
$content = dngettext($domain, $content, $plural, $count); $this->reportL10nNotInitialized('_dngettext');
} }
} elseif (isset($context)) { } elseif (isset($context)) {
if (is_callable('_npgettext')) { if (is_callable('_npgettext')) {
$content = _npgettext($context, $content, $plural, $count); $content = _npgettext($context, $content, $plural, $count);
}/* elseif (is_callable('npgettext')) { } else {
$content = npgettext($context, $content, $plural, $count); $this->reportL10nNotInitialized('_npgettext');
} */ }
} else { } else {
if (is_callable('_ngettext')) { if (is_callable('_ngettext')) {
$content = _ngettext($content, $plural, $count); $content = _ngettext($content, $plural, $count);
} elseif (is_callable('ngettext')) { } else {
$content = ngettext($content, $plural, $count); $this->reportL10nNotInitialized('_ngettext');
} }
} }
} else { // use normal } else {
// use normal
if (isset($domain) && isset($context)) { if (isset($domain) && isset($context)) {
if (is_callable('_dpgettext')) { if (is_callable('_dpgettext')) {
$content = _dpgettext($domain, $context, $content); $content = _dpgettext($domain, $context, $content);
}/* elseif (is_callable('dpgettext')) { } else {
$content = dpgettext($domain, $context, $content); $this->reportL10nNotInitialized('_dpgettext');
} */ }
} elseif (isset($domain)) { } elseif (isset($domain)) {
if (is_callable('_dgettext')) { if (is_callable('_dgettext')) {
$content = _dgettext($domain, $content); $content = _dgettext($domain, $content);
} elseif (is_callable('dpgettext')) { } else {
$content = dgettext($domain, $content); $this->reportL10nNotInitialized('_dgettext');
} }
} elseif (isset($context)) { } elseif (isset($context)) {
if (is_callable('_pgettext')) { if (is_callable('_pgettext')) {
$content = _pgettext($context, $content); $content = _pgettext($context, $content);
}/* elseif (is_callable('pgettext')) { } else {
$content = pgettext($context, $content); $this->reportL10nNotInitialized('_pgettext');
} */ }
} else { } else {
if (is_callable('_gettext')) { if (is_callable('_gettext')) {
$content = _gettext($content); $content = _gettext($content);
} elseif (is_callable('gettext')) { } else {
$content = gettext($content); $this->reportL10nNotInitialized('_gettext');
} }
} }
} }