diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-02-27 07:41:34 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-02-27 07:41:34 +0000 |
commit | 1a817fd2f8be7bee18f455e65ca7f3f10ae5d633 (patch) | |
tree | 2729d9acc404b225b789ad00f0f695ff9d3fa1b9 /modules/field | |
parent | bb5dc9d0c4f2636ee01d43e71ccf2580deb0b0bb (diff) | |
download | brdo-1a817fd2f8be7bee18f455e65ca7f3f10ae5d633.tar.gz brdo-1a817fd2f8be7bee18f455e65ca7f3f10ae5d633.tar.bz2 |
- Patch #503550 by yched, jp.stacey: make sure strings are cached per language.
Diffstat (limited to 'modules/field')
-rw-r--r-- | modules/field/field.info.inc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/modules/field/field.info.inc b/modules/field/field.info.inc index 1e949b6c7..c7250eed5 100644 --- a/modules/field/field.info.inc +++ b/modules/field/field.info.inc @@ -65,18 +65,24 @@ function field_info_cache_clear() { * as well as module, giving the module that exposes the entity type. */ function _field_info_collate_types($reset = FALSE) { + global $language; static $info; // @TODO use entity_get_info(). + // The _info() hooks invoked below include translated strings, so each + // language is cached separately. + $langcode = $language->language; + if ($reset) { $info = NULL; - cache_clear_all('field_info_types', 'cache_field'); + // Clear all languages. + cache_clear_all('field_info_types:', 'cache_field', TRUE); return; } if (!isset($info)) { - if ($cached = cache_get('field_info_types', 'cache_field')) { + if ($cached = cache_get("field_info_types:$langcode", 'cache_field')) { $info = $cached->data; } else { @@ -144,7 +150,7 @@ function _field_info_collate_types($reset = FALSE) { } drupal_alter('field_storage_info', $info['storage types']); - cache_set('field_info_types', $info, 'cache_field'); + cache_set("field_info_types:$langcode", $info, 'cache_field'); } } |