#131061: Very fast t() for a small set of strings,

by Moshe Weitzman, webernet, chx, erdemkose and myself
6.x
Gábor Hojtsy 2007-05-04 08:32:00 +00:00
parent 8f36367d4a
commit f0b273a965
2 changed files with 28 additions and 1 deletions

View File

@ -700,7 +700,21 @@ function fix_gpc_magic() {
*/
function t($string, $args = 0) {
global $language;
if (function_exists('locale') && $language->language != 'en') {
static $custom_strings;
// First, check for an array of customized strings. If present, use the array
// *instead of* database lookups. This is a high performance way to provide a
// handful of string replacements. See settings.php for examples.
// Cache the $custom_strings variable to improve performance.
if (!isset($custom_strings)) {
$custom_strings = variable_get('locale_custom_strings_'. $language->language, array());
}
// Custom strings work for English too, even if locale module is disabled.
if (isset($custom_strings[$string])) {
$string = $custom_strings[$string];
}
// Translate with locale module if enabled.
elseif (function_exists('locale') && $language->language != 'en') {
$string = locale($string);
}
if (!$args) {

View File

@ -164,3 +164,16 @@ ini_set('url_rewriter.tags', '');
# 'anonymous' => 'Visitor',
# );
/**
* String overrides:
*
* To override specific strings on your site with or without enabling locale
* module, add an entry to this list. This functionality allows you to change
* a small number of your site's default English language interface strings.
*
* Remove the leading hash signs to enable.
*/
# $conf['locale_custom_strings_en'] = array(
# 'forum' => 'Discussion board',
# '@count min' => '@count minutes',
# );